localSize = 64; 75. 76. // Number of total work items - localSize must be devisor 77. globalSize = ceil(n / (float)localSize) * localSize; 78. 79. // Bind to platform 80. err = clGetPlatformIDs(1, &platform, NULL); 81. 82. // Get ID for the device 83. err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device_id, NULL); 84. 85. // Create a context 86. context = clCreateContext(0, 1, &device_id, NULL, NULL, &err); 87. 88. // Create a command queue 89. queue = clCreateCommandQueue(context, device_id, 0, &err); 90. 91. // Create the compute program from the source buffer 92. program = clCreateProgramWithSource(context, 1, 93. (const char**)&kernelSource, NULL, &err);
时间: 2024-03-31 10:35:28 浏览: 121
这段代码是用于初始化OpenCL环境的。首先设置了本地工作项的数量为64,然后计算出全局工作项的数量,保证本地工作项数量是全局工作项数量的因子。接下来调用OpenCL API初始化环境,包括获取平台ID、设备ID、创建上下文、创建命令队列和构建程序。其中,创建程序时使用了源代码字符串,通过调用clCreateProgramWithSource函数来创建程序对象。
阅读全文