Exporting Profile Data

Applicable Products

Product

Supported

Ascend 950PR/Ascend 950DT

√

Atlas A3 training products/Atlas A3 inference products

√

Atlas A2 training products/Atlas A2 inference products

√

Atlas 200I/500 A2 inference products

√

Atlas inference products

√

Atlas training products

√

Function

Exports profile data.

Precautions

Before exporting profile data, complete the operations in Parsing Profile Data.

Command Format

  • Exporting timeline data and .db files
    python3 msprof.py export timeline -dir <dir> [-reports <reports_sample_config.json>] [--model-id <model-id>] [--iteration-id <iteration_id>] [--iteration-count <iteration_count>] [--clear]
  • Exporting summary data and .db files
    python3 msprof.py export summary -dir <dir> [--model-id <model-id>] [--iteration-id <iteration_id>] [--iteration-count <iteration_count>] [--format <export_format>] [--clear]
  • Exporting .db files
    python3 msprof.py export db -dir <dir>

Command-line Options

Table 1 Command-line options

Option

Description

Optional/Required

-dir, or --collection-dir

Directory of collected profile data. The value must be PROF_XXX or the parent directory of PROF_XXX.

Example: /home/HwHiAiUser/profiler_data/PROF_XXX

Required

-reports

After the custom reports_sample_config.json configuration file is passed, the corresponding profile data files are exported based on the range specified in the configuration file. The parameter implementation is the same as that of msprof --reports. For details, see Example (--reports).

Optional

--model-id

Model ID. The value must be a positive integer. This parameter must be used together with --iteration-id to export the profile data of a specified computing iteration in the model. If neither --iteration-id nor --model-id is specified, all profile data is exported by default.

  • For Atlas A2 training products/Atlas A2 inference products, --model-id can be set to 4294967295, which specifies the step mode. That is, the value of --iteration-id specifies parsing by step. Only profile data of the MindSpore framework (version 2.3 or later) can be parsed.
  • For Atlas A3 training products/Atlas A3 inference products, --model-id can be set to 4294967295, which specifies the step mode. That is, the value of --iteration-id specifies parsing by step. Only profile data of the MindSpore framework (version 2.3 or later) can be parsed.
  • If --model-id is set to other values, this option specifies the iteration ID for graph-based statistics collection. (The iteration ID is incremented by 1 each time a graph is executed. When a script is compiled into multiple graphs, the iteration ID is different from the step ID at the script layer.)

Optional

--iteration-id

Iteration ID. The value must be a positive integer. This parameter must be used together with --model-id to export the profile data of a specified computing iteration in the model. If neither --iteration-id nor --model-id is specified, all profile data is exported by default.

  • For Atlas A2 training products/Atlas A2 inference products, --model-id can be set to 4294967295, which specifies the iteration ID whose data is collected each step. The iteration ID increases by 1 each time a step is executed. Only profile data of the MindSpore framework (version 2.3 or later) can be parsed.
  • For Atlas A3 training products/Atlas A3 inference products, --model-id can be set to 4294967295, which specifies the iteration ID whose data is collected each step. The iteration ID increases by 1 each time a step is executed. Only profile data of the MindSpore framework (version 2.3 or later) can be parsed.
  • If --model-id is set to other values, this option specifies the iteration ID for graph-based statistics collection. (The iteration ID is incremented by 1 each time a graph is executed. When a script is compiled into multiple graphs, the iteration ID is different from the step ID at the script layer.)

Optional

--iteration-count

Number of consecutive steps for which data will be exported. The value is an integer ranging from 1 to 5. The value of --iteration-id is the start step. For example, if --iteration-count is set to 3 and --iteration-id is set to 1, data for steps 1, 2, and 3 will be exported.

Optional

--format

File format, either csv (default) or json.

This option is supported only when the summary parameter is configured.

The following uses summary files in .csv format as examples.

Optional

--clear

Data clearance mode. After this option is enabled, the sqlite directory in PROF_XXX/device_{id} is deleted after profile data is exported, so as to save storage space. When this parameter is configured, the data clearance mode is enabled. This parameter is not configured by default.

Optional

-h or --help

Help information.

Optional

Example

  1. Log in to the environment where the Toolkit package is installed.
  2. Switch to the directory where the msprof.py script is located.

    ${INSTALL_DIR}/tools/profiler/profiler_tool/analysis/msprof. Replace ${INSTALL_DIR} with the CANN component directory. For example, if the installation is performed by the root user, the default file storage path is /usr/local/Ascend/cann.

  3. Export profile data. The timeline, summary, and db files can be exported. The command formats are as follows:
    • Exporting timeline data and .db files
      python3 msprof.py export timeline -dir /home/HwHiAiUser/profiler_data/PROF_XXX
    • Exporting summary data and .db files
      python3 msprof.py export summary -dir /home/HwHiAiUser/profiler_data/PROF_XXX
    • Exporting .db files: Generate a .db file (msprof_timestamp.db) that summarizes all profile data.
      python3 msprof.py export db -dir /home/HwHiAiUser/profiler_data/PROF_XXX
    • By default, all profile data is exported.
    • In single-operator scenarios or scenarios where only AI processor system data is collected (that means the --application option is not specified in the msprof profiling command), --iteration-id and --model-id are not supported.

Output Description

After the preceding command is executed, find the mindstudio_profiler_output directory and the msprof_*.db file in the PROF_XXX directory under collection-dir.

The following shows the directory structure of the generated profile data:

  • Single-process collection
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    └── PROF_XXX
          ├── device_0
          │    └── data
          ├── device_1
          │    └── data
          ├── host
          │    └── data
          ├── msprof_*.db
          └── mindstudio_profiler_output
                ├── msprof_{timestamp}.json
                ├── step_trace_{timestamp}.json
                ├── xx_*.csv
                 ...
                └── README.txt
    
  • Multi-process collection
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    └── PROF_XXX1
          ├── device_0
          │    └── data
          ├── host
          │    └── data
          ├── msprof_*.db
          └── mindstudio_profiler_output
                ├── msprof_{timestamp}.json
                ├── step_trace_{timestamp}.json
                ├── xx_*.csv
                 ...
                └── README.txt
    └── PROF_XXX2
          ├── device_1
          │    └── data
          ├── host
          │    └── data
          ├── msprof_*.db
          └── mindstudio_profiler_output
                ├── msprof_{timestamp}.json
                ├── step_trace_{timestamp}.json
                ├── xx_*.csv
                 ...
                └── README.txt
    
  • In multi-device setups, if single-process collection is started, only one PROF_XXX directory is generated. If multi-process collection is started, multiple PROF_XXX directories are generated. In addition, the device directory is generated in the PROF_XXX directory. The number of device directories generated in each PROF_XXX directory is related to the actual user operations and does not affect profile data analysis.
  • For details about profile data, see Profile Data File References.
  • The files in the mindstudio_profiler_output directory are generated based on the actual collected profile data. If the necessary profile data file is absent, the corresponding timeline and summary data will be unavailable.
  • You can run the export command to directly export summary reports from the profile data parsing result. Even the profile data has not been parsed, the export command can parse the profile data and export the reports.
  • For a msprof collection process that is forcibly interrupted, the tool saves the collected raw profile data. You can also run export to parse and export the data.