Forums - OpenCL support on Adreno 320

52 posts / 0 new
Last post
OpenCL support on Adreno 320
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Fri, 2012-06-29 18:20

Hi. I am wondering if Adreno 320 GPU will support OpenCL on Android? While I know that the hardware is capable of doing OpenCL, I am wondering if:

1. End-user devices like smartphones and tablets that have the Adreno 320 GPU will come with working drivers?

2. Will an SDK (preferably free) be available to third-party developers to use OpenCL on such devices?

 

  • Up0
  • Down0
[email protected] (not verified)
Posted: Thu, 2012-08-30 14:40

Yes, and yes. Look for OpenCL support to start appearing in the Adreno SDK and our other tools by the end of the year.

  • Up0
  • Down0
Sonicadvance1
Join Date: 2 Nov 12
Posts: 51
Posted: Fri, 2012-11-02 15:08

When are device drivers with support for OpenGL ES 3 and OpenCL going to be rolling out to devices that have the Snapdragon S4 pro in them?

  • Up0
  • Down0
Dave Astle
Profile picture
Join Date: 19 Oct 12
Location: San Diego, CA
Posts: 99
Posted: Mon, 2012-11-05 12:13

OpenCL support was added to Adreno Profiler last month, although using it requires driver updates that will take a while to propogate to commercial devices. We will be releasing an update to the SDK either late this week or early next week that will have a few OpenCL samples. They will also require a device that has OpenCL support.

I can't provide any specific information on if or when OpenCL support will be available in commercial devices, since the decision to expose OpenCL to end developers - either at launch or via OTA updates - is made by handset manufacturers and carriers.

  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Thu, 2012-11-08 20:22

Thanks for the update. Looks like Qualcomm's OpenCL implementation work is going fine.

Will OpenCL drivers be available to the APQ8064 MDP tablets?

I have been working on several OpenCL projects, one of which (http://www.raijincl.org) is an open-source autotuning GEMM (matrix multiply) implementation which is already showing very good results on AMD and Nvidia hardware. Hoping to bring all of my projects over to Qualcomm products as soon as I can get a device with OpenCL drivers.

I have pinged LG developer forums to ask specifically about the Nexus 4 support there. If anyone is interested in seeing OpenCL on the Nexus 4, please raise your voice on the LG forums. http://developer.lge.com/community/forums/RetrieveForumList.dev?prodType...

  • Up0
  • Down0
erwincoumans
Join Date: 14 Nov 12
Posts: 5
Posted: Wed, 2012-11-14 16:17

I am also looking forward to OpenCL SDK availability for a Qualcomm platform.

Let's cross the fingers it will be there by the end of this year, as Dave posted previously :)

  • Up0
  • Down0
Sonicadvance1
Join Date: 2 Nov 12
Posts: 51
Posted: Tue, 2012-12-04 13:59

So the 3.1 SDK is out and has OpenCL examples and even a APK in it for trying things out.

Is there any news on when support is coming from anyone? I really want OpenCL and OpenGL ES 3 interop before christmas time

  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Mon, 2013-01-14 13:10

Looks like Qualcomm submitted OpenCL drivers to Khronos for certification. Waiting for OpenCL-enabled drivers to ship on consumer devices :)

  • Up0
  • Down0
shenfei1208
Join Date: 29 Dec 12
Posts: 4
Posted: Fri, 2013-01-18 02:26
pretty good. I can wirte OpenCL project Now. But I thinkthe performace of data transfer between CPU and GPU is terriable . PS: I know the Adreno 320 has 4 SMs. But how many sps in each SM
  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Sat, 2013-01-19 23:22
Is OpenCL support already available on some Qualcomm-based devices?
  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Tue, 2013-01-22 04:29
Surely the Adreno 320 must be using a unified memory system so I don't see why there should be any issues with data transfer. I have not seen the OpenCL capability of the Adreno 320 yet so I could be wrong but I doubt that they have dedicated memory for it. So in principle you should be able to allocate memory on the CPU and use it on the GPU without having to transfer. see cl_mem_use_host_ptr for the buffer definition in OpenCL.
  • Up0
  • Down0
erwincoumans
Join Date: 14 Nov 12
Posts: 5
Posted: Tue, 2013-01-22 08:21
It looks like a XiaoMi2 phone with Adreno 320 phone can run OpenCL on the GPU using the Adreno SDK?https://developer.qualcomm.com/forum/qdevnet-forums/mobile-gaming-graphi...https://developer.qualcomm.com/forum/qdevnet-forums/mobile-gaming-graphi...Does the Adreno SDK OpenCL demo also run on a Nexus 4 phone?
  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Thu, 2013-01-24 21:35
Easy answer. NO. I don't have a Nexus 4 but as far as I am aware Google doesn't provide the opencl library/driver needed for the demo so it shouldn't work. Also Google is a bit allergic to OpenCL and they have repeatedly said that Renderscript is the Compute API for android so don't expect miracle from them. At least if Renderscript was supporting as much as OpenCL then I wouldn't mind but it is far from the case unfortunately... Amazon seems to be playing with that and with some luck companies like Samsung might be willing to add that but until then you are limited to development platform. Laurent.
  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Wed, 2013-02-20 12:50

