作者: Sam(甄峰) sam_code@hotmail.com
当前大多数手机芯片和嵌入式芯片都加入了GPU芯片。如何利用GPU芯片加快推理,就是一个很大的问题。 Paddle lite利用跨平台计算框架OpenCL将计算映射到GPU上执行,以充分利用GPU硬件算力,提高推理性能。在执行时,会优先在GPU上执行算子,如果OP没有GPU实现,则该OP退回到CPU上执行。
1.硬件支持:
支持高通骁龙 Adreno系列GPU. ARM Mali系列GPU。PowerVR系列GPU。
2. paddle-lite支持:
需要编译paddle-lite, 添加with_opencl=ON
3. 模型转换:
需要重新使用opt工具转换模型。添加上:--valid_target=opencl
4. 代码相关:
4.1:判断当前平台是否支持OpenCL:
bool is_opencl_backend_valid = ::IsOpenCLBackendValid();
std::cout
<<
'###########################################is_opencl_backend_valid:'
<< (is_opencl_backend_valid ? 'true'
: 'false') << std::endl;
4.2: set_opencl_binary_path_name()
当前大多数手机芯片和嵌入式芯片都加入了GPU芯片。如何利用GPU芯片加快推理,就是一个很大的问题。 Paddle lite利用跨平台计算框架OpenCL将计算映射到GPU上执行,以充分利用GPU硬件算力,提高推理性能。在执行时,会优先在GPU上执行算子,如果OP没有GPU实现,则该OP退回到CPU上执行。
1.硬件支持:
支持高通骁龙 Adreno系列GPU. ARM Mali系列GPU。PowerVR系列GPU。
2. paddle-lite支持:
需要编译paddle-lite, 添加with_opencl=ON
3. 模型转换:
需要重新使用opt工具转换模型。添加上:--valid_target=opencl
4. 代码相关:
4.1:判断当前平台是否支持OpenCL:
bool is_opencl_backend_valid = ::IsOpenCLBackendValid();
4.2:
