0 Replies Latest reply on Sep 15, 2017 10:50 PM by rwistort

    Cannot do directGMA on FirePro W4300

    rwistort

      I cannot make directGMA work on my FirePro W4300.

      (I've reached out on the FirePro Development forum, but I got no replies.)

       

      I need to reduce the transfer latency between my FPGA-based frame grabber and my GPU, and neither my frame grabber's vendor's sample code nor the directGMA starter code on github works.

       

      In the github sample, the api call clGetDeviceInfo(,CL_DEVICE_EXTENSIONS,,,) returns a list of extensions, and the error message is:

      cl_amd_bus_addressable_memory is not a supported extension, please turn it on manually on your system either using CCC or aticonfig.

      How do I turn it on?

       

      When I google this problem, I am reminded to do:

      amdconfig –set-pcs-val=MCIL,DMAOGLExtensionApertureMB,96           and

      amdconfig –set-pcs-u32=KERNEL,InitialPhysicalUswcUsageSize,96

      I've done this, re-booted, and verified, using get-pcs-key, that these values persist after the boot.

      Also, using amdcccle, I did not see any fields in the gui which looked like they would affect directGMA.

       

      My system is:

      Ubuntu 14.04.4 with a 4.2.0-generic kernel on a Dell/Xeon workstation

      AMDAPPSDK-3.0

      fglrx version 15.302

      lspci | grep -i vga recognizes the gpu:

      01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Bonaire [FirePro W5100]

      OpenCL seems to be properly installed, because my openCV code runs a lot faster when openCL is enabled.

      clinfo output is attached.

       

      In my frame grabber vendor's sample code, the failing api call is:

      clrc = (*(sMakeBuffersResidentAMD))(sCommandQueue,sNframes,sBufs,CL_TRUE,sDMAaddrs,0,NULL,NULL);

      where sMakeBuffersResidentAMD is the extension returned by:

      clGetExtensionFunctionAddressForPlatform(oclPlatforms[ndx],"clEnqueueMakeBuffersResidentAMD");

      The return code is -5 (CL_OUT_OF_RESOURCES), and I've only requested 8Meg of bus-addressable buffer.

       

      My frame grabber's tech support team says that their code works fine on a FirePro W8100 and, while I note that the W8100 supports SDI-link and my W4300 does not, I've been told, in a separate devgurus thread, that this should not matter.

       

      I have had the same failure using AMDGPU-PRO on Ubuntu 16.04.3.

       

      DirectGMA is supposed to work on W4300.

      Can anyone help?

       

      Thanks,

      Reid Wistort