@hackage cuda0.11.0.0
FFI binding to the CUDA interface for programming NVIDIA GPUs
Categories
License
BSD-3-Clause
Maintainer
Trevor L. McDonell <trevor.mcdonell@gmail.com>
Links
Versions
Installation
CustomTested Compilers
Dependencies (5)
- base >=4.7 && <5
- bytestring >=0.10.4
- filepath >=1.0
- template-haskell
- uuid-types >=1.0 Show all…
Dependents (18)
@hackage/nvvm, @hackage/accelerate-llvm-ptx, @hackage/acme-everything, @hackage/accelerate-cufft, @hackage/cufft, @hackage/accelerate-fft, Show all…
Haskell FFI Bindings to CUDA
The CUDA library provides a direct, general purpose C-like SPMD programming model for NVIDIA graphics cards (G8x series onwards). This is a collection of bindings to allow you to call and control, although not write, such functions from Haskell-land. You will need to install the CUDA driver and developer toolkit.
http://developer.nvidia.com/object/cuda.html
The configure step will look for your CUDA installation in the standard places,
and if the nvcc compiler is found in your PATH, relative to that.
For important information on installing on Windows, see:
https://github.com/tmcdonell/cuda/blob/master/WINDOWS.md
Missing functionality
An incomplete list of missing bindings. Pull requests welcome!
CUDA-9
- cuLaunchCooperativeKernelMultiDevice
CUDA-10.0
- cuDeviceGetLuid (windows only?)
- cuLaunchHostFunc
- cuGraphHostNode[Get/Set]Params
- cuGraphKernelNode[Get/Set]Params
- cuGraphMemcpyNode[Get/Set]Params
- cuGraphMemsetNode[Get/Set]Params
CUDA-10.2
- cuDeviceGetNvSciSyncAttributes
- cuMemAddressFree
- cuMemAddressReserve
- cuMemCreate
- cuMemExportToShareableHandle
- cuMemGetAccess
- cuMemGetAllocationGranularity
- cuMemGetAllocationPrepertiesFromHandle
- cuMemImportFromShareableHandle
- cuMemMap
- cuMemRelease
- cuMemSetAccess
- cuMemUnmap
- cuGraphExecHostNodeSetParams
- cuGraphExecMemcpyNodeSetParams
- cuGraphExecMemsetNodeSetParams
- cuGraphExecUpdate
CUDA-11.0
- cuCtxResetPersistentingL2Cache
- cuMemRetainAllocationHandle
- cuStreamCopyAttributes
- cuStreamGetAttribute
- cuStreamSetAttribute
- cuGraphKernelNodeCopyAttributes
- cuGraphKernelNodeGetAttribute
- cuGraphKernelNodeSetAttribute
- cuOccupancyAvailableDynamicSMemPerBlock
CUDA-11.1
- cuDeviceGetTexture1DLinearMaxWidth
- cuArrayGetSparseProperties
- cuMipmappedArrayGetSparseProperties
- cuMemMapArrayAsync
- cuEventRecordWithFlags
- cuGraphAddEventRecordNode
- cuGraphAddEventWaitNode
- cuGraphEventRecordNodeGetEvent
- cuGraphEventRecordNodeSetEvent
- cuGraphEventWaitNodeGetEvent
- cuGraphEventWaitNodeSetEvent
- cuGraphExecChildGraphNodeSetParams
- cuGraphExecEventRecordNodeSetEvent
- cuGraphExecEventWaitNodeSetEvent
- cuGraphUpload
CUDA-11.2
- cuDeviceGetDefaultMemPool
- cuDeviceGetMemPool
- cuDeviceSetMemPool
- cuArrayGetPlane
- cuMemAllocAsync
- cuMemAllocFromPoolAsync
- cuMemFreeAsync
- cuMemPoolCreate
- cuMemPoolDestroy
- cuMemPoolExportPointer
- cuMemPoolExportToShareableHandle
- cuMemPoolGetAccess
- cuMemPoolGetAttribute
- cuMemPoolImportFromShareableHandle
- cuMemPoolImportPointer
- cuMemPoolSetAccess
- cuMemPoolSetAttribute
- cuMemPoolTrimTo
- cuGraphAddExternalSemaphoresSignalNode
- cuGraphAddExternalSemaphoresWaitNode
- cuGraphExecExternalSemaphoresSignalNodeSetParams
- cuGraphExecExternalSemaphoresWaitNodeSetParams
- cuGraphExternalSemaphoresSignalNodeGetParams
- cuGraphExternalSemaphoresSignalNodeSetParams
- cuGraphExternalSemaphoresWaitNodeGetParams
- cuGraphExternalSemaphoresWaitNodeSetParams
CUDA-11.3
- cuStreamGetCaptureInfo_v2
- cuFuncGetModule
- cuGraphDebugDotPrint
- cuGraphReleaseUserObject
- cuGraphRetainUserObject
- cuUserObjectCreate
- cuUserObjectRelease
- cuUserObjectRetain
- cuGetProcAddress
CUDA-11.4
- cuDeviceGetUuid_v2
- cuCtxCreate_v3
- cuCtxGetExecAffinity
- cuDeviceGetGraphMemAttribute
- cuDeviceGraphMemTrim
- cuDeviceSetGraphMemAttribute
- cuGraphAddMemAllocNode
- cuGraphAddMemFreeNode
- cuGraphInstantiateWithFlags
- cuGraphMemAllocNodeGetParams
- cuGraphMemFreeNodeGetParams