2017-03-17 11 views
0

GTXタイタンX(マックスウェル)対GTXタイタンXおよびI IはCUBLASとCuSparseライブラリ関数を使用しているクーダ8.0 機能があります cusparseDcsrsv2_solveを(); cusparseDcsrmv(); cublasDdot();CuSparse/CUBLAS K40私はテスラK40との両方を使用しています

なぜGTX Titan XがK40より高速ですか? すべてのコンピューティング能力が3.0から6.0になるようにnvccをコンパイルしています と私のプログラムは9 GB/12 GBのRAMを処理します。 私についてライブラリ関数は倍精度を使用しないため、GTX TITAN Xは6.xxのTflopsを持ち、K40は4.xxのTflopsを持ち、浮動小数点の場合はGTXのTITAN Xが2xxのGFlopsを持ち、K40のビットが1.xxのTflopsです。理論的にはK40はGTXより速くなければならないTITAN X 何が私の問題だろうか?とても奇妙です。

+0

try cublasDgemm。それはK40でより速くなります。リストにある他の関数は、メモリスループットに制限されずに、メモリ帯域幅の制約があります。これは、一般に、疎な行列演算の場合である。 cublasDdotには計算量が足りないため、十分な計算強度がありません。 –

+0

私の部署にワークステーションを指定していません。 両方のワークステーションに同じRAM、CPU、HDD eccがあります。 cudaSetDevice用ID TESLA K40は0 ある他のワークステーションのみGTX TITAN Xを有するCUDAコーダでX GPU 1 TESLA K40しかしを使用する GPU 0 GT 750:違いは、一つは、2つのGPU(出力NVIDIA-SMI)を有することです TITANにはDDR5 RAMがあり、K40にはDDR3 RAMがあるので、違いはメモリ帯域幅だと思った。 私の最初の設定が間違ってインストールされているかもしれませんか? –

+0

はい、Tesla K40の代わりにGT 750でコードが実行されている場合は、確かに失望します。 [CUDA_VISIBLE_DEVICES環境変数](http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars)を使用して、そのマシンのK40上でコードを実行させることができます。その変数と 'deviceQuery'サンプルコードを試して、動作を理解してから実際のコードを再実行してください。私は本当にあなたのコードがGT 750で走っているとは思っていません。 –

答えて

1

まず、これらの質問への回答は通常です。カーネルのプロファイルをとすれば、正確に何が遅く実行されているかを知ることができます。

私はしかし、それはK40がマクスウェルタイタンXよりも速くすることになっていることは事実ではない、と言うだろう:

  • クロック速度:タイタンX:1000 MHzの、テスラK40:745 MHzの。
  • メモリ帯域幅:タイタンX:336GB /秒、テスラK40:288GB /秒。 「CUDAコア」(マルチベクトル化レジスタ内すなわち最大同時実行レーン)の
  • 番号:タイタンX 3072、テスラK40:2888.

のでタイタンXがで作業統計の束を有しますその利点は、言い換えれば、同じ「未加工」の統計値でもパフォーマンスを賢明にミックスできる、異なるマイクロアーキテクチャであることは言うまでもありません。したがって、少なくとも一部の作業負荷では、Titan Xはより速くなければなりません。

当然ながら、倍精度浮動小数点演算のために、K40はTitan Xを最も簡単に使用しなければなりません。K40は1430G FMA ops/secのシリコンと192(!)のTitan Xのみを備えています。

+0

はい、それは本当です。しかし、テスラK40は倍精度浮動小数点演算でより良くなるはずです。それはTitan Xよりも5倍速いはずです。それはより多くのメモリ帯域幅を使用するcuSparseによるものです。 –

+0

@ AlessandroD'Auria:確かに編集を参照してください。実際にnVIDIAがKepler Titan XからMawell Titan Xまでの倍精度シリコンをどのように削ったのか、あなたのコメントの前に気づいていませんでした。 – einpoklum

関連する問題