阅读CUDA 5.0编程指南时,我发现有一项名为“漏斗移位(Funnel shift)”的功能,它存在于3.5计算能力的设备中,但不存在于3.0中。指南中有一个注释“请参考参考手册”,但当我在手册中搜索“funnel shift”时,没有找到任何相关内容。我尝试通过谷歌搜索,只在第8章的http://www.cudahandbook.com上找到了这方面的提及:
8.2.3 漏斗移位(SM 3.5)
GK110添加了一种64位的“漏斗移位”指令,可以通过以下内置函数访问:
__funnelshift_lc():返回左侧漏斗移位的最高32位。
__funnelshift_rc():返回右侧漏斗移位的最低32位。
这些内置函数是在sm_35_intrinsics.h中实现的内嵌设备函数(使用内嵌PTX汇编)。但这仍然没有解释“左侧漏斗移位”或“右侧漏斗移位”是什么。
那么,什么是漏斗移位,人们在哪些情况下需要它?
8.2.3 漏斗移位(SM 3.5)
GK110添加了一种64位的“漏斗移位”指令,可以通过以下内置函数访问:
__funnelshift_lc():返回左侧漏斗移位的最高32位。
__funnelshift_rc():返回右侧漏斗移位的最低32位。
这些内置函数是在sm_35_intrinsics.h中实现的内嵌设备函数(使用内嵌PTX汇编)。但这仍然没有解释“左侧漏斗移位”或“右侧漏斗移位”是什么。
那么,什么是漏斗移位,人们在哪些情况下需要它?