函数:init
产品支持情况
| 
          产品  | 
        
          是否支持  | 
       
|---|---|
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
使用说明
| 
          C函数原型  | 
        
          aclError aclInit(const char *configPath)  | 
       
|---|---|
| 
          Python函数  | 
        
          ret = acl.init(config_path)  | 
       
| 
          函数功能  | 
        
          初始化函数。  | 
       
| 
          输入说明  | 
        
          config_path:str,配置文件所在的路径,包含文件名。 配置文件内容为JSON格式(JSON文件内的“{”的层级最多为10,“[”的层级最多为10)。如果以下的默认配置已满足需求,无需修改,可直接调用acl.init接口不传入参数或者可将配置文件配置为空JSON串(即配置文件中只有{})。 配置文件格式为JSON格式,当前支持以下配置: 
 
           说明: 
           建议不要同时配置dump信息和Profiling采集信息,否则dump操作会影响系统性能,导致Profiling采集的性能数据指标不准确。  | 
       
| 
          返回值说明  | 
        
          ret:int,错误码。 
  | 
       
| 
          约束说明  | 
        |
| 
          相关接口  | 
        
          pyacl还提供了其它使能Dump或Profiling的接口,如下,与acl.init不同的是,以下这些接口相对灵活,可以在一个进程内调用多次接口,每次调用接口时可以基于不同的Dump配置或Profiling配置。 
  | 
       
| 
          参考资源  | 
        
配置文件示例(算子Dump Watch模式配置)
将dump_scene参数设置为watcher,开启算子Dump Watch模式,详细配置说明及约束如下:
- 若开启算子Dump Watch模式,则不支持同时开启溢出算子Dump(配置dump_debug参数)或开启单算子模型Dump(配置dump_op_switch参数),否则报错。该模式在单算子API Dump场景下不生效。
 - 在dump_list中,通过layer参数配置可能踩踏其它算子内存的算子名称,通过watcher_nodes参数配置可能被其它算子踩踏输出内存导致精度有问题的算子名称。
      
- 若不指定layer,则模型内所有支持Dump的算子在执行后,都会将watcher_nodes中配置的算子的输出Dump出来。
 - layer和watcher_node处配置的算子都必须是静态图、静态子图中的算子,否则不生效。
 - 若layer和watcher_node处配置的算子名称相同,或者layer处配置的是集合通信类算子(算子类型以Hcom开头,例如HcomAllReduce),则不导出dump文件。
 - 对于融合算子,watcher_node处配置的算子名称必须是融合后的算子名称,若配置融合前的算子名称,则不导出dump文件。
 - dump_list内暂不支持配置model_name。
 
 - 开启算子Dump Watch模式,则dump_path必须配置,表示导出dump文件的存储路径。
 - 通过dump_mode参数控制导出watcher_nodes中所配置算子的哪部分数据,当前仅支持配置为output。
 
配置文件中的示例内容如下,配置效果为:当执行完A算子和B算子时,会把C算子和D算子的输出Dump出来,导出C算子opType.A_To_C.*、D算子opType.A_To_D.*、C算子opType.B_To_C.*、D算子opType.B_To_D.*四个dump文件,用于排查A算子、B算子是否会踩踏C算子、D算子的输出内存。
{
    "dump":{
        "dump_list":[
            {
                "layer":["A", "B"],
                "watcher_nodes":["C", "D"]
            }
        ],
        "dump_path":"/home/",
        "dump_mode":"output",
        "dump_scene":"watcher"
    }
}
    此处收集的dump文件无法通过文本工具直接查看其内容,若需查看dump文件内容,先将dump文件转换为numpy格式文件后,再通过Python查看numpy格式文件,详细转换步骤请参见《精度调试工具用户指南》中的“扩展功能>查看dump数据文件”章节。
默认Device配置示例
default_device参数处设置Device ID,Device ID可设置为0或十进制正整数,用户可调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)]。
配置文件中的示例内容如下:
{
    "defaultDevice":{
        "default_device":"0"
    }
}
   AI Core栈空间大小配置示例
aicore_stack_size参数处设置栈空间大小,单位为字节。
要求传入的aicore_stack_size是16K的整数倍,最小值为32K。若传入的aicore_stack_size小于32K,则按默认配置32K处理;若传入aicore_stack_size不是整数倍,则会向上取整,确保其为16K的整数倍。
配置文件中的示例内容如下:
{
    "StackSize":{
        "aicore_stack_size":32768
    }
}
   参考资源
当前还提供了其它使能Dump或Profiling的接口,如下,与aclInit不同的是,以下这些接口相对灵活,可以在一个进程内调用多次接口,每次调用接口时可以基于不同的Dump配置或Profiling配置。
- 获取Dump数据,参见函数:init_dump、函数:set_dump、函数:finalize_dump。
 - 获取Profiling数据,参见Profiling数据采集。