subgroupInclusiveAdd
subgroupInclusiveAdd
对子组(subgroup / wave / warp)内执行“包含式”加法扫描(inclusive scan),返回当前调用在其子组中的前缀和(包含自身)。仅当底层后端支持子组运算时可用。
核心优势
以硬件级并行在子组内计算前缀和,避免显式共享内存与多次同步;TSL 通过 nodeProxyIntent 封装为一元函数(setParameterLength(1)),自动生成临时变量(toVarIntent),便于复用与组合。
常见用途
计算着色器中的前缀和:直方图、分桶、前缀分配等并行算法。
基于累计强度/遮罩的流程(逐像素或逐样本的并行累加)。
子组内的数据压缩/排序阶段的局部扫描构件。
如何调整
通过改变输入 value 控制结果;该函数固定为单一参数。确保运行环境启用子组特性,并在算法上考虑子组大小与边界(不同设备的子组大小可能不同)。
代码示例
1// 将每个调用的浮点值进行子组“包含式”前缀和
2const prefix = subgroupInclusiveAdd( value );
3// 可用作累计权重/索引;注意结果仅在子组边界内定义
4