GNU/Linux >> Linux の 問題 >  >> Linux

Windows で実行すると CUDA のパフォーマンスが低下する

WDDM スタックを介して GPU ハードウェア コマンドを送信するには、かなりの量のオーバーヘッドがあります。

お気づきのように、これは WDDM (のみ) の下で GPU コマンドを「バッチ処理」して、このオーバーヘッドを償却できることを意味します。バッチ プロセスでは (おそらく) 遅延が発生する可能性があります。これは、他に何が起こっているかによって変化する可能性があります。

Windows での最善の解決策は、GPU の動作モードを WDDM から TCC に切り替えることです。これは 01 経由で実行できます。 コマンドですが、Tesla GPU および GPU の Quadro ファミリの特定のメンバーでのみサポートされています。つまり、GeForce ではサポートされていません。 (また、デバイスが Windows アクセラレーション ディスプレイ アダプターとして使用されなくなるという副作用もあります。これは、Quadro デバイスまたはいくつかの特定の古い Fermi Tesla GPU に関連している可能性があります。)

私の知る限り、ドライバーの WDDM バッチ処理を回避したり影響を与えたりする公式に文書化された方法はありませんが、非公式に聞いたことがあります。 これにより、WDDM バッチ キューが GPU に「フラッシュ」される可能性があります。

Greg が指摘しているように、このメカニズムを広範に使用すると、償却の利点が失われ、益よりも害が大きくなる可能性があります。

編集: 2016 年に進むと、WDDM コマンド キューの「影響の少ない」フラッシュの新しい推奨事項は 28 になります。

EDIT2: Windows で最近のドライバーを使用すると、Titan ファミリーの GPU を TCC モードに配置できるはずです (プライマリ ディスプレイ用に他の GPU がセットアップされている場合)。 32 ツールを使用すると、モードを切り替えることができます (40 を使用) 詳細はこちら)

TCC ドライバー モデルに関する追加情報は、Windows インストール ガイドに記載されています。これには、カーネル起動の待ち時間が短縮される可能性があることが含まれます。

TCC サポートに関する記述は一般的なものです。すべての Quadro GPU がサポートされているわけではありません。特定の GPU で TCC がサポートされているかどうかの最終的な決定要因は 58 です。 道具。特定の GPU での TCC のサポートを保証するものではありません。


Linux
  1. PHP スクリプト - Linux と Windows のどちらで実行されているかを検出しますか?

  2. 現在実行中の cron ジョブを表示するには?

  3. Linux Docker コンテナーで実行しているときに証明書を読み取れない - Windows で動作する

  1. Windows XP 内で Linux を実行、つまりデュアル ブートなし

  2. Windowsでqemuを使用して仮想Linuxを実行する

  3. Linux 上のこれらの Windows プロセスとは何ですか?

  1. 使用できないコマンドを実行するときにパッケージのインストールを提案する

  2. Suの実行時に.bash_profileがソースされませんか?

  3. シェル スクリプトの実行時に root としてログインするようにユーザーに要求する