2016-11-05 3 views
3

This link は、cuBLAS-XTルーチンがアウトオブコアオペレーションを提供することを示しています。オペランドデータのサイズは、GPUのオンボードメモリサイズではなくシステムメモリサイズによって制限されます。これは、入力データをCPUメモリに格納し、出力のサイズがGPUのメモリサイズより大きい限り、cuBLAS-XT関数を使用できることを意味します。cuBLAS-XTを大きな入力サイズに使用する

this link「非常に大きな問題が発生した場合、cublasXt APIは計算の一部をホストCPUにオフロードする可能性があります」と「Currenty、ルーチンcublasXtgemm()のみがこの機能をサポートしています誰かが違いを理解するために私を助けている場合。これは、入力サイズは、CPUのメモリサイズよりも大きいことを問題の場合ですか?

私は、これら2つの違いを得ることはありません!私は感謝しています。

+0

http://stackoverflow.com/a/14558198/681865 – talonmies

答えて

4

の目的cublasXtは、複数のGPUで自動的に演算を実行できるようにするため、行列乗算などのサポートされている演算を複数のGPUで実行することができます。

cublasXtgemmルーチンは2つの以上のGPUを横切っ乗算行列を並列に加えて、それはまた、追加の計算エンジンとしてホストCPUを使用して2つの以上のGPU を横切ってそれを並列PLUSできること、特別能力を有しています。

行列乗算の問題は、前述のように容易に分解可能です。here単なるGPUだけで作業のすべての "チャンク"を実行すると、cublasXtgemm(GPUを使用する)の通常の機能です。 GPUで作業のチャンクを1つだけ残して実行し、CPU上で作業のチャンクの1つを実行すると、それは特別なです。

+0

答えをいただきありがとうございます。私はただ1つのGPUで作業しています。最初のリンクのサイズに基づいてcublasXTを使用することに興味があります。オペランドデータは、GPUオンボードメモリサイズではなく、システムメモリサイズによってのみ制限されます」。だから私の質問は、cublasXtSsyrk(入力サイズがnxkで出力サイズがnxnの場合)、出力サイズ(nxn)がGPUメモリサイズより大きい場合、cublasXtSsyrkを使用できますか? – starrr

+1

私はあなたができるはずだと信じています。 [ここ](http://docs.nvidia.com/cuda/cublas/index.html#using-the-cublasXt-api)のように:「cuBLASのcublasXt APIは、マルチGPU対応のホストインタフェースを公開しています。このAPIアプリケーションでは、必要な行列をホストメモリ空間に割り当てるだけです。**行列のサイズは、ホストメモリに収まる限り、制限はありません。** " –

関連する問題