Wondering if there are any developments on the availability of consumer devices with installed OpenCL drivers yet?

It appears that the Nexus 10 is shipping with undocumented OpenCL drivers. http://forum.beyond3d.com/showthread.php?t=63071

HTC One was announced recently and it is powered by a Snapdragon 600. Wondering where should I ask to confirm whether OpenCL drivers will be available for it?

 

  • Up0
  • Down0
Sonicadvance1
Join Date: 2 Nov 12
Posts: 51
Posted: Wed, 2013-02-20 13:17

I was talking with Rob Clark, who is working on the open source Adreno driver, and he is playing with the OpenCL compiler on his Nexus 4.

Apparently the video driver, libllvm-a3xx.so, has OpenCL things compiled in to it, so you may be able to take advantage of it directly.

 

 
That pastebin shows some OpenCL information output. I'd give it a shot on my Droid DNA later but I'm busy with other things.
  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Wed, 2013-02-20 14:26

That's very interesting! Thanks! Will look into it!

  • Up0
  • Down0
skoti48
Join Date: 14 Nov 12
Posts: 2
Posted: Sun, 2013-02-24 18:14

I found the file "/system/lib/libOpenCL.so" on my Nexus 4 (Android 4.2.2) and tested it:

Quote:

Found 1 platform(s).
platform[0]: profile: EMBEDDED_PROFILE
platform[0]: version: OpenCL 1.1 QUALCOMM build: Nondeterministic AU_full_mako_PARTNER-ANDROID/JB-MR1-DEV_CL2961380_release_AU (CL2961380)
platform[0]: name: QUALCOMM Snapdragon(TM)
platform[0]: vendor: QUALCOMM
platform[0]: extensions:  
platform[0]: Found 2 device(s).
	device[0]: CL_DEVICE_VENDOR: QUALCOMM
	device[0]: CL_DEVICE_NAME: QUALCOMM Adreno(TM)
	device[0]: CL_DEVICE_TYPE:		CL_DEVICE_TYPE_GPU
	device[0]: CL_DEVICE_MAX_COMPUTE_UNITS:	4
	device[0]: CL_DEVICE_MAX_CLOCK_FREQUENCY:	325 MHz
	device[0]: CL_DEVICE_MAX_WORK_GROUP_SIZE:	256 
	device[0]: CL_DEVICE_GLOBAL_MEM_SIZE:	1872 MB

	device[1]: CL_DEVICE_VENDOR: QUALCOMM
	device[1]: CL_DEVICE_NAME: QUALCOMM Krait(TM)
	device[1]: CL_DEVICE_TYPE:		CL_DEVICE_TYPE_CPU
	device[1]: CL_DEVICE_MAX_COMPUTE_UNITS:	4
	device[1]: CL_DEVICE_MAX_CLOCK_FREQUENCY:	1500 MHz
	device[1]: CL_DEVICE_MAX_WORK_GROUP_SIZE:	1 
	device[1]: CL_DEVICE_GLOBAL_MEM_SIZE:	936 MB

  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Wed, 2013-02-27 02:00

I have tried creating a test APK. I do not have a device, so not sure if it will work or not. But if someone with a Nexus 4 could try it, that would be great :)

http://www.rgbench.com/testCL4.apk

  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Wed, 2013-02-27 03:44

Disregard previous APK. Corrected a few bugs. Would be great if someone could test this:

http://www.rgbench.com/testCL5.apk

  • Up0
  • Down0
Stefan3D
Join Date: 16 Sep 10
Posts: 10
Posted: Wed, 2013-02-27 11:00

@ rahul_garg:

screenshot http://goo.gl/7iB50

