RX9070XT+WSL2+ROCm+Pytorch 動作テスト
■ 下記のような手順でRX9070XT搭載Windowsマシンにおいて、WSL2上でROCmおよびROCDXGをインストールし、PytorchによるDNNの学習テストを行った.
■ 新旧手順がネット上に混在していたので正しいガイド(2026年4月時点)を探し当てるのに少し手間取ったが、インストール自体はハマるところもなく動作確認までスムーズに完了.
(1) Windows 11 ProでWSL2にUbuntuをインストール
- 管理者でコマンドプロンプトを立ち上げ、
C:\Users\User>wsl --install -d Ubuntu-24.04
(2) システムをアップデート
- Ubuntuがインストールされるとユーザー名&パスワード設定を要求されるのでそれを実施した後にすかさず、
ubuntu-user@your-pc:~$ sudo apt update ubuntu-user@your-pc:~$ sudo apt upgrade
でシステムを最新にする.
(3) 追加パッケージをインストール(オプション)
- clangとlibboostは今回の件とは直接関係ないが結局後で導入することになるのでここでインストール
ubuntu-user@your-pc:~$ sudo apt install build-essential cmake clang libboost-all-dev
(4) ROCmのインストール
- 公式ガイド に沿って実施する.
- 最近やり方が変わったようで、ROCDXG を入れろと言われる.
- それと、Windows側でドライバが入っていればWSL側には不要らしい.
No Display Driver Installation Required
- Windows側ドライバのバージョン縛りも緩くなった模様(***より上とかはあるだろうが
- それと、Windows側でドライバが入っていればWSL側には不要らしい.
- なので ROCDXG のページに行くと
- Windows SDK
- ROCm
- ROCDXG
を順次インストールせよ、と書かれているのでその通りにする.
- まず、1. Windows SDK だが、編集時点ではリンク先のポータルにあるWindows SDK for Windows 11 (10.0.26100.7705)のインストーラを使った. また、インストール先のパスは後でUbuntuで指定する必要があるため面倒くさいことになる可能性があるので変えていない.
2. ROCmのインストールも指定されたガイド の通りに行った. つまり、下記のようにコマンドを実行する.
ubuntu-user@your-pc:~$ wget https://repo.radeon.com/amdgpu-install/7.2.1/ubuntu/noble/amdgpu-install_7.2.1.70201-1_all.deb ubuntu-user@your-pc:~$ sudo apt install ./amdgpu-install_7.2.1.70201-1_all.deb ubuntu-user@your-pc:~$ sudo apt update ubuntu-user@your-pc:~$ sudo apt install python3-setuptools python3-wheel ubuntu-user@your-pc:~$ sudo usermod -a -G render,video $LOGNAME ubuntu-user@your-pc:~$ sudo apt install rocm- 同ページにはROCmのあとにドライバインストールも載っているが、前述のとおり不要なのでスキップする.
最後、ROCDXGも下記のように 公式ガイド 通りにやればよい.
ubuntu-user@your-pc:~$ git clone https://github.com/ROCm/librocdxg.git ubuntu-user@your-pc:~$ cd librocdxg ubuntu-user@your-pc:~$ git checkout c71c16dd7d90ef90965b62bc53b62277176b5b41 # 編集時点の実装を使うため ubuntu-user@your-pc:~$ export win_sdk='/mnt/c/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/' ubuntu-user@your-pc:~$ mkdir build ubuntu-user@your-pc:~$ cd build/ ubuntu-user@your-pc:~$ cmake .. -DWIN_SDK="${win_sdk}/shared" ubuntu-user@your-pc:~$ make ubuntu-user@your-pc:~$ sudo make installインストール後、動作確認は次のようにする.
ubuntu-user@your-pc:~$ export HSA_ENABLE_DXG_DETECTION=1 ubuntu-user@your-pc:~$ rocminfoHSA_ENABLE_DXG_DETECTIONはGPUの認識に必要なので .bashrc などに書いておくとよい.GPUが正常に認識されると次のような出力が得られる(一部抜粋)
******* Agent 2 ******* Name: gfx1201 Uuid: GPU-XX Marketing Name: AMD Radeon RX 9070 XT Vendor Name: AMD Feature: KERNEL_DISPATCH Profile: BASE_PROFILE Float Round Mode: NEAR Max Queue Number: 128(0x80) Queue Min Size: 64(0x40) Queue Max Size: 131072(0x20000) Queue Type: MULTI Node: 1 Device Type: GPU
(5) minicondaのインストール(オプション)
- 実行環境隔離のため
- あってもなくてもどちらでもよい(お好み)
ubuntu-user@your-pc:~$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh ubuntu-user@your-pc:~$ bash Miniconda3-latest-Linux-x86_64.sh
(6) Pytorchのインストール
- 専用実行環境構築
ubuntu-user@your-pc:~$ . "/home/ubuntu-user/miniconda3/etc/profile.d/conda.sh" # .bashrc等に書いてあればスキップ可 ubuntu-user@your-pc:~$ conda create -n pytorch-exec python=3.13 # 環境名は何でもよい(ここでは pytorch-exec ) ubuntu-user@your-pc:~$ conda activate pytorch-exec
- パッケージのインストール
(pytorch-exec) ubuntu-user@your-pc:~$ pip install torch==2.11.0 torchvision==0.26.0 --index-url https://download.pytorch.org/whl/rocm7.2
(7) CIFAR10による学習テスト
(pytorch-exec) ubuntu-user@your-pc:~$ git clone https://github.com/kuangliu/pytorch-cifar (pytorch-exec) ubuntu-user@your-pc:~$ cd pytorch-cifar (pytorch-exec) ubuntu-user@your-pc:~$ python main.py
■ 使い勝手はNVIDIAのCUDAにかなり近くなってきている.
■ あとはパフォーマンスが出るかどうか. (特にマルチ構成で)
■ 次回はベンチマークを行う.
Stable Diffusion 試用 2
- 先日の画像を使ってWan2.2によるI2Vを試してみた
- この 5 秒の動画の生成に 1 分弱かかるので、もし 1 分の動画を作るとすると 12 分くらいかかる(編集含まず)
- ちょっと不自然だと思っていた指が正しく描画されているし、髪の動きとかもかなり自然...
Stable Diffusion 試用
- 1年半ぶりくらいに触ったが、↓のような自然な画像が60語程度のプロンプトで生成できるとは驚き.
- しかも速い.(一枚5秒くらいしかかからない)

- ただ、手はまだプロンプトだけだとクオリティ低めで安定しない(一定のクオリティをもつ画像の生成が低確率)ので追加のLoRAを入れたほうがよさそう.

- いずれにしても扱いやすさの水準が上がっていて(特に一貫性)、探索するモチベーションが少し出てきた.
個人的アクティブノイズキャンセリング(ANC)ワイヤレスイヤホン評
- 最近イヤホンが壊れて買い替えたのだが、ここ数年で結構な数を買っていることに気がついたので記録用にまとめてみたい.
- 5段階評価かつ個人的印象(当然だが).
- 全ての機種において、ANC以外の音質調整はしておらずデフォルトにしている.
1. Bose QuietComfort Earbuds | ボーズ
- ANC:5, 10段階近く強度のきざみがあって調整できる. 最高より少し弱めで使っていたが、サイレン等わざと発せられている音響以外はかなり無音に近くなる感じ. 調整の柔軟性も高いし、ノイズ遮断力も下記 WF-1000XM4 および AirPods Pro 2 より高いと感じる.
- 音質:5, 全体的に通る感じで良い. 低音域に高級感がある.
- 装着性:1, とにかくイヤーピースがデカく、装着後10数分で痛くなってくるほど. 大小の差はあれ、BoseのEarbudsシリーズの密閉型に共通している、耳の穴の奥から入り口に向かって急激に膨らむ形状になっており、耳の穴の入り口付近で支える感じでシリコン素材と相まって負荷が大きく感じられた. 遮蔽性を重視しているのはわかるが、これはやりすぎではと思った.
- 耐久性:5, 3年と少し使っていたが、バッテリーやイヤーピースの明確な劣化は特に感じられず.
- 備考:2021/1 仕事(Macbookでの作業)用に購入. 2024/3頃に中身があるコップにホールインしたため廃棄.
- ANC: 3, 上記QuietComfort Earbuds(QCE) よりノイズ遮断力は低いが、下記 AirPods Pro 2よりは若干良いくらいな印象. 集中が途切れるほどではないが、周囲の人の会話や電車内の騒音が少し感じられる. また、ノイズ遮断強度調整の自由度は、オン、外部取り込み、オフの3種類と QCE に比べると低い(が、多分こちらの方が一般的)
- 音質:4, QCEに比べると若干高音域に寄っている感じはあるが、ほぼ同じ印象. 低音域はBose機の方が良い.
- 装着性:4, イヤーピースはウレタンで耳の穴に差し込む密閉型の無難な感じ. 特に異常な負荷は感じられず、バッテリー切れまで(最大4時間程度)装着しても全く問題ない. 移動時もよっぽどのことがない限り落下することはない.
- 耐久性:3, ウレタンなので仕方ないのかもしれないが、2年ほどでイヤーピースが劣化のため破損したので買い替えた. また、バッテリーの持ちもフル充電で4時間程度から2時間半ほどに劣化している. ただ、これは通勤での高頻度使用&充放電が原因かもしれない.
- 備考:2022/6 通勤時の音楽鑑賞用に購入. 2025/1 現在も使用中.
3. Bose QuietComfort Earbuds II | ボーズ
- ANC: 5, 高強度ノイズ遮断のパフォーマンスは QCE と同じ. 強度調整は10段階より大幅に減った気がするが実用的には全く支障なし.
- 音質:5, 前世代との違いは感じられない. 普通に良い.
- 装着性:2, 前世代より快適になったが、長時間使用でまだ少し違和感がでてくる感じ.
- 耐久性:2, 2年ほどの使用の後、清掃中に接着剤の劣化(と思われる)によりスピーカー部が脱落破損した. 外出で持ち出すことはなく、完全に室内および平均週2日程度での使用頻度にしては脆いと感じる. 一方、バッテリーの明確な劣化はこの期間では感じられなかった.
- 備考:2023/2 私用Macbookで使うため上記1, 2に加えて購入. 2025/1 上記破損のため廃棄.
4. QuietComfort Ultra Earbuds – 空間オーディオイヤホン | ボーズ
- ANC: 4, QCE および QCE II と同程度と思われるが、下記ノイズの影響で明確には言い切れず.
- 音質:2, 曲の開始または合間にホワイトノイズまたは「パチパチ」といったノイズが生じて曲への没入感が阻害されるし不快. おそらくPCと通信する回路のノイズがスピーカーに混入しているのだと思われる. それ以外は QCE および QCE II と同程度によいのだが、この不具合が全てを台無しにしている.
- 装着性:2, 前記 QCE II と同じ.
- 耐久性:X, 評価できず.
- 備考:2024/3 事故で損失した上記 QCE の代替として購入も、不具合(上記ノイズ)により 2週間弱で返品
- ANC:3, 全体的に WF-1000XM4 と同程度だが、突発的な音響(スイッチのオン・オフのようなスパイク的なもの)はあまり遮蔽しない感じがする. ファンの旋回など定常性の高いものにはかなり効果的に対応している印象. 今のところ室内のみで使っており、その限りでは集中力が途切れるレベルの実用上の不便はない.
- 音質:4, あまり特徴的なものは感じない. WF-1000XM4に近いかもしれない.
- 装着性:4, カナル型でイヤーピースはシリコンだが、特に異常な負荷は感じられず、バッテリー切れまで(5時間前後)装着しても全く問題ない. これまで使ってきたANCイヤホンの中で最も負荷が低いと感じるが、その反面、物理的な遮蔽性・安定性に若干疑問が残る(イヤーピースの変更を試していないので、それを確認する必要があるかもしれない)
- 耐久性:5, 中間評価になろうかと思うが、10ヶ月ほど使用していてイヤーピースやバッテリーの劣化は今のところみられない.
- 備考:2024/3 上記 QCUE の代替として購入. 2025/1 現在も使用中.
6. QuietComfort Earbuds (第2世代) | ボーズ
- ANC: 5, 高強度ノイズ遮断のパフォーマンスは上記各Bose機と同程度. 強度調整自由度はオン、外部取り込み、オフの3種類と一般的な水準.
- 音質:5, 前世代との違いは感じられず. QuietComfort Ultra Earbudsで盛大にハズレを引いたので最近のBoseには不安があったが、この機種では件のノイズ問題は生じなかった.
- 装着性:3, 上記各Bose機より明確に快適になったが、特筆すべき点はない.(やっと普通レベルになった程度)
- 耐久性:X, 評価できず.
- 備考:2025/1 QCE II 破損による代替のため購入. 現在も使用中.バッテリーの持ちに期待.
SATAディスクからWebdatasetでデータをロードするときのスループットを確認する
-
概要
- 巷ではこれまでの画像生成DNNを超える品質と多様なタスクをこなすことができるStable Diffusion系DNNが話題だが、個人的にはそれに使われている超大規模データセットLAIONのほうにとりあえず興味がある.
- LAION-400MをDNN学習に役立てられないかということで、先週からDLしているのだが、十数TBもの規模のデータは最大20MB/s程度の弊回線では荷が重く、1, 2ヶ月かかる勢いである.
- 今回は、DLしたデータの一部を使い、学習時にデータをロードする際、HDDがボトルネックになりそうかどうかをチェックした.
- その結果、今のところ想定する環境ではHDDからの読み込み速度はボトルネックにならない(SSDなみ)ことがわかった.
- 詳細は以下の通り.
-
測定結果一覧
- SSDおよびHDDともに、バッチサイズとワーカー数の変動に対して同じように読み込みが変化しており、デバイス間の実効スループットはほぼ同じと言える.
- バッチサイズの増減は読み出し速度にほぼ影響しないが、ワーカー数は多くとった方がパフォーマンスは向上する.
- 実験では、SSD(NVMe, PCIe4.0x4) 一台 と HDD(SATA 6Gbps)四台の2種のストレージにおいて、バッチサイズおよびワーカー数を変えた時の webdatasetの読み込みの所要時間を測定した.
- ハードウェア
- SSD: Crucial CT1000P5PSSD8
- HDD: Western Digital WD80EAZZ
- SSDの方は普通にフォーマットしてマウントしただけだが、HDDの方はLVMのストライピングを4にして4デバイス同時に読み書きできるようにしてある.
- CPU等その他は過去のRTX3090リグのページを参照.
- 所要時間は、所定のバッチサイズで総数12000のデータをすべて読み出すのにかかる時間を表す.
- ストレージからメモリに読み出す処理のみ行い、GPU等学習に用いるデバイスへの転送は行っていない.
- Transformはリサイズと標準化、tensorへの変換のみ.
RTX3090リグをAMD EPYCプラットフォームに換装する(ベンチマーク編)
- OSやライブラリ等のセットアップはネット上に公式含めいくらでもあるので省略することにしたが、いくつか気になった点についてはベンチマーク結果に行く前にここについでに記しておく.
- ベースシステムはこちら. GPUはRTX3090 を4台.
- セットアップ時に気になった点についてのメモ
- ベンチマーク結果
- CPUのみ
GPUメイン CPUのベンチマークは各項目のリンクにある通りOpenBenchmarking.orgにあるものを使わせてもらった.- CPUは概ね期待通りの性能になっており、全コア使用率100%でも温度は80度を超えることはほぼなく安定している.
- GPUメインの処理でも、CPUはその使用率から考えればまずボトルネックにはなっていないと言える.
- マルチGPU性能もほぼ期待通り.
- Object Detectionタスクでの4GPU構成でパフォーマンスが落ちているのが若干気になるが、バグというか不具合ではなさそう.
- メモリ使用量は記録を取るのを失念してしまったが、少なくともGPUメインのタスクでは最大でも60GB程度だったと思う.
- とりあえずこれでひと通り作業は完了
RTX3090リグをAMD EPYCプラットフォームに換装する(組み立て編その2)
- 前回は電子部品の構成を中心に述べた.
- 今回はそれらをリグフレームに組み込み、全体を(物理的に)完成させるところまで述べたい.
- 実は部品としてはマイニングに用いていたときとほぼ同じであり、去年の時点で揃っていた.
- が、本来の用途を考えたときのリグフレームの構造、特に段組みやファン配置など中身がかなり異なるため、結局ほとんどバラして組み替えることになった.
- GPUとしてブロワーファンのA5000やA6000が使えるならリグフレームの構造とか面倒なことを(比較的)考えなくても良いのだが、コストの関係上RTX3090にせざるを得ないため、やむなくリグフレームの方で対応することになった.
方針
- 要求仕様
- 上記のような仕様の一般的なPCケースが見当たらないため、スチールラック部品での自作とする.
設計
- ざっくりだが、基本構造は下図のようになった.
-

- ラックの外形としては、幅600高さ450奥行き450[mm]とした.
- GPU固定金具から、下方のマザーボード設置台までは最短(垂直)距離で200とし、ライザーケーブルもこの距離をカバーするものを用意した.
- 200でないと横置きするPSUとの間隔が非常に狭くなるのでこれ以上下げたくなかった.
- 今回はPCIeブラケットとスロットの2箇所のみに荷重が掛かることをかなり重視したので、この金具の構造が全体を決めたと言っても過言ではない.
- 空冷ファン取り付けのため、フレームはバカ穴が一定間隔で開いているものにした.
- パーツリストは次の通り*2
組み立て
- 文字より写真の方が想像しやすいと思うので完成時の様子をまず示す.

- リグフレームの構築
- リグフレームを前述の仕様に沿って組む
- GPU固定金具を4セット(=GPU台数分)作る
- ライザーケーブルをGPU固定金具に固定する
- ライザーケーブルつきGPU固定金具をフレームの所定の位置にフラットバーと共じめする.
- 下にこれらの部材を設置した時の写真を示す. 右下は同じものを真上から撮った写真である.
-

- このPCIeブラケットは、市販のPCケースの水平PCIeブラケットに固定するためのネジ穴が側面に開いており、それを利用してLアングルと締結する.
- そして、写真のようにPCIeブラケット+Lアングルをフラットバーの上にくるようにフレームに固定すると、なかなかいい感じの強度になる.
- ただ、構造上、PCIeブラケットの底面とフラットバーの間に隙間が開いてしまうので、写真で炭のようなブロックがこの隙間に入っているのが見えると思うが、今回は家に転がっていた10mmのゴム板をスペーサーとすることでぐらつきを防止した.
- 空冷ファンを取り付ける

-
-
- 後から気づいたのだが、偶然にも、140mmファンがGPU間スペースと理想的にフィットするようにな配置で取り付けられた.
-
- 以上で完成
