libgpuvm icon indicating copy to clipboard operation
libgpuvm copied to clipboard

library which simplifies host-GPU data transfer using userspace pagefault handling

DESCRIPTION

libgpuvm simplifies data transfer between host and a GPU using userspace pagefault handling (or simply, SIGSEGV catching). It is primarily intended for integrating GPU support into languages, although it may also be used as a standalone library. It is based on OpenCL and UNIX syscalls, and currently supports OpenCL-capable devices.

PREREQUISITES

  • OpenCL implementation (libOpenCL) - Apple, NVidia or AMD will do
  • CUDA - only if compiling with CUDA support (disabled by default)
  • Linux or Mac OS X 10.6+
  • pthreads

BUILDING & INSTALLATION

Set build options in makefile. Options include:

PREFIX - prefix used for installation, default /usr
ENABLE_OPENCL - enable OpenCL support, default y, i.e. enabled
ENABLE_CUDA - enable CUDA support, default n, i.e. disabled
CUDA_INSTALL_PATH - path to CUDA installation, used only if CUDA is enabled, 
									default /usr/local/cuda	

Compiling and installation:

make && sudo make install ldconfig (Linux only) (sudo required only when installing system-wide)

make doc (for building documentation, requires doxygen)

USAGE

see accompanying documentation (doc/ directory and below) and also samples (samples/ and below)