looks like OpenCL library aint loaded (i checked it's at the aforementioned location)

I/ActivityManager(472): Start proc org.codedivine.testcln10 for activity org.codedivine.testcln10/.MainActivity: pid=6530 uid=10139 gids={50139, 1028}
D/libEGL(6530): loaded /system/lib/egl/libEGL_adreno200.so
D/libEGL(6530): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
D/libEGL(6530): loaded /system/lib/egl/libGLESv2_adreno200.so
I/Adreno200-EGL(6530): <eglInitialize:269>: EGL 1.4 QUALCOMM build: Nondeterministic AU_full_mako_PARTNER-ANDROID/JB-MR1-DEV_CL2961380_release_AU (CL2961380)
I/Adreno200-EGL(6530): Build Date: 12/10/12 Mon
I/Adreno200-EGL(6530): Local Branch:
I/Adreno200-EGL(6530): Remote Branch: m/partner-android/jb-mr1-dev
I/Adreno200-EGL(6530): Local Patches: NONE
I/Adreno200-EGL(6530): Reconstruct Branch: NOTHING
D/OpenGLRenderer(6530): Enabling debug mode 0
I/ActivityManager(472): Displayed org.codedivine.testcln10/.MainActivity: +283ms

 

 

  • Up0
  • Down0
Stefan3D
Join Date: 16 Sep 10
Posts: 10
Posted: Wed, 2013-02-27 11:10

@erwincoumans

I get a blcack screen, but the logcat looks OK

clGetPlatformIDs succeed: platformID: de763ed3 found
Platform: QUALCOMM found
clGetDeviceIDs succeed: deviceID: 71ec3d50 found
Selected device is:
GPU
Device: QUALCOMM Adreno(TM) found
clCreateContext succeed: contextID: 7311fcb0
clCreateCommandQueue succeed: commandqueueID: 72b839a0
clCreateBuffer [0] succeed: bufferID: 72b83a10
clCreateBuffer [1] succeed: bufferID: 729c7ac8
clCreateProgramWithSource succeed: programID: 729c7b70
clBuildProgram succeed
clCreateKernel succeed: kernelID: 73a2bf28
clSetKernelArg succeed
clEnqueueWriteBuffer succeed
clEnqueueNDRangeKernel succeed
Output verification succeed
Hello CL finished successfully
clGetPlatformIDs succeed: platformID: de763ed3 found
Platform: QUALCOMM found
clGetDeviceIDs succeed: deviceID: 71ec3d50 found
Selected device is:
GPU
Device: QUALCOMM Adreno(TM) found
clCreateContext succeed: contextID: 73680198
clCreateCommandQueue succeed: commandqueueID: 72af3708
clCreateBuffer [0] succeed: bufferID: 72b839a0
clCreateBuffer [1] succeed: bufferID: 72b83a48
clCreateProgramWithSource succeed: programID: 73a2bf28
 clBuildProgram succeed
 clCreateKernel succeed: kernelID: 73680130
 clSetKernelArg succeed
 clEnqueueWriteBuffer succeed
 clEnqueueNDRangeKernel succeed
 Output verification succeed
 Hello CL finished successfully
 

  • Up0
  • Down0
Dave Astle
Profile picture
Join Date: 19 Oct 12
Location: San Diego, CA
Posts: 99
Posted: Wed, 2013-02-27 12:18

Unfortunately, the situation with OpenCL support on commercial devices is complicated. Although we provide a driver to our customers, it's up to them and Google to expose the APIs to third party developers. I can't comment on any specific plans they might have in this area, since at this point, it's really up to them.

  • Up0
  • Down0
Stefan3D
Join Date: 16 Sep 10
Posts: 10
Posted: Thu, 2013-02-28 09:13

@ rahul_garg:

hyperlink for screenshot above is messed up, try this instead http://goo.gl/8OdSW

  • Up0
  • Down0
erwincoumans
Join Date: 14 Nov 12
Posts: 5
Posted: Thu, 2013-02-28 12:00

@Dave Astle : it looks like some devices such as Nexus 10 and Nexus 4 already support OpenCL, although as a hidden easter egg in the OpenGL ES driver.

 

@Stefan_MW : so it looks like OpenCL works on both CPU and GPU. Perhaps that demo is supposed to be black, it is just an OpenCL demo and not a graphics demo?

 

@rahul_garg : can you share the source code of that demo, and detailed instructions how you compiled it?

The precompiled binary link is broken, can you re-upload it somewhere else?

 

 

  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Fri, 2013-03-01 23:34

You can find his work here.

http://www.anandtech.com/show/6804/opencl-drivers-discovered-on-nexus-4-...

https://bitbucket.org/codedivine/testcln10/src

 

My Xperia Z is updating now, I will try that on it next. Looking forward testing OpenCL on it if possible.

  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Sat, 2013-03-02 03:22

I can confirm from the source that this is the correct ouput.

I have build the code from the source and tried it on the XPeria Z and it gives me the same output.

I will play with it a bit to output more details next week and share the code with rahul_garg.

 

  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Sat, 2013-03-02 04:11

Well after looking at the source I would say that we cannot confirm that all the API is available yet.

The code is just testing a few functions and the result displayed is a bit strange. I was expecting to see the version (1.1 or 1.2) displayed from what the code is doing but nothing like that appears.

 

  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Sat, 2013-03-02 06:20

Here is what is reported by my XPeria Z (Adreno 320)

Platform Name : QUALCOMM Snapdragon(TM) (23)
Version :  (0)
CL_DEVICE_TYPE : GPU
CL_DEVICE_VENDOR_ID : 3209509963
CL_DEVICE_MAX_COMPUTE_UNITS : 4
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS : 3
CL_DEVICE_MAX_WORK_GROUP_SIZE : 256
CL_DEVICE_MAX_WORK_ITEM_SIZES : 256 256 256
CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR : 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT : 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT : 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG : 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT : 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE : 0
CL_DEVICE_MAX_CLOCK_FREQUENCY : 325
CL_DEVICE_ADDRESS_BITS : 32
CL_DEVICE_MAX_READ_IMAGE_ARGS : 12
CL_DEVICE_MAX_WRITE_IMAGE_ARGS : 4
CL_DEVICE_IMAGE2D_MAX_WIDTH  : 8191
CL_DEVICE_IMAGE2D_MAX_HEIGHT : 8191
CL_DEVICE_IMAGE3D_MAX_WIDTH : 8191
CL_DEVICE_IMAGE3D_MAX_HEIGHT : 8191
CL_DEVICE_IMAGE3D_MAX_DEPTH : 512
CL_DEVICE_IMAGE_SUPPORT : TRUE
CL_DEVICE_MAX_PARAMETER_SIZE : 256
CL_DEVICE_MAX_SAMPLERS : 16
CL_DEVICE_MEM_BASE_ADDR_ALIGN : 512
CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE : 64
CL_DEVICE_SINGLE_FP_CONFIG : 1A
CL_DEVICE_GLOBAL_MEM_CACHE_TYPE : 2
CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE : 16
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE : 8000
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE : 4096
CL_DEVICE_MAX_CONSTANT_ARGS : 8
CL_DEVICE_LOCAL_MEM_TYPE : 1
CL_DEVICE_ERROR_CORRECTION_SUPPORT : FALSE
CL_DEVICE_PROFILING_TIMER_RESOLUTION : 1000
CL_DEVICE_ENDIAN_LITTLE : TRUE
CL_DEVICE_AVAILABLE : TRUE
CL_DEVICE_COMPILER_AVAILABLE : FALSE
CL_DEVICE_EXECUTION_CAPABILITIES : 1
CL_DEVICE_QUEUE_PROPERTIES : 3
CL_DEVICE_NAME : QUALCOMM Adreno(TM)
CL_DEVICE_VENDOR : QUALCOMM
CL_DRIVER_VERSION : build:CL3050818
CL_DEVICE_PROFILE : EMBEDDED_PROFILE
CL_DEVICE_VERSION : OpenCL 1.1 Adreno(TM) 320
CL_DEVICE_EXTENSIONS : cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_qcom_default_relaxed_math cl_qcom_perf_monitor  
CL_DEVICE_PLATFORM : DE763ED3
CL_DEVICE_DOUBLE_FP_CONFIG : 0
CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF : 1
CL_DEVICE_HOST_UNIFIED_MEMORY : TRUE
CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR : 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT : 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_INT : 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG : 0
CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT : 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE : 0
CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF : 1
CL_DEVICE_OPENCL_C_VERSION : OpenCL C 1.1 Adreno(TM) 320
CL_DEVICE_LINKER_AVAILABLE : FALSE
CL_DEVICE_BUILT_IN_KERNELS :  
CL_DEVICE_IMAGE_MAX_BUFFER_SIZE : 0
CL_DEVICE_IMAGE_MAX_ARRAY_SIZE : 0
CL_DEVICE_PARENT_DEVICE : 0
CL_DEVICE_PARTITION_MAX_SUB_DEVICES : 0
CL_DEVICE_PARTITION_PROPERTIES :
CL_DEVICE_PARTITION_AFFINITY_DOMAIN : 0
CL_DEVICE_PARTITION_TYPE : 0
CL_DEVICE_REFERENCE_COUNT : 0
CL_DEVICE_PREFERRED_INTEROP_USER_SYNC : FALSE
CL_DEVICE_TYPE : CPU
CL_DEVICE_VENDOR_ID : 3209509963
CL_DEVICE_MAX_COMPUTE_UNITS : 4
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS : 3
CL_DEVICE_MAX_WORK_GROUP_SIZE : 1
CL_DEVICE_MAX_WORK_ITEM_SIZES : 1 1 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR : 16
CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT : 16
CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT : 16
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG : 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT : 16
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE : 0
CL_DEVICE_MAX_CLOCK_FREQUENCY : 1500
CL_DEVICE_ADDRESS_BITS : 32
CL_DEVICE_MAX_READ_IMAGE_ARGS : 128
CL_DEVICE_MAX_WRITE_IMAGE_ARGS : 8
CL_DEVICE_IMAGE2D_MAX_WIDTH  : 8192
CL_DEVICE_IMAGE2D_MAX_HEIGHT : 8192
CL_DEVICE_IMAGE3D_MAX_WIDTH : 2048
CL_DEVICE_IMAGE3D_MAX_HEIGHT : 2048
CL_DEVICE_IMAGE3D_MAX_DEPTH : 2048
CL_DEVICE_IMAGE_SUPPORT : TRUE
CL_DEVICE_MAX_PARAMETER_SIZE : 256
CL_DEVICE_MAX_SAMPLERS : 16
CL_DEVICE_MEM_BASE_ADDR_ALIGN : 1024
CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE : 128
CL_DEVICE_SINGLE_FP_CONFIG : 3E
CL_DEVICE_GLOBAL_MEM_CACHE_TYPE : 2
CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE : 64
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE : 100000
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE : 65536
CL_DEVICE_MAX_CONSTANT_ARGS : 8
CL_DEVICE_LOCAL_MEM_TYPE : 2
CL_DEVICE_ERROR_CORRECTION_SUPPORT : FALSE
CL_DEVICE_PROFILING_TIMER_RESOLUTION : 0
CL_DEVICE_ENDIAN_LITTLE : TRUE
CL_DEVICE_AVAILABLE : TRUE
CL_DEVICE_COMPILER_AVAILABLE : TRUE
CL_DEVICE_EXECUTION_CAPABILITIES : 3
CL_DEVICE_QUEUE_PROPERTIES : 3
CL_DEVICE_NAME : QUALCOMM Krait(TM)
CL_DEVICE_VENDOR : QUALCOMM
CL_DRIVER_VERSION : build:CL3050818
CL_DEVICE_PROFILE : EMBEDDED_PROFILE
CL_DEVICE_VERSION : OpenCL 1.1 Krait(TM)
CL_DEVICE_EXTENSIONS : cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cles_khr_int64 cl_khr_fp16  
CL_DEVICE_PLATFORM : DE763ED3
CL_DEVICE_DOUBLE_FP_CONFIG : 0
CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF : 16
CL_DEVICE_HOST_UNIFIED_MEMORY : TRUE
CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR : 16
CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT : 8
CL_DEVICE_NATIVE_VECTOR_WIDTH_INT : 4
CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG : 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT : 4
CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE : 0
CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF : 8
CL_DEVICE_OPENCL_C_VERSION : OpenCL C 1.1 Krait(TM)
CL_DEVICE_LINKER_AVAILABLE : FALSE
CL_DEVICE_BUILT_IN_KERNELS :  
CL_DEVICE_IMAGE_MAX_BUFFER_SIZE : 0
CL_DEVICE_IMAGE_MAX_ARRAY_SIZE : 0
CL_DEVICE_PARENT_DEVICE : 0
CL_DEVICE_PARTITION_MAX_SUB_DEVICES : 0
CL_DEVICE_PARTITION_PROPERTIES :
CL_DEVICE_PARTITION_AFFINITY_DOMAIN : 0
CL_DEVICE_PARTITION_TYPE : 0
CL_DEVICE_REFERENCE_COUNT : 0
CL_DEVICE_PREFERRED_INTEROP_USER_SYNC : FALSE
 

Promising certainly.

  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Tue, 2013-03-05 05:35

And for more details here is the list of supported 2D and 3D textures.

I am always amazed by how so few formats can be supported on CPU... Sure I understand that to optimize all formats it is a lot of work but a default implementation for all existing format even if slow should be the minimum for the CPU.

No single or dual channel format supported at all on CPU. No 8bit single or dual channel on GPU either.

This is clearly the point I hate the most in OpenCL. It is supposed to be portable but how can you port something when the Image format are mostly optional and vary so much from one platform to another.

The textures format I was hoping to use are not available on the Adreno 320 or the CPU, what a surprise...

Rant over :)

