I installed my new redaon hd4870 1Gb and tested the sdk exemple, ans they seems to work fine.
I then installed acml-gpu and gcc 4.1.2.
my code is as follow :
fA = (float*)malloc(i*i*sizeof(float));
fB = (float*)malloc(i*i*sizeof(float));
fC = (float*)malloc(i*i*sizeof(float));
->FILL fa and fb
sgemm('N', 'N', i, i, i, 1.0, fA, i, fB, i, 0.0, fC, i);
I compile this :
gcc run.cxx -I/opt/ati/acmlg1.0/gfortran64/include -L/opt/ati/acmlg1.0/gfortran64/lib -lacml -lacml_mv -L. -lgfortran -lCALBLAS -laticalcl -laticalrt -lm -lg2c
The execution gives the following :
ERROR: unable to allocate minimum uncached system (GART) memory
Total Available Last Request
Local: 1024 MB 97 MB 838860800 ( 800 MB) ok
Remote (NC): 0 MB 0 MB 8519680 ( 8 MB) FAILED
Remote (C): 2044 MB 1626 MB 419430400 ( 400 MB) ok
ERROR: Failed to initialize GPUs
ERROR: Failed to initialize GPU(s) for SGEMM
Does anyone have any idea/suggestion ?
First of all let me apologize that nobody responded to your posting before now. (There's a separate forum for ACML questions, and I like to think you'd have gotten a prompt answer if you had posted there, but that's really no excuse.)
In order for ACML-GPU, or any application to get data to- and from the GPU, it has to allocate memory buffers that can be shared between the CPU and the PCIe bus. That's what's failing. The error line shows that there is no memory whatsoever available in the non-cached system sharable memory poll.
This is probably a bug or incompatibility in the device driver, which manages that memory pool. I suspect that you are using an older version of the Linux Catalyst driver. If upgrading the driver doesn't solve the issue, please post back and I'll try to help.