社区
OpenCL和异构编程
帖子详情
求解惑,每个核函数中有一个排序算法,是否适合用opencl加速
zwmeimeimei
2015-03-05 05:37:22
本人初学opencl,希望将算法中的一个模块用opencl加速,这个模块每执行一次循环迭代都要进行一次排序,排序的数据量大概是1000左右,采用堆排序,可否将这个模块写成核函数进行opencl加速
注意,不是将排序算法并行运算,而是每次并行运算中都有一个排序算法,这种情况适合用opencl吗?
...全文
1014
4
打赏
收藏
求解惑,每个核函数中有一个排序算法,是否适合用opencl加速
本人初学opencl,希望将算法中的一个模块用opencl加速,这个模块每执行一次循环迭代都要进行一次排序,排序的数据量大概是1000左右,采用堆排序,可否将这个模块写成核函数进行opencl加速 注意,不是将排序算法并行运算,而是每次并行运算中都有一个排序算法,这种情况适合用opencl吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fronteer
2015-03-19
打赏
举报
回复
1000 根本没必要用 GPU, 现在的 GPU 计算能力越来越强, 需要很大的数据规模才能发挥优势。Sorting 算法本质上串行因素比较大, 很适合 CPU, 但数据量大的情况下, 用bitonic 算法结合GPU多个计算单元分段排序再合并,也是可能提高sorting 的性能的。 另外, 从要解决问题的目标考虑, sorting 的目的可能是要进行查找 (用 key 二分查找), 可利用GPU计算线程多的特点, 不用sorting 直接查找可能性能更好, 特别是数据不断增加的情况下,每次数据增加后CPU都要重新sorting, 可能不如利用GPU直接search.
lcwyylcwyy
2015-03-19
打赏
举报
回复
建议采用桶排序试试
zenny_chen
2015-03-17
打赏
举报
回复
做法有很多。首先,排序算法有一些比较适合GPU的;其次,对于数据量不大的排序可以通过以work-group为单位做模拟的任务级并行计算,不同work-group之间的计算可以被并发执行的。最后提醒一下,在kernel程序里是做不了动态内存分配的。所以排序算法先要针对GPU的处理特性做好设计。
outstander
2015-03-14
打赏
举报
回复
可以在每个线程里使用单独使用排序算法的。但建议不要用太复杂的排序算法,GPU对逻辑判断和循环支持和执行效率较差
基于
OpenCL
并行
加速
算法研究及其FPGA实现_彭新显
基于
OpenCL
并行
加速
算法研究及其FPGA实现(彭新显),异构并行计算的好东西
OpenCL
内建
函数
中
文手册.pdf
opencl
中
文手册,方便查看
opencl
的相应API,整数
函数
,公共
函数
,几何
函数
。关系
函数
,加载矢量数据图像数据等,详细介绍各种数据类型,
函数
的精度等
GDB 调试 Linux C / C++
# 论 调试能力在开发程序
中
的重要性 调试是开发流程
中
一个非常重要的环境,每个程序员都应具备调试代码的能力,尤其对于从事 Linux C/C++ 开发的用户,必须具备熟练使用 GDB 调试器的能力。俗话说你有十分技能,那么...
OPENCL
版A*算法
分别使用C++和
opencl
实现A*算法,并对比性能。(注:目前在本人环境上,
opencl
无优势)
opencl
编程指南(
中
文版SDK)
opencl
编程指南(
中
文版SDK),介绍满详细的,跨平台使用,硬件
加速
,可以当工具书参考用。
OpenCL
领域公认的权威著作,由
OpenCL
核
心设计人员亲自执笔,不仅全面而深刻地解读了
OpenCL
规范和编程模型,而且通过大量...
OpenCL和异构编程
604
社区成员
575
社区内容
发帖
与我相关
我的任务
OpenCL和异构编程
异构开发技术
复制链接
扫一扫
分享
社区描述
异构开发技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章