PaddleLite学习<三>使用GPU推理

2023-11-22 14:53:49
标签: paddle

作者: 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()

函数可以避免在线编译 OpenCL kernel,进而提高首帧运行速度。推荐在工程代码中使用该函数。

if (is_opencl_backend_valid) 

  {

#ifdef ANDROID

    __android_log_print(ANDROID_LOG_INFO,

                        "JNIDetection",

                        "Platform Support OpenCL.");

#endif

    const std::string bin_path = "/data/sam/";

    const std::string bin_name = "lite_opencl_kernel.bin";

    config.set_opencl_binary_path_name(bin_path, bin_name);

  }

 

 


 

阅读(0) 收藏(0) 转载(0) 举报/Report
相关阅读

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有