前置条件
完成训练数据集准备,完成存储配置准备(ZOS/HPFS),详见我的数据集。
如果预置模型不满足开发要求,需要基于自有模型,需要完成模型文件准备,详见模型管理。
如果预置镜像不满足开发要求,需要基于自有镜像,需要完成镜像文件准备,详见我的镜像。
如果需要使用代码包,需要完成代码包准备,详见我的代码包。
创建训练任务
登录智算服务平台。
创建训练任务入口:
入口一:在左侧菜单选择“模型定制”-“训练任务”,点击“新建任务”,进入任务创建页面。
入口二:在左侧菜单选择“模型定制”-“开发机”,点击开发机列表的“开始训练”。
| 参数类型 | 参数名 | 说明 |
|---|---|---|
基本信息 | 任务名称 | 必填,训练任务名称。 |
描述 | 非必填,输入128个字符的描述。 | |
数据集配置 | 训练数据集 | 最多可添加10个,选择基础数据集或者标注数据集。 |
模型配置 | 模型来源 | 我的模型:最多5个,将模型管理中的模型文件挂载到容器内路径。 预置模型:最多5个,将预置模型挂载到容器内路径。 |
模型文件 | 选择我的模型具体的模型文件及版本。 选择预置模型文件及具体版本。 | |
存储配置 | ZOS对象存储 | 最多选择5个,如果没有提前创建,可以点击“去创建对象存储”完成创建。 |
HPFS并行文件系统 | 最多选择5个,如果没有提前创建,可以点击“去创建HPFS”完成创建。 | |
环境配置 | 文件目录 | 平台可持久化的挂载目录,后续可以在该目录下读写文件,是用户间隔离的。 |
训练代码 | 非必填,可以选择目标代码包。 | |
启动命令 | 必填。如果您的代码包是文件夹,则需要填写python xx.py,其中xx.py是您的训练代码;如果您的代码中有启动参数,可以直接填写;若您使用的代码包是压缩包文件,需要在启动命令中添加解压命令zip。 | |
资源配置 | 镜像来源 | 支持选择系统预置镜像、自定义镜像、共享容器镜像和他人分享镜像。 |
集群 | 支持公共集群和专属集群两种类型,其中专属集群需要提前购买。 | |
资源配额 | 选择目标资源配额,展示当前总资源及使用情况。 | |
资源规格 | 选择当前任务所需要的资源规格。 | |
训练模式 | 默认为DDP(分布式训练),如果在单一计算设备上进行机器学习模型训练选择单机训练。 | |
容错训练 | 启动容错训练后,如果训练过程中节点异常,系统会自动重新启用一个新的节点来替换异常节点,从上一个checkpoint开始继续训练。 | |
高级配置 | 断点续训 | 支持昇腾NPU以及英伟达系列GPU的断点续训。 开启后,如因为节点故障导致训练任务异常,会封锁故障节点,重新调度训练任务;同时可以配置断点续训策略,支持设置【每次错误的最大重启次数】【容错重启策略】【容错策略】等参数。 |
算力健康检查 | 检查昇腾机器节点的显卡状态、显卡通信状态和交换机状态,以及带宽的压测值。可训练任务详情页查看具体信息。 |
训练任务管理
训练任务创建完成后进入“资源准备中”-“排队中”-“环境准备中”‘“开始运行”-“运行完成”,在这个过程中如果发生任务配置错误、耗时过长或者资源冲突时,可以点击“停止”和“删除”。
复制任务:如果已经创建了一个训练任务可以在列表中点击“复制”,复用该任务的配置和输入参数创建一个新的训练任务。
任务详情:支持查看当前训练任务的配置参数(基础信息、数据集、挂载模型、节点信息)、事件、日志(节点维度)、监控(GPU使用率、CPU使用率内存、网络IO等)、查看Tensorboard和算力检查。任务每次启动都会生成一个新的实例,这里叫做一次运行记录。一次运行记录显示了实例ID、实例最终状态、启动时间。
设置告警
配置告警发送事件:通过告警设置可以监控训练任务状态任务异常、任务断点续训和任务运行完成。默认这三类事件都不开启告警。
配置告警发送方式:消息会自动发送到您天翼云账号对应的手机号和邮箱内,可前往账号中心进行设置或修改。
后续操作
保存至模型管理:将当前训练任务实例中的模型文件保存到模型仓库中统一管理,模型仓库中会新增一个来源为“训练任务”的模型。后续可以基于此模型进行开发机、训练任务和服务部署任务。
查看训练任务监控
点击训练任务名称,进入任务详情页面,切换到监控tab,可查看训练任务的资源使用情况。
统计说明及名词解释:
作业:指运行一次任务,由于训练任务可以多次运行,此处一次运行记录即一个作业;在左侧运行记录中切换其他运行ID,可查看不同作业的监控;
实例:指pod实例,是Kubernetes的最小调度单元;
作业维度与实例维度:一般在训练时,一次训练作业会起多个Pod实例。在实例维度,展示了不同实例的最小粒度的监控,此时可以精确到某个实例中的某一张卡;在作业维度,统计了该作业下的所有实例(Pod)或显卡的聚合值,以反映作业整体的资源使用情况,一般使用率、速率以平均值聚合,使用量以累加值聚合。
GPU细粒度指标:当您使用GPU卡时,可以查看GPU剖析类指标,此类指标需要您对GPU的结构有所了解。例如,GPU利用率显示了100%,不代表代码高效利用了GPU,仅能够展示有核函数在用GPU资源,但有多少个SM在使用,GPU是否真的在忙,仅看GPU利用率这一指标具有局限性。英伟达官方提供了DCGM Profiling指标,可从多个维度查看GPU的使用情况。您可以根据细粒度指标对GPU的利用情况进行剖析,优化代码逻辑,更充分的利用资源。
图像展示:
放大与明细:点击指标右侧“>”箭头,可展开指标大图,大图展示对图像上点的统计细项,包括最大值、最小值、平均值、中位数、75分位数;
图例:点击图例,可以对线段进行展示/隐藏;
时间轴:滑动图像下方时间轴,可以在已选定时间的基础上,查看更小范围的监控。
监控指标:
| 类别 | 指标 | 维度 | 解释 |
| CPU、内存与网络监控 | CPU使用率 | 作业、实例 | CPU在单位时间内,CPU被任务占用使用的时间占比。 |
| CPU使用量 | 作业、实例 | CPU 实际使用的核数。 | |
| 内存使用率 | 作业、实例 | 已用内存占总内存的百分比。 | |
| 内存使用量 | 作业、实例 | 内存实际使用量。 | |
| 普通网络吞吐 | 作业、实例 | 传统以太网的实际数据传输速率,即单位时间内实际传输的数据量。 | |
| 显卡基础指标 | GPU/NPU使用率 | 作业、实例 | 在单位时间内,显卡被任务占用使用的时间占比。 |
| GPU/NPU显存使用率 | 作业、实例 | 已用显存占总显存的百分比。 | |
| GPU/NPU显存使用量 | 作业、实例 | 显存实际使用量。 | |
| GPU/NPU卡温度 | 实例 | 显卡温度。 | |
| GPU/NPU功耗 | 实例 | 显卡功耗。 | |
NPU卡健康状态
| 实例 | 每张卡的NPU芯片健康状态。 取值范围:{0,1} 1:表示在过去一段时间间隔内芯片处于健康状态; 0:表示在过去一段时间间隔内出现了不健康状态。 | |
| GPU细粒度指标 | GPU应用时钟频率 | 作业、实例 | 显卡的核心频率,指GPU运算核心的工作速度,即GPU内部各个计算单元的工作频率。它决定了显卡在单位时间内可完成的任务数量,更高的时钟频率意味着更快的计算速度和更好的性能。 |
| GPU显存应用时钟频率 | 作业、实例 | 显存频率指的是显卡所使用的显存的工作频率,显存频率影响了显卡的数据传输速度,包括图像纹理和帧缓冲区的读写速度。较高的显存频率可以提供更快的数据传输,频率越高,显存每秒传输的数据量越大。 | |
| GPU显存带宽利用率 | 作业、实例 | 以英伟达GPU V100为例,其最大内存带宽为900 GB/sec,如果当前的内存带宽为450 GB/sec,则内存带宽利用率为50%。 | |
| GPU引擎活跃情况 | 作业、实例 | 表示在一个时间间隔内,Graphics或Compute引擎处于Active的时间占比。 Graphics或Compute引擎处于Active是指Graphics或Compute Context绑定到线程,并且Graphics或Compute Context处于Busy状态。 该值表示所有Graphics和Compute引擎的平均值。 | |
| GPU线程束活跃时间占比 | 作业、实例 | 表示在一个时间间隔内,至少一个线程束在一个SM(Streaming Multiprocessor)上处于Active的时间占比。 线程束处于Active是指一个线程束被调度且分配资源后的状态,可能是在Computing、也可能是非Computing状态(例如等待内存请求)。 该值表示所有SM的平均值,小于0.5表示未高效利用GPU,大于0.8是必要的。 假设一个GPU有N个SM: 一个核函数在整个时间间隔内使用N个线程块运行在所有的SM上,此时该值为1(100%)。 一个核函数在一个时间间隔内运行N/5个线程块,此时该值为0.2。 一个核函数使用N个线程块,在一个时间间隔内,仅运行了1/5个周期的时间,此时该值为0.2。 | |
| GPU线程束占用率 | 作业、实例 | 表示在一个时间间隔内,驻留在SM上的线程束与该SM最大可驻留线程束的比例。 该值表示一个时间间隔内的所有SM的平均值。 占用率越高不代表GPU使用率越高。只有在GPU内存带宽受限的工作负载(DCGM_FI_PROF_DRAM_ACTIVE)情况下,更高的占用率表示更有效的GPU使用率。 | |
| GPU张量通道活跃周期分数 | 作业、实例 | 表示Tensor(HMMA/IMMA) Pipe处于Active状态的周期比率。 该值表示一个时间间隔内的平均值,较高的值表示Tensor Cores的利用率较高。 该值为1(100%)表示在整个时间间隔内每隔一个指令周期发出一个Tensor指令(两个周期完成一条指令)。 假设该值为0.2(20%),可能有如下情况: 在整个时间间隔内,有20%的SM的Tensor Core以100%的利用率运行。 在整个时间间隔内,有100%的SM的Tensor Core以20%的利用率运行。 在整个时间间隔的1/5时间内,有100%的SM上的Tensor Core以100%利用率运行。 其他组合模式。 | |
| GPU显存拷贝活跃周期分数 | 作业、实例 | 表示显存带宽利用率将数据发送到设备显存或从设备显存接收数据的周期分数。 该值表示时间间隔内的平均值,较高的值表示设备显存的利用率较高。 该值为1(100%)表示在整个时间间隔内的每个周期执行一条 DRAM 指令(实际上,峰值约为 0.8 (80%) 是可实现的最大值)。 假设该值为0.2(20%),表示20%的周期在时间间隔内读取或写入设备显存。 | |
| GPU FP64通道活跃周期分数 | 作业、实例 | 注意:并非所有型号的显卡都有此数据,如A10与L40S型号不支持此精度。 表示FP64(双精度)Pipe处于Active状态的周期分数。 该值表示一个时间间隔内的平均值,较高的值代表FP64 Cores有较高的利用率。 该值为 1(100%)表示在整个时间间隔内上每四个周期(以Volta类型卡为例)执行一次FP64指令。 假设该值为0.2(20%),可能有如下情况: 在整个时间间隔内,有20%的SM的FP64 Core以100%的利用率运行。 在整个时间间隔内,有100%的SM的FP64 Core以20%的利用率运行。 在整个时间间隔的1/5时间内,有100%的SM上的FP64 Core以100%利用率运行。 其他组合模式。 | |
| GPU FP32通道活跃周期分数 | 作业、实例 | 表示乘加操作FMA管道处于Active的周期分数,乘加操作包括FP32(单精度)和整数。 该值表示一个时间间隔内的平均值,较高的值代表FP32 Cores有较高的利用率。 该值为1(100%)表示在整个时间间隔内上每两个周期(Volta类型卡为例)执行一次FP32指令。 假设该值为0.2(20%),可能有如下情况: 在整个时间间隔内,有20%的SM的FP32 Core以100%的利用率运行。 在整个时间间隔内,有100%的SM的FP32 Core以20%的利用率运行。 在整个时间间隔的1/5时间内,有100%的SM上的FP32 Core以100%利用率运行。 其他组合模式。 | |
| GPU FP16通道活跃周期分数 | 作业、实例 | 表示FP16(半精度)管道处于Active的周期分数。 该值表示一个时间间隔内的平均值,较高的值代表FP16 Cores有较高的利用率。 该值为 1 (100%) 表示在整个时间间隔内上每两个周期(Volta类型卡为例)执行一次FP16指令。 假设该值为0.2(20%),可能有如下情况: 在整个时间间隔内,有20%的SM的FP16 Core以100%的利用率运行。 在整个时间间隔内,有100%的SM的FP16 Core以20%的利用率运行。 在整个时间间隔的1/5时间内,有100%的SM上的FP16 Core以100%利用率运行。 其他组合模式。 | |
| GPU PCIe传输数据速率 | 作业、实例 | 表示通过PCIe总线传输的数据速率,包括协议标头和数据有效负载。 该值表示一个时间间隔内的平均值,而不是瞬时值。 该速率在时间间隔内平均。例如,在1秒内传输1 GB数据,则无论以恒定速率还是突发传输数据,速率都是1 GB/s。理论上的最大PCIe Gen3带宽为每通道985 MB/s。 | |
| GPU PCIe接收数据速率 | 作业、实例 | 表示通过PCIe总线接收的数据速率,包括协议标头和数据有效负载。 该值表示一个时间间隔内的平均值,而不是瞬时值。 该速率在时间间隔内平均。例如,在1秒内传输1 GB数据,则无论以恒定速率还是突发传输数据,速率都是1 GB/s。理论上的最大PCIe Gen3带宽为每通道985 MB/s。 | |
| GPU NVLINK传输数据速率 | 作业、实例 | 表示通过NVLink传输的数据速率,不包括协议标头。 该值表示一个时间间隔内的平均值,而不是瞬时值。 该速率在时间间隔内平均。例如,在1秒内传输1 GB数据,则无论以恒定速率还是突发传输数据,速率都是1 GB/s。理论上,最大NVLink Gen2带宽为每个方向每个链路25 GB/s。 | |
| GPU NVLINK接收数据速率 | 作业、实例 | 表示通过NVLink接收的数据速率,不包括协议标头。 该值表示一个时间间隔内的平均值,而不是瞬时值。 该速率在时间间隔内平均。例如,在1秒内传输1 GB数据,则无论以恒定速率还是突发传输数据,速率都是1 GB/s。理论上,最大NVLink Gen2带宽为每个方向每个链路25 GB/s。 |