mindspore/docs/api/api_python/mindspore/mindspore.Profiler.rst

64 lines
4.0 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

mindspore.Profiler
========================
.. py:class:: mindspore.Profiler(**kwargs)
MindSpore用户能够通过该类对神经网络的性能进行采集。可以通过导入 `mindspore.Profiler` 然后初始化Profiler对象以开始分析使用 `Profiler.analyse()` 停止收集和分析。可通过Mindinsight工具可视化分析结果。目前Profiler支持AICORE算子、AICPU算子、HostCPU算子、内存、设备通信、集群等数据的分析。
参数:
- **output_path** (str, 可选) - 表示输出数据的路径。默认值:"./data"。
- **profile_communication** (bool, 可选) - 仅限Ascend表示是否在多设备训练中收集通信性能数据。当值为True时收集这些数据。在单台设备训练中该参数的设置无效。默认值False。
- **profile_memory** (bool, 可选) - 仅限Ascend表示是否收集Tensor内存数据。当值为True时收集这些数据。默认值False。
- **start_profile** (bool, 可选) - 该参数控制是否在Profiler初始化的时候开启数据采集。默认值True。
- **aicore_metrics** (int, 可选) - 仅限Ascend收集的AICORE性能数据类型。值必须包含在[-1, 0, 1, 2, 3, 4, 5]默认值0每种类型包含的数据项如下
- -1: 不收集任何AICORE数据。
- 0: ArithmeticUtilization包含mac_fp16/int8_ratio、vec_fp32/fp16/int32_ratio、vec_misc_ratio等。
- 1: PipeUtilization包含vec_ratio、mac_ratio、scalar_ratio、mte1/mte2/mte3_ratio、icache_miss_rate等。
- 2: Memory包含ub\_read/write_bw、l1_read/write_bw、l2_read/write_bw、main_mem_read/write_bw等。
- 3: MemoryL0包含l0a_read/write_bw、l0b_read/write_bw、l0c_read/write_bw等。
- 4: ResourceConflictRatio包含vec_bankgroup/bank/resc_cflt_ratio等。
- 5: MemoryUB包含ub\_read/write_bw_mte, ub\_read/write_bw_vector, ub\_/write_bw_scalar等。
- **l2_cache** (bool, 可选) - 仅限Ascend是否收集l2缓存数据当值为True时收集这些数据。默认值False。
- **sync_enable** (bool, 可选) - 仅限GPUprofiler是否用同步的方式收集算子耗时默认值True。
- True: 同步方式在把算子发送到GPU之前在CPU端记录开始时间戳。然后在算子执行完毕返回到CPU端后再记录结束时间戳。算子耗时为两个时间戳的差值。
- False: 异步方式算子耗时为从CPU发送到GPU的耗时。这种方式能减少因增加profiler对训练时间的影响。
异常:
- **RuntimeError** - 当CANN的版本与MindSpore版本不匹配时生成的ascend_job_id目录结构MindSpore无法解析。
.. py:method:: analyse()
收集和分析训练的性能数据,支持在训练中和训练后调用。样例如上所示。
.. py:method:: op_analyse(op_name, device_id=None)
获取primitive类型的算子性能数据。
参数:
- **op_name** (str 或 list) - 表示要查询的primitive算子类型。
- **device_id** (int, 可选) - 设备卡号表示指定解析哪张卡的算子性能数据。在网络训练或者推理时使用该参数可选。基于离线数据解析使用该接口时默认值0。
异常:
- **TypeError** - op_name参数类型不正确。
- **TypeError** - device_id参数类型不正确。
- **RunTimeError** - 在Ascend上使用该接口获取性能数据。
.. py:method:: start()
开启Profiler数据采集。可以按条件开启Profiler。
异常:
- **RuntimeError** - profiler已经开启。
- **RuntimeError** - 停止Minddata采集后不支持重复开启。
- **RuntimeError** - 如果start_profile参数未设置或设置为True。
.. py:method:: stop()
停止Profiler。可以按条件停止Profiler。
异常:
- **RuntimeError** - profiler没有开启。