I have been opencl on the Odroid-XU3 board, this has an ARM big.LITTLE core and a Mali-T628.
I am trying to run the Rodinina Benchmarking Suite (Found here) on each core and the GPU separately. I have gotten the code working on each CPU using POCL. Now I moved over to running the benchmarks on the GPU and have ran into some problems.
I downloaded the Mali SDK onto the board and changed the CC and AR variables to point to the correct places in platform.mk - This means the samples will actually compile now.
The problem comes when I run the sample, sobel. Looking at the energy monitor application I can see a spike in the CPU wattage whenever I run sobel, and there is no change in the GPU. I have also tried to run the SDK on a board without POCL installed ( I thought this may have been causing the problem), when I do this sobel does not run, I get the error:
OpenCL error:Unknown error
Retrieving OpenCL platforms failed. common.cpp:233
Failed to create OpenCL context. sobel.cpp
And running clinfo reveals there are no OpenCL platforms to be found on this board. I have installed the drivers from here into /usr/lib
I also have the ocl icd installed.
Hi,
Did you compile and installed the corresponding kernel driver sources too ? Open Source Mali Midgard GPU Kernel Drivers - Mali Developer Center
Do you have a "/dev/mali0" device on your platform ? Looks like the driver fails to find any platform at all on your system.
I have just downloaded the correct kernel driver source from the link you gave me but cannot see how to compile and install the files I have downloaded.
I do have /dev/mali0 on my platform.
Did you check if the original libmali.so on your board was compiled with CL enabled ?
You can check by running:
strings libmali.so | grep clEnqueue
If you don't have CL enabled or want to use more recent drivers from the malideveloper website, then you will need to build the mali kernel module against the kernel sources of the kernel running on your board, you have a guide on the odroid wiki to build the kernel: en:xu3_building_kernel [Odroid Wiki]
There was no libmali.so originally on the board. The only one which is on there is the one I pulled from the drivers folder I downloaded, and placed into /usr/lib/
The one I placed there is CL enabled though.
I am assuming this will mean I need to rebuild the kernel then?
I'm confused, where does the image you've got on your board come from ?
If it comes from Hardkernel / Odroid there should already be the Mali drivers installed on it: ODROID-XU3 Ubuntu 14.04.1 OS Image 20140814
I'm not entirely sure, I got the second board from a colleague when I found the clash between the Mail SDK and POCL. I will put the new image on it, as that seems to be the root of my problem.
Putting the new image on solved my problem, I'm now able to run code on the GPU like I expect.
Hi grailor, do you know which image you used? I've just start playing with the Juno Board but Had the same problem with OpenCL.
```
root@genericarmv8:~/work/Mali_OpenCL_SDK_v1.1.0/samples/hello_world_opencl# export LD_LIBRARY_PATH=/home/root/work/Mali_OpenCL_SDK_v1.1.0/lib/
root@genericarmv8:~/work/Mali_OpenCL_SDK_v1.1.0/samples/hello_world_opencl# ./hello_world_opencl OpenCL error: Unknown error
Failed to create an OpenCL context. hello_world_opencl.cpp:39