(proposed) incremental milestones:
- Create an external that checks GPUs and hands back error messages to Pd.
- Create an external that initializes GPUs.
- Create an external that performs host<->device memory transfer and
runs an operation. 4. Create an external that performs an operation and compares the time it takes against the same operation on CPU. At this point, it should be possible to identify and hopefully quantify the potential speedup on GPU, and decide whether or not it is worth it.
add: 5. Create an external that accepts *in as a pointer to host memory, and returns as *out a pointer to gpu memory. 6. Create an external that accepts *in as a pointer to gpu memory, and returns as *out a pointer to host memory. 7. Create an external that performs an operation in gpu memory and returns a pointer to gpu memory without any host<->gpu memory transfers.