V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Halo2018
V2EX  ›  算法

迫于性能需求,寻 cuda 大神

  •  
  •   Halo2018 · 2018-12-22 18:44:44 +08:00 · 3771 次点击
    这是一个创建于 2161 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    14 条回复    2019-01-02 00:59:05 +08:00
    lwh0328
        1
    lwh0328  
       2018-12-22 18:48:49 +08:00 via iPhone
    大神不敢说,帮忙可以看一下
    Halo2018
        2
    Halo2018  
    OP
       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
        3
    Halo2018  
    OP
       2018-12-22 19:24:06 +08:00
    @lwh0328 谢谢 请问我要怎么并行化比较好
    lwh0328
        4
    lwh0328  
       2018-12-22 21:27:53 +08:00 via iPhone
    你 s[i]每次都先置零,后面的操作和判断就没有意义了呀,是不是我理解错了?
    pwrliang
        5
    pwrliang  
       2018-12-22 21:52:45 +08:00 via Android
    改成 CUDA 的话直接把外侧循环并行展开,保证结果正确了再调优。
    Halo2018
        6
    Halo2018  
    OP
       2018-12-22 23:01:15 +08:00 via iPhone
    @lwh0328 s[i]置 0 类似初始化。
    Halo2018
        7
    Halo2018  
    OP
       2018-12-22 23:02:00 +08:00 via iPhone
    @pwrliang 外侧循环并行展开 判断怎么做
    dongyx
        8
    dongyx  
       2018-12-23 00:30:13 +08:00
    length 和 n 相等吗?
    Halo2018
        9
    Halo2018  
    OP
       2018-12-23 09:33:54 +08:00 via iPhone
    @dongyx length 和 n 是相等的
    Halo2018
        10
    Halo2018  
    OP
       2018-12-24 08:49:58 +08:00
    @dongyx 老哥 有方法吗
    dongyx
        11
    dongyx  
       2018-12-25 01:12:49 +08:00
    @Halo2018 cx[]中 0 的密度低吗?
    Halo2018
        12
    Halo2018  
    OP
       2018-12-25 10:17:54 +08:00 via iPhone
    @dongyx 大概一半吧。
    Halo2018
        13
    Halo2018  
    OP
       2018-12-25 10:18:51 +08:00 via iPhone
    @dongyx 老哥 可以给我把这段程序改下吗
    hackpro
        14
    hackpro  
       2019-01-02 00:59:05 +08:00
    你的 spec 要求是多少 感觉 openmp 应该也能做 要注意变量是否共享
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3534 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 00:50 · PVG 08:50 · LAX 16:50 · JFK 19:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.