前段时间,把市面上手机GPU OpenCL支持情况做了一个总结。总结如下:
目前,手机 GPU 市面有四个公司产品:Qualcomm, Imagination Technologies,ARM, Vivante,分别对应的产品如下: (所有表格均是按照产品上市时间先后排列)
表1 Qualcomm GPU
产品型号 | OpenCL支持 |
Adreno 200系列 | 不支持 |
Adreno 300 系列 | √(OpenCL 1.1) |
Adreno 400 系列 | √(OpenCL 1.1) |
表2 Imagination Technologies GPU
产品型号 | OpenCL支持 |
PowerVR Series 5 | 不支持 |
PowerVR Series 5XT | √(OpenCL 1.1) SGX543, SGX544, SGX554 |
PowerVR Series 6 | √(OpenCL 1.2) |
PowerVR Series 6XE | √(OpenCL 1.2) |
PowerVR Series 6XT | √(OpenCL 1.2) |
对于PowerVR GPU的手机,OpenCL的库在/system/vendor/lib/libPVROCL.so
表3 ARM GPU
产品型号 | OpenCL支持 |
ARM Mali400MP | 不支持 |
ARM Mali450MP | 不支持 |
ARM Mali Series 600 | √(Full Profile OpenCL1.1) |
ARM Mali Series 700 | √(Full Profile OpenCL1.1) |
至于Vivante GPU,官网上号称是都支持OpenCL的,市面上采用它的GPU手机太少了,目前我只知道华为的K3V2芯片,不过在华为P6测试的结果系统没有自带OpenCL库。自己也没去折腾Vivante GPU的SDK,所以具体情况不是很清楚。
ps:在我的手机上对高斯滤波对比过RendScript与 OpenCL,采用同样的策略,RenderScript比OpenCL慢了很多。从性能来说,放弃了RendScript的方案