求助:模板半径为70的圆盘的滤波图像,kernel超出3秒,怎么解决

wobuzhidaotashishui 2010-12-24 05:25:08
想要滤波,把图像的每个像素分个线程,但是模板半径是70,也就是说一个线程里要循环19881次,导致kernel停止。我试了半天我的电脑最多能处理半径20的模板滤波。
有没有好办法解决?
...全文
47 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhumilan 2011-01-02
  • 打赏
  • 举报
回复
或者把圆盘数据以外切正方形的数据量大小的数组保存,然后对这个数组分块
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhumilan 的回复:]

或者把圆盘数据以外切正方形的数据量大小的数组保存,然后对这个数组分块
[/Quote]其实和楼上的思想一样,我分了4块,半径可以增大到50。后来发现和分block的个数还有关,我的SM只有两块,16个核,太少了。后来放到5800上,不需要分用了0.9秒算完。
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 l7331014 的回复:]
分割圆盘成4块或6块.每块都是扇形.
[/Quote]

每块用一个kernel处理.
  • 打赏
  • 举报
回复
分割圆盘成4块或6块.每块都是扇形.

581

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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