跳转至

快速速查

编译命令

# Ascend C -> Vector 汇编
./bisheng -target hiipu64-hisilicon-cce \
  -Xclang -target-cpu -Xclang dav-c220-vec \
  -O2 -S kernel.c -o kernel.s

# Ascend C -> Cube 汇编
./bisheng -target hiipu64-hisilicon-cce \
  -Xclang -target-cpu -Xclang dav-c220-cube \
  -O2 -S kernel.c -o kernel.s

# 汇编 + 显示编码
./bisheng -cc1as -triple hiipu64-hisilicon-cce \
  -target-cpu dav-c220-vec -filetype asm \
  -show-encoding -o - kernel.s

# 汇编 -> ELF 目标文件
./bisheng -cc1as -triple hiipu64-hisilicon-cce \
  -target-cpu dav-c220-vec -filetype obj \
  -o kernel.o kernel.s

常用格式

ADD.s64 Xd, Xn, Xm
ADD.s64 Xd, Xn, #imm
CMP.EQ.s64 Xn, Xm
LD.b64 Xd, [Xn], #imm
MOV Xd, NAME
MOV NAME, Xn
JUMP #target
SET_FLAG.S.V #event
MOV_OUT_TO_UB [Xd], [Xn], Xm
VADD.s16 [Xd], [Xn], [Xm], Xs, MASK
VEXP.f32 [Xd], [Xn], Xs, MASK
MMAD.s8 [Xd], [Xn], [Xm], Xs

机器字

宽度:32 bit
对齐:4 byte
字节序:little-endian
顶层类型:word[31:29]

关键寄存器

X0..X31       标量、地址和配置
MASK[0..1]    Vector 执行掩码
CMPMASK0/1    Vector 比较状态
VA<n>         Vector 地址描述
SPR name      特殊寄存器

配置寄存器速查

// dav-c220-vec
MOV X0, STATUS
MOV X1, CTRL
MOV CTRL, X2
MOV DEQSCALE, X3
MOV ST_ATOMIC_CFG, X4

// dav-c220-cube
MOV FMATRIX, X0
MOV FPC, X1
MOV X2, FPC
MOV PADDING, X3

名称存在不代表两个方向都可用,也不代表两个 c220 目标都支持。完整矩阵见 配置寄存器与隐式状态