2012-03-04 13 views
4

nvidiaによると、 cublasZgemmはIntel MKLよりも6倍高速です。cublas cublasZgemm()予想より遅い

しかし、私のPC(i7 2600、Nvidia gtx560、OS:Linux 64bit)では、cublasZgemmはMKLよりわずかに遅いです。

numpyをMKL 10.3にリンクするenthought python distributionに付属するnumpy.dot()を使用します。

cublasZgemmを使用した行列乗算関数は、共有ライブラリでコンパイルされ、pythonスクリプトでctypesを使用して呼び出されます。

2つの1024x1024の複素行列を乗算する場合。 numpy.dot()は84msかかりました。 ctypes関数呼び出しは110msを費やし、cublasZgemm()部分は97msを要しました。

なぜcublassZgemmがnvidiaと同じくらい速くないのだろうか?

+2

あなたが持っているGPUは、NVIDIAがベンチマーク番号を生成するために使用したものより倍精度のパフォーマンスが__much__遅いです。 – talonmies

+0

@talonmiesの答えを拡張するために、Teslaカードで使用されていないFermi GPUは、人為的にチップの能力の1/4倍の倍精度に制限されています。私はあなたが何種類の数字を乗算しているかについて言及していないので、答えとして答えを入力しなかったと推測します。 –

+1

@RogerDahl:いいえ、彼はそうしました - ZGEMMは倍精度複合体です。 – talonmies

答えて

4

なぜcublassZgemmがnvidiaと同じくらい速くないのだろうか?

短い答えは、パフォーマンス数値を生成するためにNVIDIAが使用したものよりも、zgemmのベンチマークを実行するためにかなり遅いGPUを使用したためです。あなたのGTX560は恐らく約の8倍ですあなたのリンクのNVIDIAによって使用されたTelsa M2090より倍精度のパフォーマンスが遅いです。

関連する問題