cudaMalloc/cudaMemcpy を使用してデバイスに行列とベクトルを割り当てるアプリケーションを作成しました。行列は列優先で定義されます。cublas ライブラリ (cublasSgemv) の関数を使用して、これらを乗算したいと思います。cublas API 関数を使用するには、cudaMalloc を使用して行列とベクトルの複製を割り当て、cublasSetMatrix/cublasSetVector を使用してホストからそれらを初期化する必要があるようです。明らかに、このメモリをすべて複製するとコストがかかります。
私の理解では、cublasSetMatrix/cublasSetVector 関数は cudaMemCpy の単なるラッパーです。cudaMemCpy で初期化された配列へのポインターを cublas API 関数に渡すことができるかどうか疑問に思っていました。または、API が認識できるように配列を軽くラップして、すべてのメモリの重複を回避することは可能ですか?