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)