Well I have also written the full wrapper now but I have not tested any kernel yet.

Laurent.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Platform Name : QUALCOMM Snapdragon(TM) (23)

Version :  (0)
CL_DEVICE_NAME : QUALCOMM Adreno(TM)
CL_DEVICE_VENDOR : QUALCOMM
CL_DEVICE_VERSION : OpenCL 1.1 Adreno(TM) 320
CL_DEVICE_OPENCL_C_VERSION : OpenCL C 1.1 Adreno(TM) 320

Format for 2D Images
Format 0: CL_RGBA, CL_UNORM_INT8
Format 1: CL_RGBA, CL_UNORM_INT16
Format 2: CL_RGBA, CL_SIGNED_INT8
Format 3: CL_RGBA, CL_SIGNED_INT16
Format 4: CL_RGBA, CL_SIGNED_INT32
Format 5: CL_RGBA, CL_UNSIGNED_INT8
Format 6: CL_RGBA, CL_UNSIGNED_INT16
Format 7: CL_RGBA, CL_UNSIGNED_INT32
Format 8: CL_RGBA, CL_HALF_FLOAT
Format 9: CL_RGBA, CL_FLOAT
Format 10: CL_BGRA, CL_UNORM_INT8
Format 11: CL_BGRA, CL_UNORM_INT16
Format 12: CL_BGRA, CL_SIGNED_INT8
Format 13: CL_BGRA, CL_SIGNED_INT16
Format 14: CL_BGRA, CL_SIGNED_INT32
Format 15: CL_BGRA, CL_UNSIGNED_INT8
Format 16: CL_BGRA, CL_UNSIGNED_INT16
Format 17: CL_BGRA, CL_UNSIGNED_INT32
Format 18: CL_BGRA, CL_HALF_FLOAT
Format 19: CL_BGRA, CL_FLOAT
Format 20: CL_R, CL_UNORM_INT16
Format 21: CL_R, CL_SIGNED_INT16
Format 22: CL_R, CL_SIGNED_INT32
Format 23: CL_R, CL_UNSIGNED_INT16
Format 24: CL_R, CL_UNSIGNED_INT32
Format 25: CL_R, CL_HALF_FLOAT
Format 26: CL_R, CL_FLOAT
Format for 3D Images
Format 0: CL_RGBA, CL_UNORM_INT8
Format 1: CL_RGBA, CL_UNORM_INT16
Format 2: CL_RGBA, CL_SIGNED_INT8
Format 3: CL_RGBA, CL_SIGNED_INT16
Format 4: CL_RGBA, CL_SIGNED_INT32
Format 5: CL_RGBA, CL_UNSIGNED_INT8
Format 6: CL_RGBA, CL_UNSIGNED_INT16
Format 7: CL_RGBA, CL_UNSIGNED_INT32
Format 8: CL_RGBA, CL_HALF_FLOAT
Format 9: CL_RGBA, CL_FLOAT
Format 10: CL_BGRA, CL_UNORM_INT8
Format 11: CL_BGRA, CL_UNORM_INT16
Format 12: CL_BGRA, CL_SIGNED_INT8
Format 13: CL_BGRA, CL_SIGNED_INT16
Format 14: CL_BGRA, CL_SIGNED_INT32
Format 15: CL_BGRA, CL_UNSIGNED_INT8
Format 16: CL_BGRA, CL_UNSIGNED_INT16
Format 17: CL_BGRA, CL_UNSIGNED_INT32
Format 18: CL_BGRA, CL_HALF_FLOAT
Format 19: CL_BGRA, CL_FLOAT
Format 20: CL_R, CL_UNORM_INT16
Format 21: CL_R, CL_SIGNED_INT16
Format 22: CL_R, CL_SIGNED_INT32
Format 23: CL_R, CL_UNSIGNED_INT16
Format 24: CL_R, CL_UNSIGNED_INT32
Format 25: CL_R, CL_HALF_FLOAT
Format 26: CL_R, CL_FLOAT

