libgpuvm
libgpuvm copied to clipboard
library which simplifies host-GPU data transfer using userspace pagefault handling
Implement true device-side caching of arrays. That is, automatically allocating support buffers in GPU when host array is first used on-GPU, and deallocating them in case of memory shortage
Add support for transferring only necessary parts of the region back to host
sometimes, arrays are used for one-sided communication only, e.g. device -> host or host -> device. As they can be still modified on both sides, however, general way of handling...
sometimes, an array is used to transfer data one way only, host -> device or device -> host. In this case, there's no need to copy data in opposite direction;...
create a version of libgpuvm which is based on malloc hooking and creating an alternative map for regions and arrays being handled. An alternative map can be (may be!) created...
add gpuvm_ctl() call to control values of various parameters, such as: - mono GC signal number - whether to block mono GC signal on entering write lock - whether to...
use balancing trees (i.e., AVL trees) for maps inside libgpuvm. Such maps include mapping ranges to regions and mapping thread ids to per-thread locking semaphores. AVL trees will increase performance...
typically, host arrays are mapped into device buffers. However, performance tests indicate that sometimes more performance is provided by textures (images). An API support is therefore needed to map host...