C2050/2070でECCをONにした時のパフォーマンスの変化を調べた。場の収束計算で3次元FFTやベクトルの内積を計算する部分が大きな割合を占めるためにメモリアクセスが律速となるプログラムをベンチマークとして使用した。
結果は
ECC OFF ON
時間 9.6s 11.9s
となり明らかな違いが観察された。ECCをONにするとOFFの時の8割程度の速度しか出なくなる。これはECC用のメモリを別に用意しているわけではなくユーザーメモリを利用しているためである。
メモリアクセスが計算の律則になっていて、ECCを必要としない場合、もしくはメモリをギリギリまで必要とする場合にはECCをオフにしていた方がパフォーマンスが向上する。
2010年7月18日日曜日
2010年7月17日土曜日
C2050/2070でECCをON/OFFする。
NVIDIAのFermiのアーキテクチャではECCがサポートされた。金融などの要求に対応するためであるが、ECCをONにすると使用可能なユーザーメモリが12.5%減少する。また、メモリアクセスのパフォーマンスにも影響が出る事が懸念される。そこでECCのON/OFFを切り替える方法を紹介する。NVIDIA Forumsの"How to disable/enable ECC on C2050?"を参考にした。
ECCのON/OFFを切り替えるのはnvidia-smiを使用する。コマンド使用後にリブートが必要となる。まずは
で現在のステータスを確認しよう。ECCがサポートされていないGPUの場合
と表示され、サポートされている場合には
と表示される。ここでGPUに割り当てられる番号はdeviceQueryコマンドで表示されるものと違う場合があるので注意しよう。この表示の場合、Current(現在)はECCサポートなしで0、リブート後も0となっている。
GPU 1のECCのサポートをオン(1)にしたい場合
とする。-gはGPUを指定し、-eはリブート後のECCサポートのオン(1)オフ(0)を指定する。つまりオフにしたいときは
とすればいい。コマンドが正しく実行されたかを確認するためには
を実行した後に
で確認してみれば
となっているはずだ。この状態でリブートすればECCがオンになる。
ECCのON/OFFを切り替えるのはnvidia-smiを使用する。コマンド使用後にリブートが必要となる。まずは
nvidia-smi -r
で現在のステータスを確認しよう。ECCがサポートされていないGPUの場合
ECC is not supported by GPU 0
と表示され、サポートされている場合には
ECC configuration for GPU 1:
Current: 0
After reboot: 0
と表示される。ここでGPUに割り当てられる番号はdeviceQueryコマンドで表示されるものと違う場合があるので注意しよう。この表示の場合、Current(現在)はECCサポートなしで0、リブート後も0となっている。
GPU 1のECCのサポートをオン(1)にしたい場合
nvidia-smi -g 1 -e 1
とする。-gはGPUを指定し、-eはリブート後のECCサポートのオン(1)オフ(0)を指定する。つまりオフにしたいときは
nvidia-smi -g 1 -e 0
とすればいい。コマンドが正しく実行されたかを確認するためには
nvidia-smi -g 1 -e 1
を実行した後に
nvidia-smi -r
で確認してみれば
ECC configuration for GPU 1:
Current: 0
After reboot: 1
となっているはずだ。この状態でリブートすればECCがオンになる。
登録:
投稿 (Atom)