使用 CUDA 的 shfl.idx 指令,我们执行本质上是一个经线内聚集:每个通道提供一个基准和一个原点通道,并获取原点通道的基准。
逆运算,scatter呢?我的意思是,不是分散到记忆中,而是分散到车道上。也就是说,每条车道都提供了一个基准和一个目的地车道,并且对于恰好有另一条车道瞄准它们的车道 - 它们最终具有目标车道的值;其他通道以未定义/任意值结束。
我很确定 PTX 没有这样的东西。它可能以某种方式存在于SASS中吗?如果没有,是否有比通过通道索引分散到共享内存和从共享内存加载更好的方法来实现这一点?