1

matlabからカスタムメイドの.cuファイルにmxArrayを読み込もうとしています。操作するスパース行列が2つあります。演算を実行してmatlabに戻すことができるように、AとBなどのカスプスパース行列内(またはcuSPARSE行列内)でそれらを読み取るにはどうすればよいですか。私が思いついたアイデアの1つは、mxArrayを.mtxファイルに書き込んでから、そこから読み取ることです。しかし、繰り返しますが、代替手段はありますか?

さらに、ウェブサイトに掲載されている例を使って、さまざまなCUSPメカニズムを理解しようとしていますが、例をコンパイルして実行しようとすると、次のエラーが発生します。

terminate called after throwing an instance of
'thrust::system::detail::bad_alloc'
  what():  N6thrust6system6detail9bad_allocE: CUDA driver version is
insufficient for CUDA runtime version
Abort

これが私が使用しているマシンにインストールされているものです。

CUDA   v4.2
Thrust v1.6
Cusp   v0.3

自分のマシンでLinuxx86_64でGTX480を使用しています。不思議なことに、デバイスクエリのコードもこの出力を返しています。

CUDA Device Query...
There are 0 CUDA devices.

Press any key to exit...

ドライバーとSDKを数日更新しました。何が悪いのかわからない。

私は1つの質問で多くのことを尋ねていますが、かなり前からこの問題に直面しており、ドライバーのアップグレードとダウングレードは解決されていないようです。

乾杯

4

1 に答える 1

2

このエラーは、「CUDAドライバーのバージョンがCUDAランタイムバージョンには不十分です」という最も明白なものです。あなたは間違いなくあなたのドライバーを更新する必要があります。

私はJacketのスパース線形代数ライブラリを介してCUSPARSE/CUSPを使用しています。良かったのですが、CUSPARSE/CUSPで利用できるスパース機能がもっとあればいいのにと思います。ジャケットはまもなくCULASparseに組み込まれると聞いているので、それは素晴らしいことです。

于 2012-06-05T19:24:16.163 に答える