Copyright | [2009..2017] Trevor L. McDonell |
---|---|
License | BSD |
Safe Haskell | None |
Language | Haskell98 |
Device management for low-level driver interface
- newtype Device = Device {}
- data DeviceProperties = DeviceProperties {
- deviceName :: !String
- computeCapability :: !Compute
- totalGlobalMem :: !Int64
- totalConstMem :: !Int64
- sharedMemPerBlock :: !Int64
- regsPerBlock :: !Int
- warpSize :: !Int
- maxThreadsPerBlock :: !Int
- maxThreadsPerMultiProcessor :: !Int
- maxBlockSize :: !(Int, Int, Int)
- maxGridSize :: !(Int, Int, Int)
- maxTextureDim1D :: !Int
- maxTextureDim2D :: !(Int, Int)
- maxTextureDim3D :: !(Int, Int, Int)
- clockRate :: !Int
- multiProcessorCount :: !Int
- memPitch :: !Int64
- memBusWidth :: !Int
- memClockRate :: !Int
- textureAlignment :: !Int64
- computeMode :: !ComputeMode
- deviceOverlap :: !Bool
- concurrentKernels :: !Bool
- eccEnabled :: !Bool
- asyncEngineCount :: !Int
- cacheMemL2 :: !Int
- pciInfo :: !PCI
- tccDriverEnabled :: !Bool
- kernelExecTimeoutEnabled :: !Bool
- integrated :: !Bool
- canMapHostMemory :: !Bool
- unifiedAddressing :: !Bool
- streamPriorities :: !Bool
- globalL1Cache :: !Bool
- localL1Cache :: !Bool
- managedMemory :: !Bool
- multiGPUBoard :: !Bool
- multiGPUBoardGroupID :: !Int
- data DeviceAttribute
- = MaxThreadsPerBlock
- | MaxBlockDimX
- | MaxBlockDimY
- | MaxBlockDimZ
- | MaxGridDimX
- | MaxGridDimY
- | MaxGridDimZ
- | MaxSharedMemoryPerBlock
- | SharedMemoryPerBlock
- | TotalConstantMemory
- | WarpSize
- | MaxPitch
- | MaxRegistersPerBlock
- | RegistersPerBlock
- | ClockRate
- | TextureAlignment
- | GpuOverlap
- | MultiprocessorCount
- | KernelExecTimeout
- | Integrated
- | CanMapHostMemory
- | ComputeMode
- | MaximumTexture1dWidth
- | MaximumTexture2dWidth
- | MaximumTexture2dHeight
- | MaximumTexture3dWidth
- | MaximumTexture3dHeight
- | MaximumTexture3dDepth
- | MaximumTexture2dLayeredWidth
- | MaximumTexture2dArrayWidth
- | MaximumTexture2dLayeredHeight
- | MaximumTexture2dArrayHeight
- | MaximumTexture2dLayeredLayers
- | MaximumTexture2dArrayNumslices
- | SurfaceAlignment
- | ConcurrentKernels
- | EccEnabled
- | PciBusId
- | PciDeviceId
- | TccDriver
- | MemoryClockRate
- | GlobalMemoryBusWidth
- | L2CacheSize
- | MaxThreadsPerMultiprocessor
- | AsyncEngineCount
- | UnifiedAddressing
- | MaximumTexture1dLayeredWidth
- | MaximumTexture1dLayeredLayers
- | CanTex2dGather
- | MaximumTexture2dGatherWidth
- | MaximumTexture2dGatherHeight
- | MaximumTexture3dWidthAlternate
- | MaximumTexture3dHeightAlternate
- | MaximumTexture3dDepthAlternate
- | PciDomainId
- | TexturePitchAlignment
- | MaximumTexturecubemapWidth
- | MaximumTexturecubemapLayeredWidth
- | MaximumTexturecubemapLayeredLayers
- | MaximumSurface1dWidth
- | MaximumSurface2dWidth
- | MaximumSurface2dHeight
- | MaximumSurface3dWidth
- | MaximumSurface3dHeight
- | MaximumSurface3dDepth
- | MaximumSurface1dLayeredWidth
- | MaximumSurface1dLayeredLayers
- | MaximumSurface2dLayeredWidth
- | MaximumSurface2dLayeredHeight
- | MaximumSurface2dLayeredLayers
- | MaximumSurfacecubemapWidth
- | MaximumSurfacecubemapLayeredWidth
- | MaximumSurfacecubemapLayeredLayers
- | MaximumTexture1dLinearWidth
- | MaximumTexture2dLinearWidth
- | MaximumTexture2dLinearHeight
- | MaximumTexture2dLinearPitch
- | MaximumTexture2dMipmappedWidth
- | MaximumTexture2dMipmappedHeight
- | ComputeCapabilityMajor
- | ComputeCapabilityMinor
- | MaximumTexture1dMipmappedWidth
- | StreamPrioritiesSupported
- | GlobalL1CacheSupported
- | LocalL1CacheSupported
- | MaxSharedMemoryPerMultiprocessor
- | MaxRegistersPerMultiprocessor
- | ManagedMemory
- | MultiGpuBoard
- | MultiGpuBoardGroupId
- | HostNativeAtomicSupported
- | SingleToDoublePrecisionPerfRatio
- | PageableMemoryAccess
- | ConcurrentManagedAccess
- | ComputePreemptionSupported
- | CanUseHostPointerForRegisteredMem
- | CU_DEVICE_ATTRIBUTE_MAX
- data Compute = Compute !Int !Int
- data ComputeMode
- data InitFlag
- initialise :: [InitFlag] -> IO ()
- capability :: Device -> IO Compute
- device :: Int -> IO Device
- attribute :: Device -> DeviceAttribute -> IO Int
- count :: IO Int
- name :: Device -> IO String
- props :: Device -> IO DeviceProperties
- totalMem :: Device -> IO Int64
Device Management
A CUDA device
data DeviceProperties Source #
The properties of a compute device
DeviceProperties | |
|
data DeviceAttribute Source #
Device attributes
GPU compute capability, major and minor revision number respectively.
data ComputeMode Source #
The compute mode the device is currently in
Possible option flags for CUDA initialisation. Dummy instance until the API exports actual option values.
initialise :: [InitFlag] -> IO () Source #
Initialise the CUDA driver API. This must be called before any other driver function.
capability :: Device -> IO Compute Source #
Return the compute compatibility revision supported by the device
attribute :: Device -> DeviceAttribute -> IO Int Source #
Return the selected attribute for the given device.
Return the number of device with compute capability > 1.0.