PCIe-memory size limit? (using CAL APIs)

Discussion created by njh1983 on Mar 24, 2011
Latest reply on Apr 7, 2011 by njh1983



I am trying to allocate a huge amount of data using CAL API calResAllocRemote2D(). According to the CAL programming guide, this data should be assigned to PCI-e memory as a part of host memory. So I guess total PCI-e memory space for GPUs should be greater than or equal to total GPUs’ local memory space (in my case, it will be roughly 2GB for each GPU; total 4GB).

Anyway, total CPU uncached space size(PCIe memory) can be easily obtained by calling calDeviceGetAttribs() and my result is 1786MB. But when I allocate 1300MB or so CAL API returns an error. (1300MB for 1 device or 2048MB for 2 devices)

For example,


calResAllocRemote2D(&resRemote[0], &device[0], 1, 8192, 8192, CAL_FORMAT_INT_4, 0);

calResAllocRemote2D(&resRemote[1], &device[1], 1, 8192, 8192, CAL_FORMAT_INT_4, 0); // Error!


In short, my question is:

  • Does “Uncached remote GPU memory space; uncachedRemoteRAM” mean maximum space for 1 GPU or for total GPUs installed?
  • Why it returns an error when I allocate 1300MB for 1 device (or 2048MB for 2 devices)?


Thanks in advance.


These are the details of  my system:

  • Host: Super Micro GPU computing server (Intel Xeon 5600),  32GB DRAM
  • GPU: Radeon HD 6970 x 2
  • OS: Red Hat Enterprise Linux 5.5
  • Driver: Catalyst 11.2
  • SDK: v2.3-lnx64