[Hardware] [Re: Q: OpenCL support in ALTLinux]

Konstantin Lepikhov lakostis на unsafe.ru
Пт Май 10 14:38:45 MSK 2019


Привет!

Решил закинуть это письмо в hardware@ поскольку с декабря успели произойти
некоторые изменения:
- У AMD почти появился ROCm в ядре, т.е. для нового железа (Vega и выше)
  OpenCL заработает "из коробки". Также не забываем читать внимательно
  страницу проекта про аппаратные требования, поскольку ROCm/KFD зависит
  не только от GPU, но и от CPU и возможностей материнской платы.
- В недавних дровах amdgpu-pro-19.10 стало можно пользоваться закрытой
  реализацией на базе GPU специфичной библиотеки под названием orca:

  [root at lks ~]# clinfo
  Number of platforms                               1
  Platform Name                                   AMD Accelerated
  Parallel Processing
  Platform Vendor                                 Advanced Micro
  Devices, Inc.
  Platform Version                                OpenCL 2.1 AMD-APP (2841.4)
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_amd_event_callback cl_amd_offline_devices 
  Platform Host timer resolution                  1ns
  Platform Extensions function suffix             AMD
...

$ ll /usr/lib64/libamdocl*
-rw-r--r-- 1 root root 36408112 May  9 22:30 /usr/lib64/libamdocl12cl64.so
-rw-r--r-- 1 root root 66351872 May  9 22:29 /usr/lib64/libamdocl-orca64.so

$ cat /etc/OpenCL/vendors/amdocl-orca64.icd 
libamdocl-orca64.so

технически это можно даже запакетить в p8/c8, но не в сизиф.

Я прогнал несколько тестов чтобы убедиться, что opencl рабочий и сравнить
его производительность с NATIVE c++ сборкой:

<AMD GPU R9 Nano / FIJI>

$ ./luxmark --scene=HOTEL --mode=BENCHMARK_OCL_GPU --single-run --ext-info
Score: 3313
Scene validation: Ok
Image validation: Ok

<NVIDIA GTX-1050>

./luxmark --scene=HOTEL --mode=BENCHMARK_OCL_CPUGPU --single-run
--ext-info
Score: 1328
Scene validation: Ok
Image validation: Ok

<CPU NATIVE>

$ ./luxmark --scene=HOTEL --mode=BENCHMARK_NATIVE --single-run --ext-info
Score: 348
Scene validation: Ok
Image validation: Ok

----- Forwarded message from Konstantin Lepikhov <lakostis@> -----

Date: Wed, 19 Dec 2018 02:02:09 +0100
From: Konstantin Lepikhov <lakostis@>
To: Konstantin Lepikhov <lakostis@>
Cc: legion@, ldv@, glebfm@, shrek@
Subject: Re: Q: OpenCL support in ALTLinux
User-Agent: Mutt/1.10.1 (2018-07-13)

On 12/06/2018, at 10:50:29 PM you wrote:

<skip>
> Если взять вендоров A и N то у первого есть свое решение под названием
> ROCm, а у второго есть libnvidia-opencl.
> 
> Описание ROCm
> https://www.phoronix.com/scan.php?page=news_item&px=ROCm-Compute-Stack-Overview
> Как видно, тут свой llvm и либы, не привязанные к mesa. + Свой тулчейн в
> виде HIP и HCC.
> 
...
> 4) ROCm тулчейн
> https://github.com/RadeonOpenCompute
> 
Я попробовал по-быстрому завести ROCm на своей Fury X где он заявлен как
поддерживается и работает. Это не работает никак в ALTLinux:
- OpenCL client требует поддержки KFD, которая сломана в ванильном ядре и
  drm-next и поддерживается в своем окружении -
  https://github.com/RadeonOpenCompute/ROCK-Kernel-Driver
  где сихронизировано только до 4.18.x. В 4.19 сборка не работает и
  изменений очень много (я честно пробовал накатить патчи из -next и
  самого ядра).
- HSA библиотека ставится из бинарников для RHEL 7[1], но опять же
  пользоваться ей без ядерного драйвера нелья.

Т.е. OpenCL сейчас можно пользоваться только для nvidia, все остальное
собирать можно только в рамках какого-то решения, привязанного к RHEL/LTS
Ubuntu (для которых есть сборки и поддержка со стороны AMD). И уж тем
более нет смысла собирать самостоятельно все эти тулчейны на базе LLVM,
поскольку они растут из master бранча проекта LLVM и никакой поддержки
сторонних дистрибутивов там нет.

Надеюсь, кому-то это сэкономит время.

1. http://repo.radeon.com/rocm/yum/rpm/

-- 
WBR et al.

----- End forwarded message -----

-- 
WBR et al.


Подробная информация о списке рассылки Hardware