Я купил udoo bolt v8 и хочу попробовать на нем параллельные вычисления. Я загрузил его с помощью ubuntu 18.04. Я думаю, что драйверы OpenCL по умолчанию отсутствуют в ubuntu, но мне не удалось найти драйверы на их сайте. https://www.amd.com/en/support
После установки amd ROCm я, по крайней мере, смог заставить работать Clinfo, но количество устройств оказалось равным нулю.
Просто для подтверждения, я написал программу ниже и попробовал разные cl_device_types, получив тот же ответ.
ROCm предоставил несколько файлов libOpenCL.so, но я попробовал те, которые находятся в обоих / opt / rocm / opencl / lib и / opt / rocm / lib, и результаты были такими же.
#include <stdio.h>
#define CL_TARGET_OPENCL_VERSION 120
#include <CL/cl.h>
void cl_error(cl_int err, char *msg)
{
if(err < 0)
{
printf("%s: ERROR CODE: %d\n", msg, err);
exit(0);
}
}
int main()
{
cl_int err;
cl_uint nplatforms;
err = clGetPlatformIDs(0, 0, &nplatforms);
cl_error(err, "Unable to get platform IDs");
printf("Number of platforms: %d\n", nplatforms);
cl_platform_id *platforms = (cl_platform_id *)malloc(sizeof(cl_platform_id) * nplatforms);
err = clGetPlatformIDs(nplatforms, platforms, 0);
cl_error(err, "Unable to get platform");
size_t platform_strlen;
err = clGetPlatformInfo(platforms[0], CL_PLATFORM_NAME, 0, 0, &platform_strlen);
cl_error(err, "Unable to get platform info");
char *platform_name = (char *)malloc(sizeof(char) * platform_strlen);
err = clGetPlatformInfo(platforms[0], CL_PLATFORM_NAME, platform_strlen,platform_name, 0);
printf("Platform: %s\n", platform_name);
cl_uint num_devices;
err = clGetDeviceIDs(platforms[0], CL_DEVICE_TYPE_DEFAULT, 1, 0, &num_devices);
cl_error(err, "Unable to get number of devices");
printf("Number of devices: %d\n", num_devices);
return 0;
}