Overview

Introduction to the Tool

MindStudio OpDev Tools contains various tools listed in Table 1. It streamlines design, speeds up development, enhances debugging, accurately detects errors, and improves performance across different aspects. These capabilities address common challenges like difficult algorithm design, complicated processes, hard-to-locate functions, vague memory issues, and poor efficiency. By reducing coding complexity, it enables developers to build high-performing operators quickly and affordably.

You can use the operator development tools in the sequence of Figure 1 or use one of them independently.

Figure 1 Flowchart
Table 1 Introduction to MindStudio OpDev Tools

Tool Name

Applied To

Supported Hardware

Function

msKPP (operator design)

Design

Atlas A2 training products/Atlas A2 inference products

Functions:

  • Performance modeling: The tool provides built-in operator API profile data, allowing users to express operator implementation algorithms and evaluate performance in the design phase.
  • msOpGen operator project call: msKPP directly calls the tiling function within the msOpGen project and custom kernel functions. This simplifies using msOpGen project templates in open-source repositories and addresses challenges cannot be solved through lightweight debugging.
  • Template library operator performance tuning: msKPP provides the generation, compilation, and running of the template library kernel delivery code, and code replacement and auto tuning in the kernel.

msOpGen (operator project generation)

Development and deployment

  • Atlas inference products
  • Atlas training products
  • Atlas A2 training products/Atlas A2 inference products
  • Atlas A3 training products/Atlas A3 inference products

This is a tool for improving operator development efficiency, which provides the template project generation capability, simplifies operator project setup, and assists operator test and verification.

msOpST (operator test)

Development and deployment

  • Atlas inference products
  • Atlas training products
  • Atlas A2 training products/Atlas A2 inference products
  • Atlas A3 training products/Atlas A3 inference products

This is a tool for improving development efficiency, which tests the input and output of an operator in a real-world hardware environment to check operator functions.

msSanitizer (exception detection)

Debugging

  • Atlas A2 training products/Atlas A2 inference products
  • Atlas inference products
  • Atlas A3 training products/Atlas A3 inference products

This is a tool for detecting operator anomalies, which provides memory, contention, uninitialization, and synchronization check capabilities and accurately locates memory issues in multi-core programs.

msDebug (operator debugging)

Debugging

  • Atlas inference products
    NOTE:

    Atlas inference products does not support Interrupting Execution.

  • Atlas A3 training products/Atlas A3 inference products
  • Atlas A2 training products/Atlas A2 inference products

This tool provides the native environment debugging capability based on Ascend processors to flexibly display variables. It also supports operator debugging and single-step debugging (on-board).

msProf (operator tuning)

Tuning

  • Atlas inference products
  • Atlas A2 training products/Atlas A2 inference products
  • Atlas A3 training products/Atlas A3 inference products

The msProf tool collects on-board and simulation profile data, and displays the data in a visual format through MindStudio Insight, allowing users to quickly locate operator performance bottlenecks.

NOTE:

To use MindStudio Insight, you need to install the MindStudio Insight software package separately. For details about the download link, see"Installation and Uninstallation".

  • Due to maintenance and test requirements, the operator development tools use environment variables such as INJ_LOG_LEVEL and MSOPT_LOG_LEVEL to control log levels and generate maintenance and test files. These logs and files do not indicate that the operator development tools are abnormal and are used only for internal debugging. You can ignore them.
  • Pressing CTRL+C consecutively or using the kill command to stop the tool might leave the temporary folder (such as the tmp folder) uncleared. The system uses this temporary folder for storing processing files created while tools operate. It holds no personal data and requires no action from you.

Functional Architecture

MindStudio OpDev Tools is a set of auxiliary tools designed for Ascend C programming language based on Ascend AI Processor. Ascend C is a programming language designed for operator development. Before using the tools, you are advised to have a basic understanding of Ascend C and operator development process. For details, see Ascend C Operator Development Guide.