web-dev-qa-db-ja.com

Ubuntu 16.04でOpenCLを使用してRadeon RX 550を動作させるにはどうすればよいですか?

AMDGPU-Proドライバーをインストールするための公式ガイド(17.30リリースと最新の17.40リリースの両方を試しました)に従うと、すべてが機能しているように見えますが、clinfoは引き続き返されます

Number of platforms 0

誰にもアイデアはありますか?

2
tamale

私もこれに一日を費やしました-作業手順が見つかりませんでしたので、SSH経由でインストールされたグラフィカルデスクトップなしのUbuntu 16.04システム上のAMD Radeon RX 580について思い付きました:

Ubuntuの新しいインストールシステムを想定

  1. here からAMD APP SDKを取得します。ダウンロード、解凍し、Sudoを使用してインストールスクリプトを実行します。

  2. here から最新のLinuxドライバー(この回答を書いている時点で17.50)をダウンロードし、.xzおよびcdを使用してtar Jxvf <filename>ファイルを抽出し、その後に作成されたディレクトリに.xzファイルを抽出します。

  3. 次に、Sudoを指定してインストーラーを実行します。

    Sudo ./amdgpu-pro-install --opencl=legacy -y
    
  4. リブート

  5. clinfoを再度実行すると、OpenCL1.2がサポートされていることがわかります。

    $ clinfo|grep OpenCL
    
    Platform Version:               OpenCL 2.1 AMD-APP (2527.3)
    Execute OpenCL kernels:         Yes
    Device OpenCL C version:        OpenCL C 1.2
    Version:                        OpenCL 1.2 AMD-APP (2527.3)
    

その理由は、--legacyを指定すると、通常インストールされないopencl-amdgpu-pro-icdを取り込むためです。

これは、最新のドライバーがROCmを使用したいからだと思います。 https://rocm.github.io/ROCmInstall.html

私自身のリグでは、ライザーとi7の代わりに基本的なPentium CPUを備えたPCI-e 1xスロットがあるため、ROCmは使用できません。 ROCmが次のように無効になっていることを確認します。

$ dmesg |grep atomic
[4.885958] kfd kfd: skipped device 1002:67df, PCI rejects atomics

だから、これがOpenCLを動作させるためにlegacyをしなければならなかった理由だと思います。

OpenCL 1.2対OpenCL 2.0対ROCmの長所/短所がわからない、またはROCmドライバーがOpenCL 2.0として外部に存在する場合でも、より洞察力のある人がコメントできるとすれば素晴らしいでしょう。

2
Geoff Williams

カーネルが原因でDKMSモジュールの構築に問題があったため、OpenCLは失敗しました。

カーネルを次のバージョンにアップグレードすると、clinfoがUbuntu 16.04.4 LTSでのOpenCLサポートを報告しました。

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.11/

linux-headers-4.15.11-041511_4.15.11-041511.201803190530_all.deb

linux-headers-4.15.11-041511-generic_4.15.11-041511.201803190530_AMD64.deb

linux-image-4.15.11-041511-generic_4.15.11-041511.201803190530_AMD64.deb

clinfo|grep OpenCL
  Platform Version          OpenCL 2.0 AMD-APP (2482.3)
  Device Version            OpenCL 1.2 AMD-APP (2482.3)
  Device OpenCL C Version   OpenCL C 1.2 
    Run OpenCL kernels      Yes
0
jaycorpinc