cublasIdamax() の呼び出しを使用しようとしていますが、タイトルのような同様のエラーが発生しました。そこで、cublas のバージョンを確認するための簡単なコードを作成し、関数の署名のバージョン ミスを回避します。しかし、この単純なコードでもコンパイル エラーが発生します。
これが私のコードです:
__global__ void getVersion(cublasHandle_t handle, int *version){
cublasGetVersion(handle,version);
}
int main( int argc, const char* argv[] )
{
int *d_version;
int *h_version;
cublasHandle_t handle;
dim3 dimBlock( 2, 2 );
dim3 dimGrid( 1, 1 );
cublasCreate(&handle);
h_version = (int *)malloc(sizeof(int*));
cudaMalloc((void**)&d_version, sizeof(int*));
getVersion<<<dimGrid, dimBlock>>>(handle, d_version);
cudaMemcpy(h_version,d_version,sizeof(int),cudaMemcpyDeviceToHost);//gpu->cpu
cout << *h_version << endl;
}
3 行目に次のエラーがあります: 外部呼び出しはサポートされていません (cublasGetVersion_v2 へのインライン呼び出しが見つかりません)
私が間違っていることは何ですか?
PS .: このトピックを見ました https://devtalk.nvidia.com/default/topic/500814/external-calls-are-not-supported-found-non-inlined-call-to-meminit-/ しかし、私はまだ問題があります。