量子计算9 发表于 2022-6-29 09:19

用的gpu不一样,最后那张图用的是好多年前的卡,我用的是v100,所以带宽本身就不一样了哈

stonstad 发表于 2022-6-29 09:27

噢噢原来如此[捂脸]

Arzie100 发表于 2022-6-29 09:35

哈喽楼主,想请假一下这里完全unroll looping的目的是什么呢,我个人的理解是当前cuda所有架构好像没有乱序执行,那么完全展开好像不能指令重排,增加指令的并行性?

DomDomm 发表于 2022-6-29 09:38

CUDA中的unroll looping主要是减少for循环中的判断和i++操作。如果用模板参数将循环次数传进去的话,生成的cubin汇编会将loop完全展开,判断和i++所需要的指令就没了,通过这种方式加快计算。

Baste 发表于 2022-6-29 09:42

谢谢楼主解答

Doris232 发表于 2022-6-29 09:49

另外,完全展开后是有指令重排的。

franciscochonge 发表于 2022-6-29 09:50

第五步第一行那个template <unsigned int blockSize>是啥意思啊, 我怎么设置这个blockSize

unityloverz 发表于 2022-6-29 09:58

这个就是用模板把参数传进去,这样的话,编译器可以在编译时做尽可能的优化。用法可以看我的代码哈,已经在github上了哈。

HuldaGnodim 发表于 2022-6-29 10:08

那是什么对它做指令重排呢?

ainatipen 发表于 2022-6-29 10:14

编译器做的,
页: 1 [2] 3
查看完整版本: 深入浅出GPU优化系列:reduce优化