小编Ben*_*Ben的帖子

在CUDA中,非合并内存访问会导致分支差异吗?

我一直认为分支差异只是由分支代码引起的,比如"if","else","for","switch"等.但是我最近读过一篇论文,其中说:

" 人们可以清楚地看到,通过线程中的每个第一次探索基于算法采取的不同分支的数量至少比全勘探战略两次更重要.这是典型的额外的未合并的结果访问全局存储器.因此,这样的线程分歧导致许多必须序列化的存储器访问,增加了执行的指令总数.

可以观察到,使用非合并访问的版本的warp序列化数量比其对应版本重要7到16倍.实际上,由非合并访问引起的线程分歧导致许多必须被序列化的存储器访问,增加了要执行的指令. "

根据作者的说法,似乎非合并访问会导致不同的分支.真的吗?我的问题是,分支差异究竟有多少原因?提前致谢.

branch cuda

6
推荐指数
1
解决办法
288
查看次数

标签 统计

branch ×1

cuda ×1