2017-04-18 17 views
1

私はNvidiaカードのネイティブ算術演算のスループットを見出そうとしています。 thisページで、Nvidiaはさまざまな算術演算のスループット値を文書化しています。問題は、値がそれぞれ異なるため、私のカードが16ビット操作か32ビット操作か64ビット操作かをどうやって判断するのですか? また、私のカードのこれらの命令のレイテンシ値も計算したいと考えています。それを行うにはいくつかの方法がありますか?私の研究が行っているところでは、スループットのように文書化されていません。この目的のためのベンチマークスイートがありますか?私のGPUが16/32/64ビット算術演算を行うかどうかを調べるには?

ありがとうございます!

答えて

4

カードごとに値が異なるため、カードで16または32または64ビット操作が行われるかどうかを確認するにはどうすればよいですか。

ページ上には、you linkedページには、各列の表の上部にある計算機能が記載されています。あなたのGPUには計算能力があります。 deviceQuery cudaサンプルアプリを使用して、それが何であるか把握したり、hereを検索したりすることができます。

たとえば、GTX 1060 GPUがあるとします。 deviceQueryを実行すると、6の計算能力メジャーバージョンと1のマイナーバージョンが報告されるため、計算機能6.1 GPUです。また、hereが表示されます。

ここで、リンクした表に戻ると、6.1と表示されている列が重要です。これはGTX 1060は、3つの異なる精度(16ビット、32ビットすべてで3つの操作のタイプ(浮動小数点乗算、又は乗算 - 加算、または追加)することが可能であることを意味

          Compute Capability 
                6.1 
16-bit floating-point add, multiply, multiply-add 2  ops/SM/clock 
32-bit floating-point add, multiply, multiply-add 128 ops/SM/clock 
64-bit floating-point add, multiply, multiply-add 4  ops/SM/clock 
... 

:これは、このようになります、64ビット)を各精度ごとに異なる速度またはスループットで実行することができます。テーブルに関しては、これらの数値は、とSMにつき、です。

GPU全体の理論上の総スループットを決定するには、GPUのクロックレートとGPUのSM(ストリーミングマルチプロセッサ)の数を上記の数に掛けなければなりません。 CUDA deviceQueryアプリもこの情報をあなたに伝えることができます。あるいは、オンラインで調べることもできます。

さらに、私のカードのこれらの命令のレイテンシ値も計算したいと思います。それを行うにはいくつかの方法がありますか?私の研究が行っているところでは、スループットのように文書化されていません。

私はすでにあなたのprevious questionに述べたように、これらのレイテンシの値が公表され、または指定されていない、実際に彼らがかもしれない(と行う)1つの命令タイプから別のGPUのGPUからの変更、(例えば浮動小数点乗算と浮動小数点加算は異なる待ち時間を有する可能性がある)、複数のSASS命令のシーケンスを介してエミュレートされる特定の演算タイプに対して、CUDAバージョンからCUDAバージョンに変更することさえできる。

このレイテンシデータを検出するには、マイクロベンチマークを行う必要があります。これがCUDA GPUのためにどのように行われるのかを示す初期の論文はhereです。 GPUのマイクロベンチマークデータのレイテンシのための標準的なリファレンスは1つではありませんし、ベンチマークプログラムがこれを行うための標準的なリファレンスもありません。それはかなり困難な取り組みです。

この目的のためのベンチマークスイートはありますか?

このような質問は、SOの話題とは明確に異なります。それは述べてどこhereをお読みください:

「ブック、ツール、ソフトウェアライブラリ、チュートリアルや他のオフサイトのリソースをお勧めしますか見つけるために私たちを尋ねる質問には...オフトピックスタックオーバーフローのためにあります」
関連する問題