在通用软件上使用OPENCL,如何摆脱平台相关性?

[复制链接]
查看11 | 回复3 | 2021-1-27 05:07:16 | 显示全部楼层 |阅读模式
偶正在编写一个算法相关的软件,对OPENCL的加速性能非常感兴趣。现在正在学习这方面东西。现在有个问题,如果我的部分设计用OPENCL来实现,如何保证这些代码一定能很好的运行在各种不同的PC上?面临着不同的显卡,甚至集成显卡。。。。。,如何保证在不同的显卡上运行的结果基本都是一致的?总不能做一种显卡一种显卡的测试吧。现在偶对于OPENCL还是门外汉,求正解!
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:07:16 | 显示全部楼层
没有人回复么?晕自己顶下
回复

使用道具 举报

千问 | 2021-1-27 05:07:16 | 显示全部楼层
只要满足标准,且程序申请的资源没有超出硬件的限制,运行的结果就必须是一致的。这样才能满足opencl的标准。
楼主去看看opencv中ocl模块的源码吧。我记得那里面就是根据不同的平台做不同的优化,但是优化程度非常有限。只能做到程序可移植,性能不靠普。
回复

使用道具 举报

千问 | 2021-1-27 05:07:16 | 显示全部楼层
对不通的情况,如APU的集成显卡(Intel&AMD),独立显卡(Nvidia&AMD)你需用不同的代码片断完成你的实现。特别是APU和独立显卡,在使用内存对象方面差别很大。对应不同厂家的代码片断,你可使用他们的Openclextentions.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行