CL_DEVICE_NAME : QUALCOMM Krait(TM)
CL_DEVICE_VENDOR : QUALCOMM
CL_DEVICE_VERSION : OpenCL 1.1 Krait(TM)
CL_DEVICE_OPENCL_C_VERSION : OpenCL C 1.1 Krait(TM)

Format for 2D Images
Format 0: CL_RGBA, CL_UNORM_INT8
Format 1: CL_RGBA, CL_UNORM_INT16
Format 2: CL_RGBA, CL_SIGNED_INT8
Format 3: CL_RGBA, CL_SIGNED_INT16
Format 4: CL_RGBA, CL_SIGNED_INT32
Format 5: CL_RGBA, CL_UNSIGNED_INT8
Format 6: CL_RGBA, CL_UNSIGNED_INT16
Format 7: CL_RGBA, CL_UNSIGNED_INT32
Format 8: CL_RGBA, CL_HALF_FLOAT
Format 9: CL_RGBA, CL_FLOAT
Format 10: CL_BGRA, CL_UNORM_INT8
Format 11: CL_BGRA, CL_UNORM_INT16
Format 12: CL_BGRA, CL_SIGNED_INT8
Format 13: CL_BGRA, CL_SIGNED_INT16
Format 14: CL_BGRA, CL_SIGNED_INT32
Format 15: CL_BGRA, CL_UNSIGNED_INT8
Format 16: CL_BGRA, CL_UNSIGNED_INT16
Format 17: CL_BGRA, CL_UNSIGNED_INT32
Format 18: CL_BGRA, CL_HALF_FLOAT
Format 19: CL_BGRA, CL_FLOAT
Format for 3D Images
Format 0: CL_RGBA, CL_UNORM_INT8
Format 1: CL_RGBA, CL_UNORM_INT16
Format 2: CL_RGBA, CL_SIGNED_INT8
Format 3: CL_RGBA, CL_SIGNED_INT16
Format 4: CL_RGBA, CL_SIGNED_INT32
Format 5: CL_RGBA, CL_UNSIGNED_INT8
Format 6: CL_RGBA, CL_UNSIGNED_INT16
Format 7: CL_RGBA, CL_UNSIGNED_INT32
Format 8: CL_RGBA, CL_HALF_FLOAT
Format 9: CL_RGBA, CL_FLOAT
Format 10: CL_BGRA, CL_UNORM_INT8
Format 11: CL_BGRA, CL_UNORM_INT16
Format 12: CL_BGRA, CL_SIGNED_INT8
Format 13: CL_BGRA, CL_SIGNED_INT16
Format 14: CL_BGRA, CL_SIGNED_INT32
Format 15: CL_BGRA, CL_UNSIGNED_INT8
Format 16: CL_BGRA, CL_UNSIGNED_INT16
Format 17: CL_BGRA, CL_UNSIGNED_INT32
Format 18: CL_BGRA, CL_HALF_FLOAT
Format 19: CL_BGRA, CL_FLOAT
 

  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Tue, 2013-03-05 20:31

