Vivante provided the OpenCL driver of the GPU GC2000 in the FreeScale's four core
application processor I.MX6Q. From the returned information of the OpenCL driver, let's figure out the GC2000's structure, what type of data it can handle, and how powerful it is.
1. Important figures
Most important information we got from the output file is:
CL_PLATFORM_VERSION: OpenCL 1.1
Number of Available Computing Devices: 1
Computing Device Parameters: CL_DEVICE_NAME: Vivante OpenCL Device
CL_DEVICE_VENDOR: Vivante Corporation
CL_DEVICE_MAX_CLOCK_FREQUENCY: 500 MHz
So, the number of computing devices shows that this OpenCL driver provided by FreeScale only support GPU computing, the four ARM Cortex-A9 cpu cores are not supported, and GC2000 has 4 shaders (compute units), and the clock frequency is 500MHZ, it also support opencl image processing. That is really a good news.
2 Data type GC2000 can deal with
Following parameters described the data type that can be dealt:
these parameters show that gc2000 can deal with char (8bit), short int (16bit), int
(32bit), float(32bit), but not long and double.
3 GPU's Memory parameters
Following parameters are for the memory and cache used by the GPU
CL_DEVICE_GLOBAL_MEM_SIZE: 96 MByte
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 48 MByte
CL_DEVICE_LOCAL_MEM_SIZE: 1 KByte
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 4 KByte
You can see that the local memory size of GC2000 is extremely small, only 1KBytes,
and the global memory cache size is only 64bytes, that sames ridiculous, all these
limitations made the gpu to get its most data directly from global memory, as the FreeScale
used a double 64bit AXI bus architecture, it extremely constrained the power of this
in the next discussion, I will shall you the theoretical and actual computing power of this tiny GPU. less
with the vdk of gc2000 driver, there is a compiled program clinfo, run it, you will get those information, or, you may write a simple opencl code to get those information.