【发布时间】:2011-04-18 23:24:15
【问题描述】:
问题说明了一切;
假设每个线程都在做类似的事情
value=blockDim.x*blockIdx.x+threadIdx.x;
result=f(value);
其中 f 是一个设备函数,通过添加 atomicMax() 调用很容易找到最大结果,但是您如何找出该值是什么?
【问题讨论】:
-
你有没有研究过归约内核?无论如何,它们可能比 atomicMax 更快。
-
基本上 f() 正在做一大堆工作,最后我得到了 f() 的输出值,但我想要的是 f 的输入,它给出了最高的输出.我正在想办法解决这个问题,但我们会看到......
-
是的,我想通了,我只是太慢了。
-
当你说“最大结果”时,你问的是什么范围?线程、块还是网格?每个人的最佳解决方案可能并不相同。
-
你可能已经看到了,但是...stackoverflow.com/questions/5720267/…