The biggest let down here is probably the fact that it is an Embedded Profile too, compared to the Full Profile provided by the Mali T604.

I hope that Qualcomm will strive to support as much as possible of the Full Profile though.

  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Wed, 2013-03-06 09:29

Kishonti (the folks behind CLBenchmark) posted this about the Xperia Z:

https://clbenchmark.com/device-info.jsp?config=14950526&test=CLB10101

 

  • Up0
  • Down0
llessieux
Join Date: 17 Oct 12
Posts: 12
Posted: Wed, 2013-03-06 16:53

Interesting. I guess this is really just the beginning of OpenCL on mobile phone.

Comparison with the T604 is not too bad when taking into account the difference in clock speed but the fluid simulation number is really bad.

I mean 40 times faster that is a lot... I guess anything more than image filters is almost out of the question right now...

It would be interesting to see what the kernel is doing for the fluid simulation to understand what is so slow.

  • Up0
  • Down0
Mahadevan GSS
Join Date: 15 Mar 13
Posts: 4
Posted: Fri, 2013-03-15 02:41

Hi,

Made progress in Nexus 4 phone for using OpenCL in java & also made it to work with aparapi framework , so one can write pure java applications (using GPGPU & OpenCL) on the Nexus 4 devices. IMHO same approach can be used for any other future Android phones with proper OpenCL.so libraries deployed in the phones (without HW/SW vendor's SDKs).

Please find code at google-code.

 

Thanks & regards,

mahadevan

  • Up0
  • Down0
Stefan3D
Join Date: 16 Sep 10
Posts: 10
Posted: Fri, 2013-03-15 09:11

@ mahadevan

your precompiled APK works fine

i noticed one issue:

I/CLInfo(3007): Error:CL_DRIVER_VERSION:-30
 

logcat here http://goo.gl/mN5Pg

  • Up0
  • Down0
Mahadevan GSS
Join Date: 15 Mar 13
Posts: 4
Posted: Fri, 2013-03-15 09:45

Stefan,

Thanks you very much for trying out the clinfo on android on Nexus 4.

I too found out same -30 error for OpenCL Driver Version -- it is documented at my blog

It is error I got from OpenCL.so (which is supplied by QualComm).

Thanks & regards,

mahadevan

 

  • Up0
  • Down0
chen20062308
Join Date: 21 Apr 13
Posts: 10
Posted: Wed, 2013-04-24 19:42

Hi, I use hello_cl_sdk_example project in adreno sdk to build opencl code. But It comes out errors:

 

android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find -lOpenCL
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi-v7a/libhello_cl_gpu.so] Error 1
 
