Как я могу установить opencl на Ubuntu для AMD Ryzen Mobile CPU

#ubuntu #opencl #linux-device-driver #amd #ubuntu-18.04

#ubuntu #opencl #linux-драйвер устройства #amd #ubuntu-18.04

Вопрос:

У меня есть ноутбук с процессором AMD Ryzen 5 2500u (со встроенным radeon vega 8 mobile GPU) и я использую Ubuntu 18.04.2. Я хотел бы выполнить некоторые вычисления OpenCL с C на CPU и GPU. Моя проблема в том, что я не уверен, как opencl может распознавать процессор.

Я установил amdgpu-pro с веб-сайта amd и AMD APP SDK 3.0. После запуска clinfo я получаю следующий вывод:

Количество платформ 2

Название платформы Clover

Поставщик платформы Mesa

Версия платформы OpenCL 1.1 Mesa 18.2.8

Профиль платформы FULL_PROFILE

Расширения платформы cl_khr_icd

Суффикс функции расширений платформы MESA

Название платформы AMD Accelerated

Поставщик платформы параллельной обработки Advanced Micro Devices, Inc.

Версия платформы OpenCL 2.1 AMD-APP (2671.3)

Профиль платформы FULL_PROFILE

Расширения платформы cl_khr_icd, cl_amd_event_callback, cl_amd_offline_devices

Разрешение таймера хоста платформы 1ns

Суффикс функции расширений платформы AMD

Название платформы Clover

Количество устройств 1

Имя устройства AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)

Производитель устройства AMD

Идентификатор поставщика устройства 0x1002

Версия устройства OpenCL 1.1 Mesa 18.2.8

Версия драйвера 18.2.8

Версия OpenCL C для устройств OpenCL C 1.1

Тип устройства GPU

Профиль устройства FULL_PROFILE

Устройство доступно Да

Компилятор доступен, да

Максимальное количество вычислительных единиц 8

Максимальная тактовая частота 1100 МГц

Максимальные размеры рабочего элемента 3

Максимальные размеры рабочего элемента 256x256x256

Максимальный размер рабочей группы 256

Предпочтительный размер рабочей группы, превышающий 64

Предпочтительные / собственные векторные размеры
char 16/16
short 8/8
int 4/4
long 2/2
half 8/8 (cl_khr_fp16) float 4/4
double 2/2 (cl_khr_fp64)

Поддержка с плавающей запятой половинной точности (cl_khr_fp16)

Platform Name AMD Accelerated Parallel Processing

Number of devices 1

Device Name gfx902

Device Vendor Advanced Micro Devices, Inc.

Device Vendor ID 0x1002

Device Version OpenCL 1.2 AMD-APP (2671.3)

Driver Version 2671.3 (PAL,HSAIL)

Device OpenCL C Version OpenCL C 1.2

Device Type GPU

Device Board Name (AMD) Unknown AMD GPU

Device Topology (AMD) PCI-E, 05:00.0

Device Profile FULL_PROFILE

…….

NULL platform behavior

clGetPlatformInfo(NULL, CL_PLATFORM_NAME, …) No platform

clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, …) No platform

clCreateContext(NULL, …) [default] No platform

clCreateContext (NULL, …) [другое] Успех [MESA]

clCreateContextFromType (NULL, CL_DEVICE_TYPE_DEFAULT) Успех (1)

 Platform Name                                 Clover

Device Name                                   AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)
  

clCreateContextFromType (NULL, CL_DEVICE_TYPE_CPU) В платформе не найдено устройств

clCreateContextFromType (NULL, CL_DEVICE_TYPE_GPU) Успешно (1)

 Platform Name                                 Clover

Device Name                                   AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)
  

clCreateContextFromType (NULL, CL_DEVICE_TYPE_ACCELERATOR) В платформе не найдено устройств

clCreateContextFromType (NULL, CL_DEVICE_TYPE_CUSTOM) В платформе не найдено устройств

clCreateContextFromType (NULL, CL_DEVICE_TYPE_ALL) Успех (1)

 Platform Name                                 Clover

Device Name                                   AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)
  

Первая платформа «Clover» с устройством «AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)» имеет тип устройства «GPU», а вторая платформа с устройством «gfx902» также, похоже, является графическим процессором моей системы.

Итак, мой вопрос: что мне нужно установить, чтобы opencl также распознал процессор моей системы?

Спасибо за помощь!

Комментарии:

1. Последний комментарий: название платформы Clover означает, что вы используете реализацию OpenCL в Mesa. Вам это не нужно… Также вам не нужен AMD APP SDK. Вы должны удалить их. amdgpu-pro Должно быть достаточно в Ubuntu 18.04

Ответ №1:

Естественно, для использования процессора с OpenCL требуется реализация OpenCL с поддержкой процессора. В частности, должен быть доступен POCL. AMD, похоже, отказалась от своей реализации CPU OpenCL, а Intel утверждает, что они предназначены только для процессоров их марки.

Кстати, смешивание реализаций OpenCL для одного и того же устройства (например, Clover и APP) может дать неожиданные результаты, если что-то попытается автоматически распределить работу на все устройства. Должно быть нормально, если вы можете указать, какие устройства использовать.