以下是 mssanitizer工具支持的检测指令列表。对于内存检测和竞争检测功能而言,检测工具要注意指令对内存的操作方式和内容,此表格便以指令对内存的操作方式而进行分类介绍。
指令类型 |
说明 |
指令名称 |
---|---|---|
搬运类指令 |
dma move类指令
|
copy_ubuf_to_gm |
copy_gm_to_ubuf |
||
copy_ubuf_to_ubuf |
||
move align类指令
|
copy_gm_to_ubuf_align_b8 |
|
copy_gm_to_ubuf_align_b16 |
||
copy_gm_to_ubuf_align_b32 |
||
copy_ubuf_to_gm_align_b8 |
||
copy_ubuf_to_gm_align_b16 |
||
copy_ubuf_to_gm_align_b32 |
||
vector_dup 指令 仅涉及对目的地址的写操作。 |
vector_dup |
|
load/store 通过标量的方式对GM或local memory读取或写入。 |
load |
|
store |
||
计算类指令 |
单目计算指令
|
vabs |
vadds |
||
vaxpy |
||
vbitsort |
||
vbrcb |
||
vcmpvs |
||
vconv |
||
vcopy |
||
vector_dup |
||
vexp |
||
vgather |
||
vgatherb |
||
vld_va_reg |
||
vln |
||
vlrelu |
||
vmaxs |
||
vmins |
||
vmuls |
||
vnot |
||
vrec |
||
vrelu |
||
vrsqrt |
||
vshl |
||
vshr |
||
vsqrt |
||
vtranspose |
||
双目计算指令
|
vadd |
|
vaddrelu |
||
vaddreluconv |
||
vand |
||
vbitsort |
||
vcmp |
||
vcmpv |
||
vdiv |
||
vmadd |
||
vmaddrelu |
||
vmax |
||
vmin |
||
vmla |
||
vmrgsort4 |
||
vmul |
||
vmulconv |
||
vor |
||
vreduce |
||
vreducev2 |
||
vsel |
||
vsub |
||
vsubrelu |
||
vsubreluconv |
||
规约类计算指令
|
vcadd |
|
vcgadd |
||
vcgmax |
||
vcgmin |
||
vcmax |
||
vcmin |
||
vcpadd |
||
同步类指令 |
同步类指令 在 AiCore 中,会有多条流水线并行处理不同的任务的情况,如搬运流水、向量运算流水、矩阵运算流水等。当不同流水需要访问同一片内存时,就需要保证访问顺序的正确性,此类指令的功能就是控制各流水之间的同步关系。 |
set_flag |
wait_flag |
||
hset_flag |
||
hwait_flag |
||
pipe_barrier |