新浪博客

PaddleLite学习<三>使用GPU推理

2023-11-22 14:53阅读:
作者: 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);
}

我的更多文章

下载客户端阅读体验更佳

APP专享