Как я могу установить opencl на Ubuntu для мобильного процессора AMD Ryzen? - PullRequest
2 голосов
/ 25 марта 2019

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

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

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

Имя платформы Clover

Vendor платформы Mesa

Версия платформы OpenCL1.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_de1029 * Разрешение таймера хоста платформы 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

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

Half-точность с плавающей запятой (cl_khr_fp16)

...

Имя платформы AMD Ускоренная параллельная обработка

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

Имя устройства gfx902

Производитель устройств Advanced Micro Devices, Inc.

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

Версия устройства OpenCL 1.2 AMD-APP (2671.3)

Версия драйвера 2671.3 (PAL, HSAIL)

Версия устройства OpenCL C OpenCL C 1.2

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

Имя платы устройства (AMD) Неизвестный AMD GPU

Топология устройства (AMD) PCI-E, 05: 00.0

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

.......

NULL поведение платформы

clGetPlatformInfo (NULL, CL_PLATFORM_NAME, ...) Нет платформы

clGetDeviceIDs (NULL, CL_DEVICE_TYPE_ALL, ...) Нет платформы

clCreateContext (NULL, ...) [по умолчанию] Нет платформы

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) В платформе не найдено ни одного устройства

* UPD (PNG))
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) Нет dУстройства найдены в платформе

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 Ответ

0 голосов
/ 27 марта 2019

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

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

...