これらが稼働してCUBLASの私の結果ですが、それぞれのGPU(テスラM2050)のための2つのストリームを使用して4つのGPU上でDGEMMパフォーマンスDGEMM:私は私の結果をテストしていると、彼らは大丈夫ですCUBLASは、クエリ
。私は、デフォルトのストリームを使用するバージョンと比較して、私が得ている高いGflops値が心配です。複数のストリームを使用するバージョンについては
Gflops = {2.0*10^-9*(N^3+N^2)}/elapsed_time_in_s
を、私はどのような方法でこの式を変更する必要があります:私は式を使用してGFLOPSを計算するのですか?
HtoD-ker-DtoH
は、ホストからデバイスへのデータ転送、カーネル実行、およびデバイスからホストへのデータ転送を秒単位で行うのにかかる時間です(これは上記の式の分母です)。 クロスポストのNvidiaのフォーラム - http://forums.nvidia.com/index.php?showtopic=219910&st=0#entry1350908
EDIT:@talonmiesのコメントに続いて、私は時間を計算する前cudaStreamSynchronize
を追加し、結果は以下の通りである:
おかげで、
Sayan
「4 GPUで動作している」と言い、DGEMM操作ではどういう意味ですか? DGEMMを4台以上のデバイスに分割していますか? – talonmies
私は、各GPUごとに4つの部分にデータを分割して、各GPUのチャンク上で 'cublasdgemm'を実行しています。 – Sayan
C2050は約550 GFLOP /秒**ピーク**、約2200 GFLOP /秒4倍精度の場合は** **倍精度の場合はDGEMMがピークよりもかなり低いため)、ストリームのケースでタイミングが間違っていると思われます(おそらくデフォルトのストリームの場合は同期していたものが非同期です)。 FLOP/s計算は、どのように計算を行っても変わらないはずです。 – talonmies