公共API
- davincirunsdk.init_rank_table() Dict [源代码]
SDK,训练作业中用户应使用此函数转换hccl v0.1 -> v1.0
- 返回
设置后的环境变量, False则为未找到rank_table,跳过设置
- 返回类型
Dict or False
- davincirunsdk.set_random_ms_cache_dir()[源代码]
用于暂时设置MindSpore compiler缓存文件夹,用完自动销毁;
这个方法允许你在启动分布式训练后做一些额外的工作,如果不需要,可以使用start_and_wait_distributed_train
示例
>>> with set_random_ms_cache_dir(): >>> manager = start_distributed_train(train_command) >>> ... # do some extra work >>> wait_distributed_train(manager)
Returns:
- davincirunsdk.start_and_wait_distributed_train(command, work_dir='./', log_dir='./log', *, output_notebook=False, random_cache_dir=True, destroy_when_finished=True, raise_exception=True)[源代码]
启动并等待分布式训练完成
- 参数
command (List) -- command list,用于启动训练脚本
work_dir (Path-like string) -- 工作目录,如果command存在相对路径,需要确保从工作目录访问相对路径正确
log_dir (Path-like string) -- 日志输出目录
output_notebook -- 默认为False,当为True时,将自动输出日志到notebook中;如果在非notebook环境中打开,不应当有任何作用
random_cache_dir -- 默认为True,是否使用随机缓存目录,避免在工作目录下生成大量算子缓存
destroy_when_finished -- 默认为True,是否在结束时销毁所有子进程;通常及时销毁可以帮助释放NPU资源,除非你想深入进程细节
raise_exception -- 默认为True,是否在子进程失败时raise exception,以确保外部得到exception提示,这在流水线中判断执行结果很有用
示例
>>> start_and_wait_distributed_train(train_command)
- 返回
状态码,0为正常结束,1为异常
- 抛出
DistributedRuntimeError -- 分布式训练失败,
raise_exception=True
可抛出.
- davincirunsdk.start_distributed_train(command, work_dir='./', log_dir='./log', *, output_notebook=False)[源代码]
启动分布式训练任务
- 参数
command (List) -- command list,用于启动训练脚本
work_dir -- 工作目录,如果command存在相对路径,需要确保从工作目录访问相对路径正确
log_dir -- 日志输出目录
output_notebook -- 默认为False,当为True时,将自动输出日志到notebook中;如果在非notebook环境中打开,不应当有任何作用
示例
>>> with set_random_ms_cache_dir(): >>> manager = start_distributed_train(train_command) >>> ... # do some extra work >>> wait_distributed_train(manager)
- 返回
FMKManager
- davincirunsdk.wait_distributed_train(fmk_manager, destroy_when_finished=True, raise_exception=True)[源代码]
等待分布式训练完成
- 参数
fmk_manager -- FMKManager, 通常是使用start_distributed_train的返回
destroy_when_finished -- 默认为True,是否在结束时销毁所有子进程;通常及时销毁可以帮助释放NPU资源,除非你想深入进程细节
raise_exception -- 默认为True,是否在子进程失败时raise exception,以确保外部得到exception提示,这在流水线中判断执行结果很有用
- 返回
状态码,0为正常结束,1为异常
- 抛出
DistributedRuntimeError -- 分布式训练失败,
raise_exception=True
可抛出.