clpeak on i.MX6Q

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

clpeak on i.MX6Q

825 Views
zohanlin
Contributor IV

Hello,

we want to test i.MX6Q GPU, we followed the document: i.MX Graphics User’s Guide and used clpeak to test it.

The following is the test log:

root@imx6qsabresd:/usr# ./clpeak

Platform: Vivante OpenCL Platform
Device: Vivante OpenCL Device GC2000.5108.0000
Driver version : OpenCL 1.1 V6.2.4.p1.150331 (Linux ARM)
Compute units : 4
Clock frequency : 500 MHz

Global memory bandwidth (GBPS)
float : 0.54
float2 : 0.93
float4 : 1.90
float8 : 0.98
float16 : 0.49

Single-precision compute (GFLOPS)
clCreateKernel (-5)
Tests skipped

No half precision support! Skipped

No double precision support! Skipped

Integer compute (GIOPS)
clCreateKernel (-5)
Tests skipped

Transfer bandwidth (GBPS)
enqueueWriteBuffer : 0.71
enqueueReadBuffer : 0.16
enqueueMapBuffer(for read) : 40.02
memcpy from mapped ptr : 0.17
enqueueUnmap(after write) : 19.70
memcpy to mapped ptr : 0.70

Kernel launch latency : 200.27 us

And we found some error in two items: 

(1)Single-precision compute (GIOPS)

(2)Integer compute (GIOPS)

clCreateKernel (-5) means CL_OUT_OF_RESOURCES.

Could anybody tell what happened?

Our OpenCL version and info in GPU are as below :

root@imx6qsabresd:/usr# opencv_version --opencl
4.0.1
OpenCL Platforms:
Vivante OpenCL Platform
iGPU: Vivante OpenCL Device GC2000.5108.0000 (OpenCL 1.1 )
Current OpenCL device:
Type = iGPU
Name = Vivante OpenCL Device GC2000.5108.0000
Version = OpenCL 1.1
Driver version = OpenCL 1.1 V6.2.4.p1.150331
Address bits = 32
Compute units = 4
Max work group size = 1024
Local memory size = 1 KB
Max memory allocation size = 32 MB
Double support = No
Host unified memory = Yes
Device extensions:
cl_khr_byte_addressable_store
cl_khr_gl_sharing
Has AMD Blas = No
Has AMD Fft = No
Preferred vector width char = 4
Preferred vector width short = 4
Preferred vector width int = 4
Preferred vector width long = 0
Preferred vector width float = 4
Preferred vector width double = 0

Labels (3)
Tags (3)
0 Kudos
2 Replies

737 Views
igorpadykov
NXP Employee
NXP Employee

Hi zohan

description of CL_OUT_OF_RESOURCES error can be found in

OpenCL on i.MX6 – Laanwj's blog – Randomness 

also below is good overview of i.mx6 opencl

OpenCL Hello World 


Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

737 Views
zohanlin
Contributor IV

Hi igor,

Thanks for your info.

I found something about i.MX6Q as below

Preferred vector width char = 4
Preferred vector width short = 4
Preferred vector width int = 4
Preferred vector width long = 0
Preferred vector width float = 4
Preferred vector width double = 0

Then I checked the clpeak source code, it tests from vector width '1' to '16',

In Single-precision compute(float) test, it could load the vector width  '1', '4', and '8' program in Kernel(), but it failed to load vector width  '16' program and returned clCreateKernel (-5).

In Integer compute(int) test,  it could load the vector width  '1' and '4' program in Kernel(), but it failed to load vector width '8' and '16' program and returned clCreateKernel (-5).

So the root cause is "Preferred vector width", right?

Thanks,

zohan

0 Kudos