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
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
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:
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?