初心者のための読書のためのCUBLASまたはサポートされているライブラリ、および強調
質問
私は自分のプロジェクトでいくつかの行列計算を高速化するためにGPU(NVIDIAのQuadroはNVS140M)の力を利用しようとしています。私はいくつかのドキュメント(プログラミングガイド、ベストプラクティスガイド、およびリファレンスマニュアル)を読んだけど、わからないどのセクション(複数可)私が焦点を当てる必要があります。私はこの上でいくつかのアドバイスを受けることができれば、それは素晴らしいことだ。
サードパーティは、私は私のプロジェクトで私の目標を達成するために役立つだろう提供CUBLASの機能に固執する前にCUBLAS開発プロセスを簡素化することができるようCuBLAS.netなどのSDKを、そこに維持されている場合は、また、私は思ったんだけど。ここでも、コメントを事前に感謝します。
解決
CUDAツールキット&SDKのダウンロードに付属の資料のほとんどは、具体的には、一般的にCUDAについてCUBLASではありません。あなただけCUBLASを使用するつもりならCUBLAS_Library_2.3.pdf
ファイルで開始 - あなたはあなた自身のCUDAカーネルを記述する必要はありません。すでにCPU BLASを使用している場合、CUBLASはピックアップするのは困難ではありません。 (あなたがいないのであればそして、それはプログラムに容易になりますから、CUBLAS前に最適化されたCPU 1をしようと検討してください)。
、その後、CUBLASを使用する最も簡単な方法は、cublas.dllに、プラットフォーム呼び出しの呼び出しを経由して、おそらくです。配列がホストしているストレート(CPU)、メモリを保つようにしてください、そして、どのデバイスである(GPU)メモリます。
CUDA&CUBLASは特効薬ではないことに注意してください。パフォーマンスは、多くの要因(PCIeバス全体で特に転送)に依存しており、CPU-BLASはあなたのスピードアップを与えないかもしれない呼び出すために、単にスワップCUBLASを呼び出します。あなたは、パフォーマンスの向上を取得するために、独自のコードをより実質的な変更を加える必要があるかもしれません。あなたが言及したもの他のガイドは、CUDAアーキテクチャとそのボトルネックを理解するのに非常に有用である。
編集:私は、ユーザーコードとカーネルコードの境界について明確ではありませんでした。 CUBLASは、事前に構築され、最適化されたCUDAカーネルのライブラリです。あなたが唯一のBLASの機能が必要な場合は、独自のカーネルを記述する必要はありません。代わりに、ちょうどCUBLAS関数を呼び出します。ときにあなたがそれらを呼び出すと、どのようにPCI Expressのバスを介して転送回数を最小限にするようにあなたは、メモリを使用します。パフォーマンスチューニングは、あなたがCUBLASカーネルを微調整する必要はありませんが、あなたはどのようにして変更する必要がありますP>