OpenCL 主机 API 允许您在获取设备 ID 列表时指定设备数量
_int clGetDeviceIDs(
cl_platform_id platform,
cl_device_type device_type,
cl_uint num_entries, // Controls the minimum number of devices
cl_device_id *devices,
cl_uint *num_devices)
设备 id 指针 *devices 可用于创建具有特定数量设备的上下文。
这是规范所说的
num_entries 是可以添加到设备的 cl_device 条目数。如果 devices 不为 NULL,则 num_entries 必须大于零。devices 返回找到的 OpenCL 设备列表。devices 中返回的 cl_device_id 值可用于识别特定的 OpenCL 设备。如果设备参数为 NULL,则忽略此参数。返回的 OpenCL 设备数是 num_entries 指定的值或类型与 device_type 匹配的 OpenCL 设备数中的最小值。num_devices 返回与 device_type 匹配的可用 OpenCL 设备的数量。如果 num_devices 为 NULL,则忽略此参数
cl_context clCreateContext(
const cl_context_properties *properties,
cl_uint num_devices, // Number of devices
const cl_device_id *devices,
(voidCL_CALLBACK *pfn_notify) (
const char *errinfo,
const void *private_info, size_t cb,
void *user_data
),
void *user_data,
cl_int *errcode_ret)
然后通过自己的设备队列对每个设备进行寻址。