请教大家一个并行策略的问题

lc19890326 2009-03-19 12:46:15
加精
实际上是静电场中的超松弛迭代法要改为CUDA下的并行控制,我简要的表述下:
给出了一个矩阵,矩阵的边界都已经给定了值,内部点数值任意,
迭代公式:(i,j)第n+1次值=(i,j)第n次值+ratio*[(i-1,j)第n+1次值+(i,j-1)第n+1次值+(i+1,j)第n次值+(i,j+1)第n次值-4*(i,j)第n次值],其中ratio是需要输入的常数
当第n次迭代和第n+1次迭代数据之差小于一定误差值就结束迭代
也就是说每次每点的迭代需要涉及到三行三列的数据,而且每次迭代还需要控制周围点的顺序
感觉这种不大适合用CUDA并行来控制,请问各位有没有比较好的思路,请赐教,谢谢
...全文
816 59 打赏 收藏 转发到动态 举报
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxuserene 2011-03-17
  • 打赏
  • 举报
回复
学习了
chinecuda 2009-08-17
  • 打赏
  • 举报
回复
如Cyrosly所说,red-black实际上还是一个multigrid的方法,唉,这种相关度比较高的东东实际上不太适合并行求解。
chinecuda 2009-08-17
  • 打赏
  • 举报
回复
貌似CUDA官方论坛上有高人指点说用Red-Black SOR来求解2D Poission方程,并行求解效率能超过Jaccobi几乎能赶上SOR。
Cyrosly 2009-04-09
  • 打赏
  • 举报
回复
to L上的L上:
你没有理解好线型纹理

to L主:
已经讲的很清楚了,至于程序,想要的话发你
冰火战地 2009-04-09
  • 打赏
  • 举报
回复
等高手解决,除了结果,留下消息,谢谢
housisong 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 42 楼 l7331014 的回复:]
与Cyrosly探讨:
用texture的话,每次计算后都要通过主机重建"纹理"吧,这样计算不能完全在GPU上执行了吧,合算吗?
[/Quote]

[Quote=引用 43 楼 Cyrosly 的回复:]
回L上:不需要
[/Quote]

这里怎么做到?

第一种方案: 输出和输入都用全局内存 用__shared__数组来解决周围领域的内存访问性能问题;输入和输出参数调换,进入下一次迭代
第二种方案: 输出用全局内存,输入用纹理 计算完以后利用一次host端的调用,拷贝输出到输入(设备到设备),进入下一次迭代

Cyrosly是说的第二种方案吗?可行吗?有没有更好的方案避免这次拷贝呢?
lc19890326 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 45 楼 Cyrosly 的回复:]
本来想把我的程序发上来,貌似发不了
[/Quote]
怎么发不了 你们讲的很多都不是很明白 尤其是texture不太熟悉
想看看你的程序啊……
longxinglxl12070 2009-04-09
  • 打赏
  • 举报
回复
来骗分的,看不懂
housisong 2009-04-09
  • 打赏
  • 举报
回复
to:Cyrosly

作为输出的全局内存数据绑定成纹理 怎么绑定呢?没有函数支持啊?
cudaBindTexture用于帮定简单的一维纹理,参数是内存指针 满足要求 但这种纹理访问限制较多(不支持多维、纹理过滤和寻址模式)
cudaBindTextureToArray可以绑定纹理到array,支持1\2\3维,但array没有发现获得其内存指针的函数

texture<Type, 2, ReadMode>能邦定到一块程序也可以访问的内存吗?
我没有找到解决这个问题的方法,只能多一次cudaMemcpyToArray复制来解决
Cyrosly 2009-04-09
  • 打赏
  • 举报
回复
回L上的L上:不需要拷贝,只需要重新绑定
cht_1988 2009-04-06
  • 打赏
  • 举报
回复
呵呵不错
Cyrosly 2009-04-06
  • 打赏
  • 举报
回复
本来想把我的程序发上来,貌似发不了
Cyrosly 2009-04-06
  • 打赏
  • 举报
回复
而且如果系数矩阵是不变的,对于像规则的矩形区域边界的泊松方程,甚至不用显式存储矩阵,索引系数也不需要存储可以在计算过程中产生.除非加入不规则边界,这时边界条件的加入会破坏系数矩阵的对称性.
Cyrosly 2009-04-06
  • 打赏
  • 举报
回复
回L上:不需要
liren12345 2009-04-06
  • 打赏
  • 举报
回复
了解了解
  • 打赏
  • 举报
回复
与Cyrosly探讨:
用texture的话,每次计算后都要通过主机重建"纹理"吧,这样计算不能完全在GPU上执行了吧,合算吗?
越过越咸 2009-04-06
  • 打赏
  • 举报
回复
什么东东啊 没有看明白
amelica86 2009-04-06
  • 打赏
  • 举报
回复
大家都说不错,就不错吧
  • 打赏
  • 举报
回复
To Cyrosly:
了解了。呵呵。
neston 2009-04-06
  • 打赏
  • 举报
回复
shared + texture
加载更多回复(36)

353

社区成员

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

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