[object Object]
按源Tile元素的某个字节统计直方图(每个字节取值0–255的出现次数),并可按“已处理的高位字节等于给定索引”做级联过滤。它是基数排序(radix sort)的字节桶计数原语:第一趟对最高有效字节(MSB)计数;后续各趟对更低字节计数,但仅统计高位字节与上一趟桶索引匹配的元素,从而得到当前基数位在前缀桶内的分布。
一次调用对源Tile的每个有效行独立产出一组256个 [object Object] 计数(bin)。
设源 [object Object] 有效形状为 ,元素为 [object Object] 或 [object Object]。记 为元素 的第 字节:
模板参数 [object Object] 选择被统计的字节 。对每一源行 与每一桶值 :
其中级联过滤 按高位优先(先处理 ,再 )定义:
[object Object]每行恒为256个[object Object]桶(对应字节取值0–255)。[object Object]源仅支持[object Object]/[object Object](只有两个字节可被提取)。- 除非另有说明,语义在有效区域内定义;桶计数的具体内存交错布局(N0/N1双库、奇偶拆分)为实现定义,逻辑结果为每行256个计数。
[object Object]
声明于 [object Object],在Ascend 950PR/Ascend 950DT / Kirin9030 / CPU仿真下可用([object Object])。[object Object] 枚举定义于 [object Object]。
[object Object]
[object Object]
设源有效形状 :
[object Object]
[object Object]
THISTOGRAM在向量流水线([object Object])上执行:
- 字节提取:将源元素解交错为按字节向量——
[object Object]走[object Object](拆出MSB/LSB),[object Object]走[object Object]+[object Object](拆出4个字节)。 - 级联过滤:用
[object Object]生成“已处理高位字节 == idx”的谓词,逐字节级联相与(首趟MSB无过滤)。 - 字节直方图:以硬件
[object Object]在过滤谓词下对选中字节计数,内部以N0/N1双库、奇偶拆分累加;最终每行写回256个[object Object]桶([object Object]交错存储)。双库与奇偶拆分属实现细节,逻辑结果为每行256个计数。
[object Object]
典型Tile声明([object Object] 模式,源有效形状 ):
[object Object]
完整ST示例见 [object Object](A5)、[object Object](Kirin9030)、[object Object](KirinX90)及 [object Object](CPU参考实现)。