It seems we also need a library like libOpenCL.a. Which is the library? I find no one in adreno sdk.
  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Mon, 2013-05-13 14:59

Hi everyone. I found this upcoming developer board for $149 : http://www.inforcecomputing.com/product/moreinfo/ifc6410.html based upon the APQ8064 (quad-core Krait with Adreno 320). The board supports Android 4.1.2 and vendors have confirmed that they will provide OpenCL drivers. Just thought people might be interested :)

 

  • Up0
  • Down0
Jack Hsieh
Join Date: 22 Apr 13
Posts: 3
Posted: Tue, 2013-05-21 02:32

I was able to run OpenCL on my HTC Butterfly. It even does better than the Nexus 4 I have, as the Nexus 4 tends to crash after a few interations. It seems that not many people mentioned this phone anywhere. 

 

  • Up0
  • Down0
Serge
Join Date: 2 Jun 13
Posts: 2
Posted: Sun, 2013-06-02 01:11

What's the status of HTC One? Does it come with preloaded OpenCL libs? Have anyone tried to run OpenCL on it?

  • Up0
  • Down0
Sonicadvance1
Join Date: 2 Nov 12
Posts: 51
Posted: Sun, 2013-06-02 05:02

The HTC One has the same drivers as the HTC Droid DNA, so it has the OpenCL library already.

  • Up0
  • Down0
mohit_deopujari
Join Date: 3 Jun 13
Posts: 1
Posted: Mon, 2013-06-24 18:08

Bump!

I have same problem as chen20062308.

ld.exe : cannot find -lOpenCL

Hey Mr. Chen. How did you solve this issue?

 

  • Up0
  • Down0
aheirich
Join Date: 23 Jun 13
Posts: 1
Posted: Thu, 2013-06-27 13:40

 

Can anyone summarize the OpenCL tools supported by the Adreno SDK, and describe where they run and how?

For example, the profiler runs the GUI under Windows only (what flavors?) but the executable runs on the SnapDragon.

There is an emulator for Windows.  There is a plugin for Eclipse.  Is this for Eclipse running under Ubuntu?  On an Android system?  What does the plugin enable?  Can you interactively debug a kernel running on the GPU and set breakpoints?   Ditto on the CPU?  Does printf() work from inside a kernel?

Where does the offline compiler run?  On Android?  On Windows? can it run under a Linux distro like Ubuntu?

