RTX50XXシリーズのROP欠落をLinuxでチェックする方法
TL;DR
- LACTを使って確認する
- または有志の方のプログラムをコンパイル&実行して確認する
ROP欠け問題
RTX50XXシリーズのGPUには製造時の欠陥でROPコア[1]が不足しているものが存在しています。私は深層学習のトレーニング用途でRTX5090を購入したため、ROPが欠けていても問題はない[2]とのことなのですが、衛生観念的に「調べておいたほうが良いかも...」となったため調べます。
LinuxではGPU-Zが使えない
多くのメディアでROP欠落を調べる方法はGPU-Zを使用すると説明されているのですが、GPU-ZはWindows専用です。前述の通り、私は深層学習用途にRTX5090を購入したので、OSにはLinuxを使用したいです。この場合、Linuxを入れる前にWindowsをインストールしてチェックすることが考えられます。しかし、今回は急ぎ環境構築を済ませる必要があり、Windowsを一旦インストールして検証することができませんでした。
また、WindowsPEで確認することも考えたのですが、Geforceドライバのインストール方法が不明だったので使用しませんでした。
NVIDIAのフォーラムへ
私と同じことを考える人は案外いるみたいで、「RTX5090 ROP Linux」のワードで検索するとすぐにNVIDIAのフォーラムがヒットしました。そして議論が進む上で、Miro256氏の報告により、NVIDIAがオープンソースにしたカーネルモジュールからROPのカウントが拾えることが判明しました。
カーネルモジュール内該当コード
そのコードを活用し、ROPが確認できるいくつかの小さいプログラムが投稿されたり、GPUの情報が確認できるLinux GPU Control Application(LACT)へROP数が確認できるコードが取り込まれました。
実際にやってみる
今回はLACTを用いた方法で確認します。環境はUbuntu 24.04, RTX5090です。
LACTのインストール
公式よりdebパッケージが提供されているためそちらを使用します。
wget https://github.com/ilya-zlobintsev/LACT/releases/download/v0.7.3/lact-0.7.3-0.amd64.ubuntu-2404.deb
sudo apt-get install ./lact-0.7.3-0.amd64.ubuntu-2404.deb
インストール後はサービスを有効にします。
sudo systemctl enable --now lactd
CLIで確認
~$ lact cli info
GPU 10DE:2B85-10B0:F319-0000:01:00.0:
=====================================
GPU Model: NVIDIA GeForce RTX 5090 (0x10DE:0x2B85)
Card Manufacturer: Unknown (0x10B0)
Card Model: Unknown (0xF319)
Driver Used: nvidia 570.124.06
VBIOS Version: 98.02.2E.00.91
VRAM Size: 32607 MiB
GPU Family: Blackwell
Cuda Cores: 21760
SM Count: 170
ROP Count: 176 (22 * 8)
VRAM Type: GDDR7
VRAM Manufacturer: Samsung
L2 Cache: 98304 KiB
Resizeable bar: Enabled
CPU Accessible VRAM: 32768
Link Speed: 32 GT/s PCIe gen 5 x16
正常な場合のコア数は以下の通りです。
Cuda Cores: 21760
SM Count: 170
ROP Count: 176 (22 * 8)
-
CUDAコア, RTコア, Tensorコアに続く、グラフィック処理の一部を担うコアのこと。 ↩︎
-
https://www.theverge.com/news/617901/nvidia-confirms-rare-rtx-5090-and-5070-ti-manufacturing-issue ↩︎
Discussion