PrecisionDebugger模块
功能说明
PrecisionDebugger模块包含dump和溢出检测功能的总体配置项。可以指定dump目录,设置dump或溢出检测功能,指定dump的卡和迭代。
可以在from ptdbg_ascend import *和模型初始化之间的任意位置添加该模块。
原型
PrecisionDebugger(dump_path=None, hook_name=None, rank=None, step=[], enable_dataloader=False, model=None):
参数名 |
说明 |
是否必选 |
---|---|---|
dump_path |
设置dump数据目录路径,参数示例:"./dump_path"。 默认在dump_path目录下生成ptdbg_dump_{version}目录,并在该目录下生成dump.pkl文件以及dump数据文件保存目录。 当configure_hook函数配置了mode参数时,dump.pkl文件以及dump数据文件保存目录名称添加mode参数值为前缀,详情请参见“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配置。应配置为大于0的正整数,且须根据实际卡的Rank ID配置,若所配置的值大于实际训练所运行的卡的Rank ID,则dump数据为空,比如当前环境Rank ID为03卡,此时若配置Rank ID为4或不存在的10等其他值,此时dump数据为空。 |
否 |
step |
指定dump某个step的数据,默认未配置。表示dump所有step数据。dump特定step时,须指定为训练脚本中存在的step。step为list格式,可配置逐个step,例如:step=[0,1,2];也可以配置step范围,例如:step=list(range(0,9)),表示dump第0到第8个step。 |
否 |
enable_dataloader |
自动控制开关,可取值True(开启)或False(关闭),默认为False。配置为True后自动识别dump step参数指定的迭代,并在该迭代执行完成后退出训练,此时start和stop函数可不配置,开启该开关要求训练脚本是通过torch.utils.data.dataloader方式加载数据;配置为False则需要配置start和stop函数,并在最后一个stop函数后或一个step结束的位置添加debugger.step()。 |
否 |
model |
开启model模式,传入网络模型实例化的对象,配置该参数后,dump操作仅dump网络中init方法里调用的方法(nn.Module类),不会对所有API进行dump。参数示例: model=net,net为网络模型实例化的对象名称。默认未配置。 配置该参数时,PrecisionDebugger模块请在模型实例化之后调用。 该模式不支持“溢出检测场景”和“模块级精度数据dump”。 |
否 |