Very interesting.
How does this deal with data regions? Do you have an array type that explicitly recides on GPU, i.e. to pass it to a CPU routine like file i/o you need to wrap CUDAmemcopy? or does it manage the device state?
Yes, that's what we do! More domain specific types will come, for e.g. views, lazy arrays and sparse arrays.
> or does it manage the device state?
It aims to manage most of the device state! Some more complex gpu interactions will need to drop back to manual management, though - but the hope is to turn more and more into a high level API when needed!