/// <summary> /// copies platform too, to stop different ClNumberCruncher instances destroying their common platform /// </summary> /// <param name="devicePartitionEnabled"></param> /// <param name="streamingEnabled"></param> /// <param name="MAX_CPU_CORES"></param> /// <returns></returns> internal ClDevice copyWithPlatformCopy(bool devicePartitionEnabled = false, bool streamingEnabled = false, int MAX_CPU_CORES = -1) { ClDevice result = new ClDevice(clPlatformForCopy.copy(), deviceTypeCodeInClPlatformForCopy, iForCopy, devicePartitionForCopy | devicePartitionEnabled, GPU_STREAMForCopy | streamingEnabled, ((MAX_CPU_CORES <= 0) ? MAX_CPUForCopy : MAX_CPU_CORES)); return(result); }
internal ClDevice copyExact() { ClDevice result = new ClDevice(clPlatformForCopy.copy(), deviceTypeCodeInClPlatformForCopy, iForCopy, devicePartitionForCopy, GPU_STREAMForCopy, MAX_CPUForCopy); return(result); }
/// <summary> /// creates a context for a device, this library makes use of explicit multi device control for compute /// </summary> /// <param name="device">device to use for context</param> public ClContext(ClDevice device) { hDevice = device.h(); hPlatform = device.hp(); hContext = createContext(hPlatform, hDevice); }