设置算子编译选项
可以通过torch_npu中的set_option接口配置算子编译过程中的属性,通过ACL接口实现。
import torch 
import torch_npu 
option = {key: val} 
torch_npu.npu.set_option(option) # 以dict方式进行设置
使用样例如下,以配置ACL_PRECISION_MODE为例。
import torch 
import torch_npu 
option = {"ACL_PRECISION_MODE":"must_keep_origin_dtype"} 
torch_npu.npu.set_option(option)
可选值  | 
含义  | 
可设置的val值  | 
说明  | 
|---|---|---|---|
ACL_PRECISION_MODE  | 
选择算子精度模式。  | 
  | 
如果不配置该编译选项,则 
  | 
ACL_AICORE_NUM  | 
设置模型编译时使用的AI Core数量。  | 
无。  | 
当前版本设置无效,为了向前兼容,保留设置项。  | 
ACL_OP_SELECT_IMPL_MODE  | 
选择算子是高精度实现还是高性能实现。  | 
  | 
如果不配置该编译选项,默认采用high_precision。  | 
ACL_OPTYPELIST_FOR_IMPLMODE  | 
列举算子类型列表,该列表中算子的实现方式使用ACL_OP_SELECT_IMPL_MODE指定的模式。  | 
当前仅支持配置的算子为Pooling、SoftmaxV2、LRN、ROIAlign。  | 
该参数当前仅支持设置某个具体算子的实现方式,不支持设置多个算子。  | 
ACL_OP_DEBUG_LEVEL  | 
配置TBE算子编译debug功能开关。  | 
  | 
无。  | 
ACL_DEBUG_DIR  | 
配置保存模型转换、网络迁移过程中算子编译生成的调试相关过程文件的路径。  | 
无。  | 
相关过程文件包括算子.o/.json/.cce等文件。具体生成哪些文件以ACL_OP_DEBUG_LEVEL选项设置的取值为准。 路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。  | 
ACL_OP_COMPILER_CACHE_MODE  | 
配置算子编译磁盘缓存模式。  | 
  | 
该编译选项需要与ACL_OP_COMPILER_CACHE_DIR配合使用。默认采用enable模式。  | 
ACL_OP_COMPILER_CACHE_DIR  | 
配置算子编译磁盘缓存的目录。  | 
无。  | 
默认目录为$HOME/atc_data。该编译选项需要与ACL_OP_COMPILER_CACHE_MODE配合使用。 如果设置了ACL_OP_DEBUG_LEVEL编译选项,则只有编译选项值为0或3才会启用编译缓存功能,其他取值禁用编译缓存功能。路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。  | 
MM_BMM_ND_ENABLE  | 
开启MatMul、BatchMatMul算子支持ND模式。  | 
  | 
默认采用enable模式。  | 
ACL_OP_DEBUG_OPTION  | 
算子内存检测开关。  | 
oom:用于定位算子执行过程中检测Global Memory是否内存越界,越界算子会直接报错。  | 
维测能力,默认不配置。  |