I am having issues with running an OpenCL program on an E8860 and would like to ask for advice.
I am trying to get an OpenCL program to run on an E8860 on Linux, preferrably Centos 7 I have tried the dedicated 8860 drivers but these are not available for Centos, so Ubuntu would work. I have also tried the amd-gpu-pro drivers and the ADM APP SDK 3.0 but neither of these worked. I could compile but each time the program would run on the CPU and not the GPU. I know the 8860 only supports OpenCL 1.2 but I could not find out how to use older versions of OpenCL libraries.
The program runs on an Nvidia GPU, so I know once the drivers and libraries are set up properly, the program should work correctly.
It should be noted that the GPU is used for computation only and I am not using video from it, and have an embedded graphics chip for video (SM750).
Any advice is greatly appreciated.
Hi rt0218,
Welcome to AMD DevGurus community.
I've whitelisted you and moved this post to the OpenCL forum.
Thanks.
Looks like amdgpu-pro does not support this product (please see the section "AMD Radeon™ Product Family Compatibility" in the release note) .
You need to install the driver from here amd-embedded-e-series/e8860 which supports Ubuntu only. Then install AMD APP SDK to setup the OpenCL development environment. Once the installation is done, please use the "clinfo" command to see if the OpenCL setup is ready for work.
Just FYI, AMD APP SDK does not work with amdgpu-pro. Also, it looks like E8860 is based on 1st generation GCN (GCN1) and as I know, GCN1 products are not supported as OpenCL device with amdgpu-pro.
Thanks.
Ok, I had to reinstall Ubuntu but after installing the dedicated driver and the APP SDK, I see both the GPU and CPU in clinfo, but it will tell me everything but the board name for the GPU, but it may not be a problem.
Unfortunately compiling with the following command still has it running on the CPU instead of the GPU: gcc -I/opt/AMDAPPSDK-3.0/include -L/opt/AMDAPPSDK-3.0/lib/x86_64 main.c -lOpenCL
Please attach the clinfo output and main.c file.
Thanks.
The code looks good to me and it uses gpu as OpenCL device to execute the kernel. Did you see the print "Using GPU" and get the correct result?
By the way, why do you think that "it's running on the CPU instead of the GPU"?
Thanks.
You can also try the OpenCL samples from AMD APP SDK which support command-line option to choose the target device (i.e gpu or cpu).
Interesting. I do not see "Using GPU" when running on the 8860, but was there when using two different Nvidia GPUs.
I am guessing I compiled correctly if you didn't say anything about that?
I see when running top that the program is using 100% of a CPU core, and running radeontop shows no activity on the GPU. Is there another command line monitoring program I could use to see GPU usage and temperature?
Ok, I will look into those. Thank you
You may add some debugging code like checking return status of the OpenCL APIs to see if there is any error while running the program.
Another point, please check the program output. If there is any error, it should print wrong result.
Thanks.
I am aware that making the loop size too big will make the computation always be 0 instead of the loop size, but that is not something I really care about, since the goal of this program is to have the GPU doing something, even if it is adding numbers incorrectly. So if this program is using the GPU, then that is good enough for me.
Is radeontop the only command line tool for monitoring GPU usage?
If you are observing the computation as 0 instead of the loop size, then I don't think the kernel is running correctly. I would suggest you to check the return status of the OpenCL APIs.
Thanks.