昇腾社区首页
中文
注册

PrecisionDebugger

概述

PrecisionDebugger模块包含dump和溢出检测功能的总体配置项。可以指定dump目录,设置dump或溢出检测功能,指定dump的卡和迭代。

可以在from ptdbg_ascend import *和模型初始化之间的任意位置添加该模块。

接口原型

PrecisionDebugger(dump_path=None, hook_name=None, rank=None, step[], enable_dataloader=False)
表1 参数说明

参数名

说明

是否必选

dump_path

设置dump数据目录路径,参数示例:"./dump_path"。dump_path的父目录须为已存在目录。

默认在指定的dump_path路径下生成ptdbg_dump_{version}目录,并在该目录下生成dump.pkl文件以及dump数据文件保存目录。

configure_hook函数配置了mode参数时,dump.pkl文件以及dump数据文件保存目录名称将添加mode参数值为前缀,详情请参见PyTorch模型迁移和训练指南中的“dump数据存盘说明”。

未配置dump_path时,也可以通过环境变量ASCEND_WORK_PATH配置dump路径,此时dump数据将落盘在${ASCEND_WORK_PATH}/dump_data下,自定义配置dump_path优先级高于环境变量,dump_path和环境变量需要二选一。

hook_name

dump模式,可取值dump和overflow_check,表示dump和溢出检测功能,二选一。

rank

指定对某张卡上的数据进行dump或溢出检测,默认未配置(表示dump所有卡的数据),须根据实际卡的Rank ID配置。

step

指定dump某个step的数据。

enable_dataloader

自动控制开关,可取值True或False,配置为True后自动识别dump step参数指定的迭代,此时start和stop函数可不配置,配置为False则需要配置start和stop函数并在最后一个stop函数后或一个step结束的位置添加debugger.step()。

接口示例

  • 开启Dump:
    from ptdbg_ascend import PrecisionDebugger as PD
    debugger = PD(dump_path="./dump_path", hook_name="dump")
    
    # 模型初始化
    # 下面代码也可以用PD.start()和PD.stop()
    debugger.start()
    
    ...
    
    debugger.stop()
  • 开启溢出检测:
    from ptdbg_ascend import PrecisionDebugger as PD
    debugger = PD(dump_path="./dump_path", hook_name="overflow_check")
    
    # 模型初始化
    # 下面代码也可以用debugger.start()和debugger.stop()
    PD.start()
    
    ...
    
    PD.stop()