ザイリンクス プラットフォームが見つかったら、アプリケーションが該当するザイリンクス デバイスを識別する必要があります。
次のコード例では、上限 16 の
clGetDeviceIDs
API を使用するザイリンクス デバイスすべてを検出しています。
cl_device_id devices[16]; // compute device id
char cl_device_name[1001];
err = clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_ACCELERATOR,
16, devices, &num_devices);
printf("INFO: Found %d devices\n", num_devices);
//iterate all devices to select the target device.
for (uint i=0; i<num_devices; i++) {
err = clGetDeviceInfo(devices[i], CL_DEVICE_NAME, 1024, cl_device_name, 0);
printf("CL_DEVICE_NAME %s\n", cl_device_name);
}
重要:
clGetDeviceIDs
API は platform_id
および CL_DEVICE_TYPE_ACCELERATOR
を指定して呼び出されており、使用可能なすべてのザイリンクス デバイスが返されます。