notebook.sdk
- davincirunsdk.notebook.sdk._set_extra_env(rank_table)[源代码]
训练任务转换hccl V0.1 -> v1.0时,额外适配的环境变量,
Example
展示了当前的配置- 参数
rank_table -- RankTable,可以是V0或者V1
示例
>>> os.environ['RANK_START'] = str(rank_start) >>> os.environ['RANK_SIZE'] = str(rank_table.get_device_num())
Returns:
- davincirunsdk.notebook.sdk.generate_rank_table()[源代码]
训练作业时用于hccl v0.1 -> v1.0转换
如果当前已经有了v1.0的hccl文件,直接使用get_rank_table
- 返回
RankTable, 可能是RankTableV0或RankTableV1
- davincirunsdk.notebook.sdk.init_rank_table() Dict [源代码]
SDK,训练作业中用户应使用此函数转换hccl v0.1 -> v1.0
- 返回
设置后的环境变量, False则为未找到rank_table,跳过设置
- 返回类型
Dict or False
- davincirunsdk.notebook.sdk.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.notebook.sdk.set_rank_env(rank_table)[源代码]
这里重新设置了hccl文件的地址,主要是针对V0.1转换为V1.0转换的场景
- 参数
rank_table -- RankTable,可以是V0或者V1
Returns:
- davincirunsdk.notebook.sdk.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.notebook.sdk.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.notebook.sdk.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
可抛出.