私は Tesla K20c を使用しており、アプリケーションの実行中に nvidia-smi で電力を測定しています。私の問題は、消費電力が定常状態に達せず、上昇し続けることです。たとえば、アプリケーションが 100 回の反復で実行される場合、電力は 106W (4 秒) に達し、1000 回の反復で 117 W (41 秒)、10000 回の反復で 122W (415 秒) というように、毎回わずかに増加します。どの電力値を記録すべきかについての推奨事項を書いています。私の実験セットアップでは、400 以上の実験があり、それぞれを 10000 回反復することは、少なくとも今のところ実行できません。アプリケーションは、わずか数ミリ秒かかる 1 回の反復で実行できる行列乗算です。反復回数を増やしても結果に価値はありませんが、実行時間が長くなり、電力監視が可能になります。
1 に答える
時間の経過とともに消費電力が増加している理由は、持続的な負荷の下で GPU が熱くなっているためです。電子部品は、主にオーム抵抗の増加により、温度が上昇するとより多くの電力を消費します。さらに、Tesla K20c は積極的に冷却される GPU です。GPU が熱くなると、カードのファンがより速く回転するため、より多くの電力が必要になります。
あなたと非常によく似た K20c で、約 10 分間の実験を行いました。消費電力は 5 ~ 6 分後に安定し、その後は +/-2 W のノイズ レベルの振動しかないことがわかりました。これらは、ファンの温度制御フィードバック ループのヒステリシスが原因であるか、各カーネルの終わりでの GPU の不完全な使用による短期的な変動が原因である可能性があります。ファン速度の違いによる消費電力の違いは約 5 W でした。GPU が定常状態に達するまでにかなりの時間がかかる理由は、固体の金属製バック プレートを含むかなりの質量を持つアセンブリ全体の熱容量です。 .
あなたの測定値は、コードの 400 の異なるバリアントを実行したときの相対的な消費電力を決定することに向けられているようです。定常状態の消費電力が達成されることは重要ではないように思われますが、各バリアントがテストされる条件が実際に達成可能な限り等しいことだけが重要です。GPU のパワー センサーは、高精度の測定値を提供するように設計されていないことに注意してください。そのため、比較のために、5% 程度のノイズ レベルを想定する必要があります。正確な比較を行うために、同じタイプの複数の GPU からの測定値を平均することもできます。これは、製造公差によって、複数の「同一」GPU 間で消費電力が変動する可能性があるためです。
したがって、次のプロトコルをお勧めします。各バリアントを 30 秒間実行し、その間隔の終わり近くで消費電力を測定します。次に、GPU を 30 秒間アイドル状態にして、次のカーネルを実行する前にクールダウンさせます。これにより、各バリアントの開始条件がほぼ等しくなります。温度が長時間上昇したままであることがわかった場合は、提案されたアイドル時間を少し長くする必要がある場合があります。によって報告された温度データは、nvidia-smi
ここであなたを導くことができます. このプロセスにより、一晩で 400 のバリアントのテストを完了できるはずです。