Открытие файлов в CUDA C - PullRequest
       21

Открытие файлов в CUDA C

1 голос
/ 17 марта 2011

Я пытаюсь открыть два файла (linoteste.ima и sysmattest.dat), они оба содержат одну матрицу. После успешного открытия файлов, когда я их печатаю, я получаю только матрицы, содержащие нули, и я не знаю, что я делаю неправильно. Это не проблема, связанная с CUDA, а проблема C, просто я открываю файлы для умножения матриц с помощью CUDA. Мой код выглядит следующим образом (я пытался заменить fread на какое-то время, чтобы читать по одному элементу за раз, но это не работает):

    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");

Заранее спасибо!

1 Ответ

1 голос
/ 21 марта 2012

Вы пробовали fscanf ()?

Что-то вроде:

if(flino!=NULL)
{
    int i;
    for(i = 0; i < 10000; i++) fscanf(flino, "%f", &malino[i]);
    fclose(flino);
}
...