迫于性能需求,寻 cuda 大神

2018-12-22 18:44:44 +08:00
 Halo2018

目前有一段 BCH 码的编码程序,用 openmp 粗力度并行译码速度一般,正在学习 cuda,请问有 cuda 大佬帮忙改一段程序吗?

3772 次点击
所在节点    算法
14 条回复
lwh0328
2018-12-22 18:48:49 +08:00
大神不敢说,帮忙可以看一下
Halo2018
2018-12-22 19:23:43 +08:00
@lwh0328
for (i = 1; i <= t2; i++) {
s[i] = 0;
for (j = 0; j < length; j++)
if (cx[j] != 0)
s[i] ^= alpha_to[(i * j) % n];
if (s[i] != 0)
syn_error = 1;
s[i] = index_of[s[i]];
}
主要是这段代码的改写
其中的 t2 大概在 3000 length 的长度大概在 16383 返回 s
Halo2018
2018-12-22 19:24:06 +08:00
@lwh0328 谢谢 请问我要怎么并行化比较好
lwh0328
2018-12-22 21:27:53 +08:00
你 s[i]每次都先置零,后面的操作和判断就没有意义了呀,是不是我理解错了?
pwrliang
2018-12-22 21:52:45 +08:00
改成 CUDA 的话直接把外侧循环并行展开,保证结果正确了再调优。
Halo2018
2018-12-22 23:01:15 +08:00
@lwh0328 s[i]置 0 类似初始化。
Halo2018
2018-12-22 23:02:00 +08:00
@pwrliang 外侧循环并行展开 判断怎么做
dongyx
2018-12-23 00:30:13 +08:00
length 和 n 相等吗?
Halo2018
2018-12-23 09:33:54 +08:00
@dongyx length 和 n 是相等的
Halo2018
2018-12-24 08:49:58 +08:00
@dongyx 老哥 有方法吗
dongyx
2018-12-25 01:12:49 +08:00
@Halo2018 cx[]中 0 的密度低吗?
Halo2018
2018-12-25 10:17:54 +08:00
@dongyx 大概一半吧。
Halo2018
2018-12-25 10:18:51 +08:00
@dongyx 老哥 可以给我把这段程序改下吗
hackpro
2019-01-02 00:59:05 +08:00
你的 spec 要求是多少 感觉 openmp 应该也能做 要注意变量是否共享

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX