在阅读 CUDA 5.0 Programming Guide 时,我偶然发现了一个名为“Funnel shift”的功能,该功能存在于 3.5 计算设备中,但不是 3.0。它包含一个注释“参见参考手册”,但是当我在手册中搜索“漏斗移位”术语时,我什么也没找到。
我试着用谷歌搜索它,但只在第 8 章的http://www.cudahandbook.com上找到了提及:
8.2.3 漏斗转移(SM 3.5)
GK110 添加了一个 64 位“漏斗移位”指令,可以使用以下内部函数访问该指令:
__funnelshift_lc():返回左漏斗移位的最高有效 32 位。
__funnelshift_rc():返回右漏斗移位的最低有效 32 位。
这些内在函数在 sm_35_intrinsics.h 中实现为内联设备函数(使用内联 PTX 汇编程序)。
...但它仍然没有解释“左漏斗移位”或“右漏斗移位”是什么。
那么,它是什么,在哪里需要它?