麻烦请问一个GPU优化的问题?

c404940607 2015-08-11 05:32:01
想请教各位大神一个GPU优化的问题(CUDA完全没经验啊...)。
这个问题是这样的。首先是大量hash(大约50次左右),每个hash得出value是一个有序
倒排表(里面存储的是一个一个的数字,长度大约只有10左右)。然后需要将这几百个倒
排表合并成一个有序表、去重(这个长数组应该shared memory放不下)。这整个流程要
执行很多次。
现在的问题是,我是该;
1.让每个线程执行自个执行整个流程,然后开很多个线程并行执行。
2.让一个block里的所有协作排序,然后再协作去重。
我知道cuda本身的提供的库排序很快,但是感觉这个问题本身可以合并得来;而且如果
采用第二种方法的话,可以隐藏一些内存读取(因为hash这个过程本身有少量的分支,
一个block里的hash没法安排,大约能隐藏60%的内存读取);而且可以充分利用每一个
线程(第一种的话每个block可能不一定能凑够32)。

——————————————分隔线--------------------------------
还有就是cuda官方的那个reduction的例子。求和可以理解,但是感觉求最大和最小值,
有分支啊,这样不是不符合尽量避免分支的原则了么,为什么依然速度有提升?
...全文
1066 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Shimejing 2015-08-18
  • 打赏
  • 举报
回复
请问下你在线吗? 我目前在调试android,遇到个3D跑分不高,应该也是GPU优化的问题吧,请教下在kernel里面需要怎么做,我一点概念不知道

353

社区成员

发帖
与我相关
我的任务
社区描述
CUDA高性能计算讨论
社区管理员
  • CUDA高性能计算讨论社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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