1.5 Exaflopsの演算性能を持ち、2021年納入予定の Frontier 、
2 Exaflopsの演算性能を持ち、2022年か2023年早期に納入予定の El Captitan どちらも AMD CPU + AMD GPU のノード構成になることが明らかにされているが、
それらスパコンに向けたソフトウェア側の機能が Linux Kernel に組み込まれつつある。
インデックス
RAS機能への対応
RASは Reliability, Accessibility, and Serviceability の略。
これは Vega20 の頃から対応が進められており、各ユニットUMC、SDMA、GFX
へのエラー注入、そこからのGPUリセット機能(BACO)による復帰テストが行なえる。1
BACO は Bus Active, Chip Off の略。
プロセスごとのVRAM使用量が取得可能に
[PATCH] drm/amdkfd: Track GPU memory utilization per processAMDは現状、rocm-smi
というツールを提供しており、それによってVRAMの使用量を確認できるが、VRAM全体であり、どのプロセスがVRAMを多く消費しているか、といったものを知ることはできない。
だが上記パッチにより、それが可能になるはずだ。
/proc/<pid>/ 下に vram_<gpuid> というファイルを生成するようになり、GPUごとに割り振られるIDをファイル名に使うため複数GPUの環境にも対応されている。
この機能はアプリケーションの最適化にも役立つだろう。
この機能を、NVIDIAは以前から nvidia-smi
2で提供しており、ツール面でようやくAMDが追いついてきたと言える。ROCmの開発、スーパーコンピュータ採用等で必要に迫られたのかもしれない。
一応、AMDはumrやRadeon GPU Analuzer、Radeon™ GPU Profiler等、レジスタレベル、パイプラインのモニタツールは豊富に提供している。
また少し前までは、AMDGPUの場合、上記 rocm-smi
や radeontop 等のソフトウェアを用いなければ全体でもVRAM容量、使用量を知ることが難しかったが、
現在はそれら情報が sysfs へ出力されるようになっているため、VRAM使用量なんかは
$ cat /sys/class/drm/card0/device/mem_info_vram_used
を実行するだけで知ることができる。
ただこの機能、既に組み込まれているがドキュメント類は 2020/04/29 現在、未だにアップデートされていない。3
自分のような一般ユーザにも恩恵があるため、広く周知されてほしい。
私的conkyrc | Coelacanth’s Dream
FRUチップ
製品名、製品ナンバー、シリアルナンバーを記録した FRUチップ を読み取るためのパッチが 2020/03/19 より投稿されている。
Enable reading FRU chip via I2C v3 - Patchwork
この FRUチップ によってソフトウェアから問題が発生したハードウェアを特定しやすくなり、大規模なコンピュータにおける障害対応、部品交換を手助けする。
FRUチップ は Vega20 の一部SKUにも搭載されているがサーバ向けのみとなっており、ゲーミング向けSKUは FRUチップ を搭載していない。実際コード中でもゲーミング向け製品 Radeon VII の DeviceID:“0x66AF”、Apple専用製品 Radeon Pro Vega II (Duo) の DeviceID:“0x66A3” は判定部に含まれていない。4
Arcturus はそういった DeviceIDでの判定はせず、すべてが FRUチップ を搭載するとし、また前のパッチリビジョンでは Arcturus にゲーミング向けSKUは存在しないとしている。5
やはり、よく言われているように Arcturus はサーバ向けSKUのみとなるだろう。
Streaming Performance Monitor
先日パッチが投稿されたばかりの機能。
[PATCH] drm/amd: add Streaming Performance Monitor feature
中身としては、内部バスの利用状況、GPU内部のデータの流れを監視するためのものと読める。
しかし、後のパッチレビューにて様々な問題点が指摘されており、仮に実装するとしても時間が掛かりそうだ。6