ピットでのROCmのインストールと構成の手順
- 発生した問題
- ubuntuシステムをインストールしてカーネルを更新しますが、winとUbuntuデュアルシステムがカーネルの更新に失敗する可能性があることを前提として、正常にインストールしたカーネルは5.13.39です。
- カーネルの更新に失敗した理由は、ubuntuシステムをインストールしたときに手動でパーティションを作成せず、ディスクを空にして直接インストールしたため、システムのインストール時にシステムを手動でパーティション分割したためです。
- BIOSセキュアブートをオフにし、ubuntuのブートブートを最初のブートとして設定します
- navi6800xt(gfx1030)グラフィックカードのインストール5.0以降
- rocm5.0以降はnaviグラフィックカードをサポートしています。前世代のカードの場合は、トーチの公式Webサイトにコンパイル済みのpytorchバージョンがあり、Dockerイメージなしでローカル環境に直接インストールできるため、4.5バージョンシリーズをインストールできます。
- インストール後に再起動します
- (更新)もう1つ、チュートリアルの最初にセキュアブートを無効にする必要があります。rocmドライバーをインストールすると、GPU呼び出しのアクセス許可に関するライセンス契約に同意することを覚えています。無効にしない場合安全な起動、彼はあなたにパスワードを設定させてくれます、そしてそれから私はBIOSの操作方法を忘れます、それはいつも非常に面倒です。
ROCmのインストール
このバージョンは5.1.0です
sudo apt update && sudo apt dist-upgrade
sudo apt-get install wget gnupg2
sudo usermod -a -G video $LOGNAME
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf
sudo wget https://repo.radeon.com/amdgpu-install/22.10/ubuntu/focal/amdgpu-install_22.10.50100-1_all.deb
sudo apt-get install ./amdgpu-install_22.10.50100-1_all.deb
sudo amdgpu-install --usecase=dkms
amdgpu-install -y --usecase=rocm
環境と権限を構成する
sudo usermod -a -G video $LOGNAME
sudo usermod -a -G render $LOGNAME
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf
echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin' | sudo tee -a /etc/profile.d/rocm.sh
確認
# 显示gpu信息
rocm-smi
# 两项都显示gpu信息
/opt/rocm/bin/rocminfo
/opt/rocm/opencl/bin/clinfo
次のステップは、rocmを使用してグラフィックカードの操作を高速化する方法です。2つの方法があります。推奨される方法は1です。
方法1、Dockerコンテナが実行されます
まず、次のチュートリアルに従ってdockerをインストールします。チュートリアルでは、AlibabaCloudのブランチをお勧めします。
Dockerのインストール
インストール後、pytorchまたはtensorflowのイメージをダウンロードします。どちらのイメージにもtorchまたはtfがインストールされているため、直接使用できます。rocm5.0以降のみがnaviグラフィックカードをサポートしているようですので、この方法を使用することをお勧めします。ナビグラフィックスカードの場合、トーチ公式ウェブサイトでコンパイルされた最新バージョンはrocm4.5.2をサポートしているため、グラフィックカードがサポートしている場合は、トーチ公式ウェブサイトからバージョンを選択すると、pipコマンドが提供されます。 DockerContainer.リモート環境を必要とせずにローカル環境にインストールできます。
dockerをインストールした後、ダウンロードする必要のあるイメージをダウンロードできます。これら2つのイメージ(解凍後)の1つは27gで、もう1つは22gです。Dockerはデフォルトでルートディレクトリの関連フォルダーにインストールされるため、/
ubuntuをインストールするときにサイズを指定する必要があります。
PytorchとTersonFlowの画像をダウンロードする
sudo docker pull rocm/pytorch:latest
sudo docker pull rocm/tensorflow:latest
ダウンロード後、ダウンロードした画像をdocker images
表示番目は
PytorchまたはTensorFlowコンテナを作成する
ここでは、コンテナーを--rm
削除して保存し、docker start pytorch
後でコンテナーを直接起動し、それを使用しdocker attach pytorch
てコンテナーに入ることができます。入力後、cudaの呼び出しを含むコードを直接実行できます。
# 如果下载的是pytorch的镜像就用这个命令
sudo docker run -it -v $HOME:/data --privileged --rm --device=/dev/kfd --device=/dev/dri --group-add video --name pytorch rocm/pytorch:latest
#如果是tensorflow就用这个命令
sudo docker run -it -v $HOME:/data --privileged --rm --device=/dev/kfd --device=/dev/dri --group-add video rocm/tensorflow:latest
dockerを使用できる場合、ここでのチュートリアルは基本的に終了しています。Dockerを使用できない場合は、下を向いてください。
上記のコマンドを実行すると、作成されたコンテナに直接入ります。を押しctrl+p+q
て一時的に終了し、vscodeを開くことができます。vscodeをインストールすると、Baiduになります。プラグインマーケットで検索してremote-containers
インストールします。
インストール後、vscodeの左下隅にある
選択項目をクリックするAttach to Running Container
と、新しいウィンドウがポップアップ表示され、IDEで開発できるようになります。注:vscodeがコンテナーに接続された後、一部のプラグインはデフォルトで有効にならないため 、rocmの公式例を実行して
も問題がないことを確認するには、 pythonおよびその他のサポートプラグインをインストールする必要があります。 別の方法は、vscodeを使用しないことです。コンテナに入ってjupyterノートブックのリモート接続を構成できます。メソッドは独自のBaiduであり、パスがマップされ、jupyterサービスがコンテナで有効になっており、jypyterノートブックをubuntuのローカルブラウザで実行できることを前提としています。 、ファイルの同期を実現できます。
方法2
または、新しい環境を直接作成し、記事の冒頭で提供されているダウンロード済みのトーチバージョンに従って、ローカルのPython環境にダウンロードしてインストールします。この方法は、dockerに慣れておらず、rocmバージョンが4.5.2未満の場合に適しています。
import torch
torch.cuda.is_available()
# output = True 即可以调用gpu
この方法は現在rocm4.5のみをサポートしています(必要があります)。記事の冒頭にあるトーチのダウンロードページでrocmを検索すると、サポートされているバージョンや
他のバージョンは現在あまり良くないことがわかります。グラフィックカードの独自のpytorchバージョンを作成する必要がある場合、試してみましたコンパイルが数回失敗した場合は、Dockerコンテナを直接使用できます。インストール後にcuda.is_available()
yesTrue
と表示されますが、トレーニングの実行時にHIPコンパイルエラーが報告されます。あなたはこの分野の大物です。公式ドキュメントのディープラーニングセクションに移動できます。公式のgittorchがあります。ソースコードのコンパイル方法は失敗しました。とにかく失敗しました。誰かが正常にコンパイルできる場合は、私に送ってください。メソッドははは。