asc.language.basic.check_local_memory_ia

asc.language.basic.check_local_memory_ia(check_params: CheckLocalMemoryIAParam)

Check设定范围内的UB读写行为,如果有设定范围的读写行为则会出现EXCEPTION报错,无设定范围的读写行为则不会报错。

对应的Ascend C函数原型

__aicore__ inline void CheckLocalMemoryIA(const CheckLocalMemoryIAParam& checkParams)

参数说明

  • check_params:用于配置对UB访问的检查行为,类型为CheckLocalMemoryIAParam。 - enable_bit:配置的异常寄存器,取值范围:enable_bit∈[0,3],默认为0。

    • 0:异常寄存器0。

    • 1:异常寄存器1。

    • 2:异常寄存器2。

    • 3:异常寄存器3。

    • start_addr:Check的起始地址,32B对齐,取值范围:start_addr∈[0, 65535],默认值为0。比如,可通过LocalTensor.get_phy_addr()/32来获取start_addr。

    • end_addr:Check的结束地址,32B对齐,取值范围:end_addr∈[0, 65535]。默认值为0。

    • is_scalar_read:Check标量读访问。 - false:不开启,默认为false。 - true:开启。

    • is_scalar_write: Check标量写访问。 - false:不开启,默认为false。 - true:开启。

    • is_vector_read: Check矢量读访问。 - false:不开启,默认为false。 - true:开启。

    • is_vector_write: Check矢量写访问。 - false:不开启,默认为false。 - true:开启。

    • is_mte_read: Check MTE读访问。 - false:不开启,默认为false。 - true:开启。

    • is_mte_write: Check MTE写访问。 - false:不开启,默认为false。 - true:开启。

    • is_enable: 是否使能enable_bit参数配置的异常寄存器。 - false:不使能,默认为false。 - true:使能。

约束说明

  • start_addr/end_addr的单位是32B,check的范围不包含start_addr,包含end_addr,即(start_addr, end_addr]。

  • 每次调用完该接口需要进行复位(配置is_enable为False进行复位)。

调用示例

params = asc.CheckLocalMemoryIAParam()
asc.check_local_memory_ia(params)