使用约束
权限约束
- 使用Profiling功能前请确保执行用户的umask值大于等于0027,否则会导致获取的Profiling数据所在目录和文件权限过大。
- 若要查看umask的值,则执行命令:umask
- 若要修改umask的值,则执行命令:umask 新的取值
- 请确保Profiling数据保存在不含软链接的当前用户目录下,否则可能引起安全问题。
执行约束
数据落盘约束
- 性能数据采集时间建议在5min以内,同时推荐用户设置的内存大小在20G以上(例如容器配置:docker run --memory=20g 容器名)。
- 采集单个Profiling任务数据并落盘时,在打开所有采集项的情况下,需要保证磁盘读写速度,具体规格如下:
- 仅使用单个Device进行推理时,磁盘读写速度不低于50MB/s。
- 仅使用单个Device进行训练时,磁盘读写速度不低于60MB/s。
- 多个Device场景下,磁盘读写速度不低于:单个Device磁盘读写速度规格 * Device数。
- 采集Profiling数据过程中如果配置的落盘路径磁盘空间已满,会出现性能数据无法落盘情况,须保证足够的磁盘空间。落盘的性能原始数据需要用户自行清理,预防磁盘空间被占满(Atlas 200/300/500 推理产品);落盘的性能原始数据可以通过配置storage-limit参数来预防磁盘空间被占满(Atlas 推理系列产品)(Atlas 训练系列产品)。
- 解析Profiling数据过程中如果配置的落盘路径磁盘或用户目录空间已满,会出现解析失败的或文件无法落盘的情况,须自行清理磁盘或用户目录空间。
兼容性和场景约束
- Profiling工具需要配套Python版本使用,本功能要求Python3.7及以上版本。
- 应用工程开发务必遵循《应用软件开发指南 (C&C++)》手册,调用aclInit()接口完成AscendCL初始化和调用aclFinalize()接口完成AscendCL去初始化,才能获取到完整的Profiling性能数据。
如果应用程序已调用aclInit()接口而未调用aclFinalize()接口导致Profiling流程未正常结束,采集数据会不完整,最后1秒内Profiling已采集的数据可能因未及时同步而丢失,但丢失的数据不大于2M,不影响已同步的性能数据分析。
- 使用pyACL API开发的应用工程在通过msprof命令行方式采集Profiling数据时,不支持在工程Python脚本中打开相对路径文件。Python脚本中包含打开相对路径文件操作会导致采集Profiling数据报错。
- 算力切分场景Profiling开关支持情况:
- 以下参数项以msprof命令行和Profiling options开关为例。
- Atlas 200/300/500 推理产品场景不涉及算力切分。
表1 算力切分场景Profiling开关支持情况 开关
采集内容
Atlas 推理系列产品
Atlas 训练系列产品
msproftx
msproftx
支持
支持
host-sys=cpu
cpu
支持
支持
host-sys=mem
memory
支持
支持
host-sys=disk
disk
不支持
不支持
host-sys=network
network
支持
支持
host-sys=osrt
osrt
不支持
不支持
ascendcl
ACL
支持
支持
model-execution
GE
支持
支持
runtime-api
task-time
task_trace(options)
Runtime
支持
支持
hccl
task_trace(options)
HCCL
支持
支持
aicpu
DATAPROCESS
支持
支持
aic-metrics
aic-mode=task-base
AICORE(task-based)
支持
支持
training_trace(options)
task-time
task_trace(options)
TSFW
不支持
不支持
l2
L2 Cache
不支持
不支持
sys-io-profiling
NIC、RoCE
不支持
不支持
dvpp-profiling
DVPP
支持
不支持
sys-hardware-mem
片上内存、LLC
不支持
不支持
sys-interconnection-profiling
PCIe、HCCS
不支持
不支持
sys-cpu-profiling
AICPU、CTRL CPU、TSCPU
不支持
不支持
sys-profiling
sys-pid-profiling
cpu、memory
不支持
不支持
aic-metrics
aic-mode=sample-base
AICORE(sample-based)
不支持
不支持
task-time
task_trace(options)
HWTS_LOG
支持
支持
training_trace(options)
FMK
支持
支持