Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

Journeyman III

acml sgemm error

Hi All,


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 :

#include "acml.h"
#include <stdlib.h>


    float *fA,*fB,*fC;

    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 ?



1 Reply

acml sgemm error

Hi Joferl,

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.