Невозможно найти устройства для udoo bolt v8 с помощью OpenCL 1.2 - PullRequest
0 голосов
/ 13 июля 2020

Я купил 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;
}

...