OpenCLWrappers-0.0.1.0: System/OpenCL/Wrappers/DeviceInfo.hs
module System.OpenCL.Wrappers.DeviceInfo
(clGetDeviceIDs
,clGetDeviceInfo)
where
import System.OpenCL.Wrappers.Types
import System.OpenCL.Wrappers.Utils
import System.OpenCL.Wrappers.Raw
clGetDeviceIDs :: PlatformID -> DeviceType -> IO (Either ErrorCode [DeviceID])
clGetDeviceIDs platform (DeviceType device_type) = wrapGetNumElements $ raw_clGetDeviceIDs platform device_type
clGetDeviceInfo :: DeviceID -> DeviceInfo -> IO (Either ErrorCode CLDeviceInfoRetval)
clGetDeviceInfo obj (DeviceInfo param_name) = wrapGetInfo (raw_clGetDeviceInfo obj param_name) >>=
either (return.Left) (\(x,size) -> fmap Right $ let c = (DeviceInfo param_name) in case () of
()
| c == clDeviceAddressBits -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceAvailable -> peekOneInfo DeviceInfoRetvalCLbool x
| c == clDeviceCompilerAvailable -> peekOneInfo DeviceInfoRetvalCLbool x
| c == clDeviceDoubleFPConfig -> peekOneInfo DeviceInfoRetvalDeviceFPConfig x
| c == clDeviceEndianLittle -> peekOneInfo DeviceInfoRetvalCLbool x
| c == clDeviceErrorCorrectionSupport -> peekOneInfo DeviceInfoRetvalCLbool x
| c == clDeviceExecutionCapabilities -> peekOneInfo DeviceInfoRetvalDeviceExecCapabilities x
| c == clDeviceExtensions -> peekStringInfo DeviceInfoRetvalString x
| c == clDeviceGlobalMemCacheSize -> peekOneInfo DeviceInfoRetvalCLulong x
| c == clDeviceGlobalMemCacheType -> peekOneInfo DeviceInfoRetvalDeviceMemCacheType x
| c == clDeviceGlobalMemCacheLineSize -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceGlobalMemSize -> peekOneInfo DeviceInfoRetvalCLulong x
| c == clDeviceHalfFPConfig -> peekOneInfo DeviceInfoRetvalDeviceFPConfig x
| c == clDeviceImageSupport -> peekOneInfo DeviceInfoRetvalCLbool x
| c == clDeviceImage2DMaxHeight -> peekOneInfo DeviceInfoRetvalCLsizei x
| c == clDeviceImage2DMaxWidth -> peekOneInfo DeviceInfoRetvalCLsizei x
| c == clDeviceImage3DMaxDepth -> peekOneInfo DeviceInfoRetvalCLsizei x
| c == clDeviceImage3DMaxHeight -> peekOneInfo DeviceInfoRetvalCLsizei x
| c == clDeviceImage3DMaxWidth -> peekOneInfo DeviceInfoRetvalCLsizei x
| c == clDeviceLocalMemSize -> peekOneInfo DeviceInfoRetvalCLulong x
| c == clDeviceLocalMemType -> peekOneInfo DeviceInfoRetvalDeviceLocalMemType x
| c == clDeviceMaxClockFrequency -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceMaxComputeUnits -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceMaxConstantArgs -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceMaxConstantBufferSize -> peekOneInfo DeviceInfoRetvalCLulong x
| c == clDeviceMaxMemAllocSize -> peekOneInfo DeviceInfoRetvalCLulong x
| c == clDeviceMaxParameterSize -> peekOneInfo DeviceInfoRetvalCLsizei x
| c == clDeviceMaxReadImageArgs -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceMaxSamplers -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceMaxWorkGroupSize -> peekOneInfo DeviceInfoRetvalCLsizei x
| c == clDeviceMaxWorkItemDimensions -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceMaxWorkItemSizes -> peekManyInfo DeviceInfoRetvalCLsizeiList x size
| c == clDeviceMaxWriteImageArgs -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceMemBaseAddrAlign -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceMinDataTypeAlignSize -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceName -> peekStringInfo DeviceInfoRetvalString x
| c == clDevicePlatform -> peekOneInfo DeviceInfoRetvalPlatformID x
| c == clDevicePreferredVectorWidthChar -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDevicePreferredVectorWidthShort -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDevicePreferredVectorWidthInt -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDevicePreferredVectorWidthLong -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDevicePreferredVectorWidthFloat -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDevicePreferredVectorWidthDouble -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceProfile -> peekStringInfo DeviceInfoRetvalString x
| c == clDeviceProfilingTimerResolution -> peekOneInfo DeviceInfoRetvalCLsizei x
| c == clDeviceQueueProperties -> peekOneInfo DeviceInfoRetvalCommandQueueProperties x
| c == clDeviceSingleFPConfig -> peekOneInfo DeviceInfoRetvalDeviceFPConfig x
| c == clDeviceType -> peekOneInfo DeviceInfoRetvalDeviceType x
| c == clDeviceVendor -> peekStringInfo DeviceInfoRetvalString x
| c == clDeviceVendorID -> peekOneInfo DeviceInfoRetvalCLuint x
| c == clDeviceVersion -> peekStringInfo DeviceInfoRetvalString x
| c == clDriverVersion -> peekStringInfo DeviceInfoRetvalString x)