在QCS8550上, 使用OpenCL 无法获取clImportMemoryARM函数指针,是否能够对该拓展函数进行支持?

weixin_32249477 2024-09-20 12:46:05

使用OpenCL进行数据处理时,对于外部的Buffer需要导入并创建clCreateBuffer,使用后再进行释放clReleaseMemObject会有额外的消耗。而使用clImportMemoryARM导入的CLBuffer可以持有,并直接使用,避免多余的操作。
#define FUNCPTR(FuncName) FuncPtr##FuncName
FUNCPTR(clImportMemoryARM)     m_pfnclImportMemoryARM;
m_pfnclImportMemoryARM = (FUNCPTR(clImportMemoryARM))RUN(clGetExtensionFunctionAddress)("clImportMemoryARM");
if (m_pfnclImportMemoryARM == nullptr) {
    printf("Failed to load clImportMemoryARM function.\n");
}else{
    printf("clImportMemoryARM function loaded successfully.\n");
}
size_t memSize = extSize;
int fd = extFD;
const cl_import_properties_arm prop[3] = {CL_IMPORT_TYPE_ARM, CL_IMPORT_TYPE_DMA_BUF_ARM, 0};
cl_mem importedBuffer = RUN(clImportMemoryARM)(m_clContext, CL_MEM_READ_WRITE, prop, &fd, memSize, &errNum);

获取函数指针时得到的结果时nullptr

...全文
997 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38498942 2024-09-24
  • 打赏
  • 举报
回复

在系统的环境里编写程序的时候链接到libGLES_mali_default_8a_32-p-r16p0gralloc1.so 这个库里, 然后在代码编译的时候加入这个头文件cl_ext.h。

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