18 #error OpenCL has not been enabled 25 #include <OpenCL/cl.hpp> 82 std::lock_guard<std::recursive_mutex>
guard;
120 , context_id(cntxt_id)
123 queue = cl::CommandQueue(context, d);
135 DeviceContextPtr GetDeviceContextPtr(
const int& dev = -1);
137 std::vector<DeviceContextPtr> GetDeviceContextPtrVector();
142 void SetDeviceContextPtrVector(std::vector<DeviceContextPtr> vec, DeviceContextPtr dcp =
nullptr);
146 void SetDefaultDeviceContext(DeviceContextPtr dcp);
159 unsigned long PowerOf2LessThan(
unsigned long number);
Definition: oclengine.hpp:71
Definition: oclengine.hpp:51
Definition: oclengine.hpp:46
Definition: oclengine.hpp:72
OCLDeviceCall(const OCLDeviceCall &)
Definition: oclengine.hpp:70
Definition: oclengine.hpp:80
Definition: oclengine.hpp:73
Definition: oclengine.hpp:43
cl::Context context
Definition: oclengine.hpp:107
Definition: oclengine.hpp:53
OCLAPI
Definition: oclengine.hpp:38
Definition: oclengine.hpp:66
Definition: oclengine.hpp:45
Definition: oclengine.hpp:44
Definition: oclengine.hpp:41
Definition: oclengine.hpp:62
Definition: oclengine.hpp:40
Definition: oclengine.hpp:59
static OCLEngine * m_pInstance
Definition: oclengine.hpp:155
OCLDeviceCall(std::recursive_mutex &m, cl::Kernel &c)
Definition: oclengine.hpp:91
std::shared_ptr< OCLDeviceContext > DeviceContextPtr
Definition: oclengine.hpp:34
Definition: oclengine.hpp:39
Definition: oclengine.hpp:76
Definition: oclengine.hpp:63
Definition: oclengine.hpp:47
std::vector< DeviceContextPtr > all_device_contexts
Definition: oclengine.hpp:149
OCLDeviceCall & operator=(const OCLDeviceCall &)=delete
Definition: oclengine.hpp:103
Definition: oclengine.hpp:74
Definition: oclengine.hpp:48
std::lock_guard< std::recursive_mutex > guard
Definition: oclengine.hpp:82
Definition: oclengine.hpp:77
Definition: oclengine.hpp:50
int context_id
Definition: oclengine.hpp:108
Definition: oclengine.hpp:60
Definition: oclengine.hpp:68
cl::Device device
Definition: oclengine.hpp:106
Definition: oclengine.hpp:75
Definition: oclengine.hpp:49
Definition: oclengine.hpp:67
Definition: oclengine.hpp:54
std::recursive_mutex mutex
Definition: oclengine.hpp:112
std::map< OCLAPI, cl::Kernel > calls
Definition: oclengine.hpp:113
OCLDeviceCall Reserve(OCLAPI call)
Definition: oclengine.hpp:125
Definition: oclengine.hpp:61
"Qrack::OCLEngine" manages the single OpenCL context.
Definition: oclengine.hpp:130
Definition: oclengine.hpp:65
Definition: oclengine.hpp:56
Definition: oclengine.hpp:42
cl::Platform platform
Definition: oclengine.hpp:105
DeviceContextPtr default_device_context
Definition: oclengine.hpp:150
Definition: oclengine.hpp:64
OCLDeviceContext(cl::Platform &p, cl::Device &d, cl::Context &c, int cntxt_id)
Definition: oclengine.hpp:116
Definition: oclengine.hpp:55
Definition: oclengine.hpp:52
Definition: oclengine.hpp:58
Definition: oclengine.hpp:69
Definition: complex16simd.hpp:21
cl::Kernel & call
Definition: oclengine.hpp:87
Definition: oclengine.hpp:57
cl::CommandQueue queue
Definition: oclengine.hpp:109
int GetDeviceCount()
Get the count of devices in the current list.
Definition: oclengine.hpp:144