Cudaのエラー「0: copyin Memcpy 〜〜」
Cuda Fortranで計算しようと思ってコンパイル、実行したら、
0: copyin Memcpy (dev=0x0x63a2dc, host=0x0x2b7977d11020, size=1024000) FAILED: 30(unknown error)
とか表示されて、全然計算できない。なんだこれは?と思って、とりあえずwrite文で画面表示させて、どこまで計算できてるか確かめると、どうやらデバイスに転送する手前まで。もしやと思って、
$ pgaccelinfo
を実行すると、
CUDA Driver Version: 9000
だけしか返ってこない。この間再起動したのが原因なのか、やはりビデオカードを読み込めてませんでした…
でもなんで、バージョンが9000なんだろ?意味不明。
もう一度、NVIDIAのドライバをインストールしたら無事に動きました。そうそう再起動しないので、これでいいのです。これからはすぐに気が付くように、ビデオカードのオプションで該当が無ければ、計算をストップするようにしたいと思います。
続き。ちょっと調べて、ファイルサイズが0かどうか調べるようにしました。こんな感じ。
#! /bin/bash pgaccelinfo |grep tesla > sss if [ -s sss ]; then AAA=`cat sss` BBB=${AAA:21} echo $BBB pgfortran -fast -Mcuda=8.0 -acc $BBB sub.cuf main.cuf -lcufft time ./a.out else echo "Graphic Card not work!" exit fi