Any idea about what source code compatability issues arise with respect to other OpenCL implementations, particularly Mac?

 

thanks

  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Mon, 2013-07-29 11:40

I think Android 4.3 update for Nexus 10 is removing proper OpenCL support. Kishonti report that kernels no longer compile under 4.3. I think Google likely forced ARM to do so, given that they control the firmware for nexus devices. Can anyone confirm the status of Nexus 4. Google's behavior of actively opposing an open standard is really disappointing.

Can anyone confirm which Qualcomm device comes with official OpenCL drivers with support? I think Qualcomm's MDP (mobile development platform) devices likely support OpenCL "officially".

 

  • Up0
  • Down0
Mahadevan GSS
Join Date: 15 Mar 13
Posts: 4
Posted: Mon, 2013-07-29 12:37

Yes. I have observed that when I manually updated my Nexus-4 with Android 4.3, no /system/lib/libOpenCL.so is available. I thought that when they do OTA update they (Google/LG) will include the OpenCL support. More in my blog about Nexus-4 manual update.

If this is the case, then it would problematic for me -- I bought Nexus-4 as it has OpenCL and BT 4.0.

Let me wait for OTA update and report back.

  • Up0
  • Down0
Stefan3D
Join Date: 16 Sep 10
Posts: 10
Posted: Mon, 2013-07-29 13:22

I grabbed libOpenCL.so from April's driver pack on this site and pushed it into JB4.3 system/lib

Works with CLInfo

SDK sample fails with

W/Adreno200-GSL(7104): <ioctl_kgsl_sharedmem_free:1486>: kgsl_sharedmem_free: munmap failed: errno 22 Invalid argument
 

On the other hand i noticed 3 other files in system/lib/ that smell like OpenCL

libclcore_debug.bc
libclcore_neon.bc
libclcore.bc

Any info on those?

 

  • Up0
  • Down0
Mahadevan GSS
Join Date: 15 Mar 13
Posts: 4
Posted: Mon, 2013-07-29 14:14

Hi Stefan,

I am not aware of those files in Android 4.3. If they are not .so file, most probably we might not be able to load via dynamic-loading. May be we can force them. But I am not sure.

 

I had a backup file of working libOpenCL.so, I could not copy as I have not rooted my phone (deliberatly). I will keep informed here, if I have any progress on this. One way I can see to use my backed-so-file is to give explicit path for loading -- But  I am not sure whether this works with 4.3 (as some of the compiler version/etc changes), it may not work.

  • Up0
  • Down0
rahulgarg44
Join Date: 27 Aug 11
Posts: 19
Posted: Tue, 2013-07-30 16:35

AFAIK libclcore.bc is not for OpenCL, it is part of the Renderscript runtime.

See for example: https://events.linuxfoundation.org/slides/2011/lfcs/lfcs2011_llvm_liao.pdf

 

  • Up0
  • Down0
Stefan3D
Join Date: 16 Sep 10
Posts: 10
Posted: Tue, 2013-08-06 12:19

Thanks for the heads-up

Today i tried to compile the samples from new Adreno SDK 3.3.3
I executed build_common.bat
Then i tried e.g "install_android DeviceQuery" which gives me this error

Android NDK: WARNING:C:/AdrenoSDK/Development/Samples/OpenCL/DeviceQuery/Android//jni/Android.mk:DeviceQuery: non-system libraries in linker flags: -lOpenCL    
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES    
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the    
Android NDK:     current module    
Clean: DeviceQuery [armeabi-v7a]
Clean: android_native_app_glue [armeabi-v7a]
Clean: gnustl_shared [armeabi-v7a]
Clean: gnustl_static [armeabi-v7a]

What am i doing wrong?

I get the GUI, but then it crashes on hitting a button
screenshot http://goo.gl/As35ir

  • Up0
  • Down0
Serge
Join Date: 2 Jun 13
Posts: 2
Posted: Fri, 2013-09-06 00:16

I've run OpenCL Device Test app on HTC One 32Gb (aNDROID 4.2.2) and it report no OpenCL found. It seems OpenCL driver is not preinstalled.

  • Up0
  • Down0
Vincent StreamC...
Join Date: 4 Jan 13
Location: Haarlem
Posts: 3
Posted: Fri, 2013-09-13 05:08

Maybe interesting. Oliver Reiche put this comment on http://www.youtube.com/all_comments?v=uQ5NumRfHN4 :

Its LLVM bytecode containing the RenderScript API implementation.

llvm-dis system/lib/libclcore.bc -o dump; cat dump
 

  • Up0
  • Down0
Monkey
Join Date: 10 Oct 13
Posts: 11
Posted: Thu, 2013-10-10 08:31

Hey,

I am also interested to know which commercial smartphone having Adreno 320 supports OpenCL.
If they dont ship OpenCL -- Can I atleast load OpenCL libraries (say hopefully from Adreno SDK) onto the phone and work?

Thanks for any help,

Best regards,

Monkey

  • Up0
  • Down0

Pages

Showing 1 - 50 out of 51
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.