1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GPUのメモリを検査する

Posted at

はじめに

 GPUのメモリが故障しているかどうか気になることがあると思いますが、そうした場合Direct 3DやVulkan、CUDAやOpenCL経由では見ることができるメモリは一部にすぎないのでちょっとしたテストプログラムを用意しても不安になるかもしれません。そこで、より広いメモリ領域を検査する方法を拾ってきたので紹介したいと思います。

注意

 GPUやその使われ方によりますが、メモリの末尾部分がコンソール表示に用いられていたりしてエラーが集中して出る場合があります。不良部分を末尾に固めてマップしている場合もあるかもしれません。具体的にはRX 580では末尾8MiB、RX Vega 56では末尾28MiBのみにエラーが出ていました。

方法

 How To Test AMD Radeon GPU RAM memory using Linux ScriptsというYouTubeにある動画にあるのですが、Englishという見慣れない聞きなれない言語でよくわからないので訳すことなく日本語で書いてみることにします。

用意するもの

メモリを検査する手順など

  • Rufusを管理者として実行し、Arch Linuxを起動可能になるようUSBメモリに書き込み、そこに検査用スクリプトをコピーします。

  • USBメモリからArch Linuxを起動できるようにするためにUEFI設定でセキュアブートを無効にします。Smart Access MemoryやClever Access Memory、或いはResizable BARと呼ばれるものは無効のままでもメモリ全域が現れるようです。

  • 検査対象のGPUにモニタを繋げたままでも問題ないと思います。

  • USBメモリからArch Linuxを起動します。
    選択項目が表示されますが、一番上のArch Linux install medium (x86_64, x64 UEFI)のようなものを選びます。

  • 検査用スクリプトを読めるようにするため、スクリプト保存先のパーティションをマウントします。
    マウント先を作ります。
    mkdir /hoge
    などでいいでしょう。

    スクリプト保存先のパーティションを表すファイル名を見つけ出します。
    fdisk -l
    として見つけます。ここでは/dev/sdc1がそのファイル名だとします。

    マウントします。
    mount /dev/sdc1 /hoge
    といった感じになると思います。

  • 検査対象のアドレスを探します。
    lspci -v | less
    とタイプして探します。大抵の日本語キーボードの場合『|』は、Shiftを押しながらEnterのすぐ左の『む』を押すと出せるはずです。
    lessでの表示中は、jキーで進み、kキーで戻り、qキーでlessを終了できます。
    対象デバイスのところに
    Memory at 6000000000 (64-Bit, prefetchable) (size=8G)
    といった感じでGPUのデバイスメモリの先頭アドレスとサイズが出ているはずです。

  • 検査用スクリプトを実行します。
    python3 /hoge/memtest.py (検査開始アドレスを十六進数で) (テストサイズをメガバイト単位の十進数で)
    たとえば、
    python3 /hoge/memtest.py 6000000000 8192
    といった感じです。

  • 環境にもよりますが数分間から十数分間ほど検査に要するので、まずは64MiBなど小さめのテストサイズで実行してから検査時間を見積もるとよいかもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?