2つのファイル(linoteste.imaとsysmattest.dat)を開こうとしていますが、どちらにも1つのマトリックスが含まれています。ファイルを正常に開いた後、それらを印刷すると、ゼロを含む行列しか取得できず、何が間違っているのかわかりません。これはCUDA関連の問題ではなく、Cの問題です。ファイルを開いて、CUDAで行列の乗算を実行しているだけです。私のコードは次のとおりです(一度に1つの要素を読み取るために、freadをwhile cicleに置き換えようとしましたが、機能しません):
float*matlino=(float*)malloc(sizeof(float)*100*100);
float*matsys=(float*)malloc(sizeof(float)*10000*10000);
//Open linogram
FILE * flino, *fmat;
flino = fopen ("linoteste.ima","r"); //also tried with "rb" instead of "r"
if (flino!=NULL)
{
fread (matlino,sizeof(float),100*100,flino);
fclose (flino);
puts("Linograma aberto com sucesso");
}
else
puts("impossivel abrir linograma");
printMat(matlino,10,10);
//Open system matrix
fmat = fopen("sysmattest.dat","r");
if (fmat!=NULL)
{
fread (matsys,sizeof(float),10000*10000,fmat);
fclose (fmat);
puts("Matriz sistema aberta com sucesso");
}
else
puts("impossivel abrir matriz sistema");
前もって感謝します!