私はcudaに非常に慣れておらず、ほんの数週間前に並列プログラミングとcudaについて読み始めました。cudaツールキットをインストールした後、sdkサンプル(ツールキットのインストールに付属)を閲覧していて、それらのいくつかを試してみたかったのです。私はmatrixMul
0_Simpleフォルダーから始めました。このプログラムは正常に実行されます(私はVisual Studio 2010を使用しています)。ここで、行列のサイズを変更して、より大きな行列(たとえば、960X960または1024x1024)を試してみたいと思います。この場合、何かがクラッシュします(画面が真っ暗になり、メッセージ:ディスプレイドライバが応答を停止して回復しました)。
私はコードのこの2行を(main関数から)変更しています:
dim3 dimsA(8*4*block_size, 8*4*block_size, 1);
dim3 dimsB(8*4*block_size, 8*4*block_size, 1);
彼らがいた前に:
dim3 dimsA(5*2*block_size, 5*2*block_size, 1);
dim3 dimsB(5*2*block_size, 5*2*block_size, 1);
誰かが私が間違っていることを私に指摘できますか?この例では、正しく機能するように他の何かを変更する必要があります。どうも!
編集:あなたの一部が提案したように、私はタイムアウト値を変更しました(0はどういうわけか私には機能しませんでした、私はタイムアウトを60に設定しました)、それで私のドライバーはクラッシュしません、しかし私は次のようなエラーの膨大なリストを受け取ります:... .....。
Error! Matrix[409598]=6.40005159, ref=6.39999986 error term is > 1e-5
Error! Matrix[409599]=6.40005159, ref=6.39999986 error term is > 1e-5
これはメモリの割り当てと関係がありますか?そこで変更を加える必要がありますか?