关于OpenCL与c++进行混编

binqilin1115 2014-07-28 09:29:32
OpenCL与c++进行混编可以吗?尝试过得,进来聊聊
...全文
802 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ch2065 2014-08-16
  • 打赏
  • 举报
回复
没用过OpenCL,但是用了用微软的C++ AMP,挺方便的。。
fronteer 2014-08-13
  • 打赏
  • 举报
回复
在kernel 代码端使用 C++ 对象一般而言没什么问题。 但在 kernel 端使用的 C++ 对象必须是在 Host 端已经分配好了的. Kernel 端使用 C++ 对象的好处是 Host-Kernel 可以直接用C++ 类型交换数据, 而不需要在 kernel 重新定义所访问的数据结构. 但在 Kernel 端使用 C++ 需要注意两点: 1) 不能创建 C++ 对象以及任何导致隐式对象创建的操作。 这是因为目前 GPU 设备是不支持动态内存分配的, 所以软件上不支持要求动态内存分配的操作 2) 不能使用虚拟函数以及其他用函数指针方式进行函数调用的行为. 这一点也许以后会改变,AMD 最新的 GCN 结构已经支持函数指针了, 以后软件也许会跟进.
outstander 2014-08-10
  • 打赏
  • 举报
回复
你指的混遍具体是什么? 从运行上来说,C++运行在CPU上,OpenCL运行在GPU上,是可以同时运行和相互配合的。 从语言上来说,OpenCL支持部分的C++的语言特性,也支持C++的API
zenny_chen 2014-08-10
  • 打赏
  • 举报
回复
Host端的API完全兼容C++。至于kernel部分,要看各个厂商提供的OpenCL驱动实现。因为OpenCL官方宣称支持C11标准的子集,而没宣称支持C++标准。因此你在写kernel代码的时候还是用C11标准比较好,而且kernel代码本来就注重计算本身,而不是软件架构,因此根本就没必要使用复杂、低效的C++语法特性从而增加runtime负担~

608

社区成员

发帖
与我相关
我的任务
社区描述
异构开发技术
社区管理员
  • OpenCL和异构编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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