开发者
下载
[object Object]
[object Object]
[object Object]

按源Tile元素的某个字节统计直方图(每个字节取值0–255的出现次数),并可按“已处理的高位字节等于给定索引”做级联过滤。它是基数排序(radix sort)的字节桶计数原语:第一趟对最高有效字节(MSB)计数;后续各趟对更低字节计数,但仅统计高位字节与上一趟桶索引匹配的元素,从而得到当前基数位在前缀桶内的分布。

一次调用对源Tile的每个有效行独立产出一组256个 [object Object] 计数(bin)。

[object Object]

设源 [object Object] 有效形状为 R×CR \times C,元素为 [object Object][object Object]。记 Bk(x)B_k(x) 为元素 xx 的第 kk 字节:

B0=bits 70 (LSB),B1=bits 158,B2=bits 2316,B3=bits 3124 (MSB)B_0 = \text{bits } 7\text{–}0\ (\text{LSB}),\quad B_1 = \text{bits } 15\text{–}8,\quad B_2 = \text{bits } 23\text{–}16,\quad B_3 = \text{bits } 31\text{–}24\ (\text{MSB})

模板参数 [object Object] 选择被统计的字节 k{0,1,2,3}k\in\{0,1,2,3\}。对每一源行 r[0,R)r\in[0,R) 与每一桶值 b[0,256)b\in[0,256)

dstr,b={j[0,C)  Bk(srcr,j)=b  Fk(r,j) }\mathrm{dst}_{r,b} = \bigl|\{\,j\in[0,C)\ \big|\ B_k(\mathrm{src}_{r,j})=b\ \wedge\ F_{k}(r,j)\ \}\bigr|

其中级联过滤 FkF_k 按高位优先(先处理 k=3k=3,再 k=2,1,0k=2,1,0)定义:

[object Object]undefined
  • [object Object] 每行恒为256个 [object Object] 桶(对应字节取值0–255)。
  • [object Object] 源仅支持 [object Object] / [object Object](只有两个字节可被提取)。
  • 除非另有说明,语义在有效区域内定义;桶计数的具体内存交错布局(N0/N1双库、奇偶拆分)为实现定义,逻辑结果为每行256个计数。
[object Object]
[object Object]

声明于 [object Object],在Ascend 950PR/Ascend 950DT / Kirin9030 / CPU仿真下可用([object Object])。[object Object] 枚举定义于 [object Object]

[object Object]
[object Object]
[object Object]undefined
[object Object]

设源有效形状 R×CR \times C

[object Object]undefined
[object Object]
[object Object][object Object]undefined
[object Object]
[object Object]

THISTOGRAM在向量流水线([object Object])上执行:

  1. 字节提取:将源元素解交错为按字节向量——[object Object][object Object](拆出MSB/LSB),[object Object][object Object] + [object Object](拆出4个字节)。
  2. 级联过滤:用 [object Object] 生成“已处理高位字节 == idx”的谓词,逐字节级联相与(首趟MSB无过滤)。
  3. 字节直方图:以硬件 [object Object] 在过滤谓词下对选中字节计数,内部以N0/N1双库、奇偶拆分累加;最终每行写回256个 [object Object] 桶([object Object] 交错存储)。双库与奇偶拆分属实现细节,逻辑结果为每行256个计数。
[object Object][object Object]undefined
[object Object]
[object Object]

典型Tile声明([object Object] 模式,源有效形状 R×CR\times C):

[object Object]

完整ST示例见 [object Object](A5)、[object Object](Kirin9030)、[object Object](KirinX90)及 [object Object](CPU参考实现)。