CANN Commercial Version
The compute architecture for neural networks (CANN) is a heterogeneous computing architecture launched by Ascend for AI scenarios. It supports multiple AI frameworks, including MindSpore, PyTorch, and TensorFlow, and serves AI processors and programming. It is a crucial platform for improving the computing efficiency of the Ascend AI processors. Additionally, it provides hierarchical programming APIs for diversified application scenarios, allowing users to quickly build AI applications and services based on the Ascend platform.
- Quick Start
CANN definition, software architecture, and an example of the entire process of developing AI applications based on CANN.
Environment Setup
Developing an Application
Developing Operators
- Ascend C Operator Development
Develop operators based on the Ascend C operator programming language with low costs and high efficiency. For details about the APIs, see Ascend C Operator Development APIs.
- Ascend C Best Practices
This document describes how to develop high-performance operators on the Ascend AI Processor based on Ascend C, focuses on performance tuning, and provides operator performance tuning cases.
- TBE & AI CPU Operator Development
Develop TBE and AI CPU custom operators based on TBE and AI CPU APIs. For details about the APIs, see TBE&AI CPU Operator Development APIs.
- BiSheng Compiler
The BiSheng compiler is used to compile operator code into binary executable files and dynamic libraries, and provides specific programming guidance.
Graph development
- Introduction to Graph Mode
Aggregates the application scenarios of the graph mode supported by CANN and provides the process guide for each scenario.
- Ascend Graph Development
Construct a graph that can run on the Ascend platform based on the Ascend graph construction API provided by GE. For details about the API, see Ascend Graph Construction API.
Collective Communication
API
- AscendCL Application Development APIs
AscendCL APIs provide API libraries for system configuration, runtime management, single-operator execution, model execution, and media data preprocessing, facilitating AI application development.
- Ascend C Operator Development APIs
Ascend C provides a group of class library APIs, including basic APIs and high-level APIs. Developers use the standard C++ syntax and class library APIs for programming to develop operators.
- TBE & AI CPU Operator Development APIs
Provides APIs required for developing TBE and AI CPU operators.
- Ascend Graph Composition APIs
The Ascend platform provides the Ascend Graph API, which can be used to build graphs running on the Ascend platform.
- HCCL collective communication library interface
HCCL provides APIs in C and Python languages to implement framework adaptation in single-operator mode and graph mode, respectively.
- AOL Operator Acceleration Library APIs
It provides a series of high-performance operators with in-depth optimization and hardware affinity, laying a foundation for accelerating neural network computing on Ascend hardware.
- AOE Interface
The AOE automatic tuning tool provides tuning APIs to enable the AOE automatic tuning function and provides the repository query API to query the generated repository file and obtain tiling.
- Basic Data Structure and Interfaces
Basic data structures and APIs required for operator development and graph development.
Development tools
- Operator Development Tool Quick Start
This section uses a simple example to describe how to use the operator development tool to design an operator, create an operator project, test the operator function, detect operator exceptions, debug the operator, and tune the performance..
- PyTorch Training Scenario Tool Quick Start
This section uses a simple example to describe the application of tools such as analysis and migration, accuracy debugging, and performance tuning in the PyTorch training scenario.
- Inference Tool Quick Start
Use a simple example to describe how to use tools such as model compression, inference data dump, automatic accuracy comparison, and performance tuning in the foundation model inference toolchain.
- Operator Development Tool
Describes how to use the operator development tool sets (such as msKPP, msOpGen, msOpST, msSanitizer, msDebug, and msProf).
- Operator Compile Tool
The operator compile tool is a command line tool provided by Ascend CANN for compiling operators and generating operator binary files.
- ATC
ATC is a model conversion tool in the heterogeneous computing architecture CANN.
- AOE
AOE is an automatic tuning tool that fully utilizes limited hardware resources to meet the performance requirements of operators and the entire network.
- Migration Tools
The analysis and porting tool provides the function of one-click porting PyTorch training scripts to the Ascend NPU ecosystem. Developers can complete the porting with a small amount of code modification or without code.
- Model Accuracy Analyzer
This tool helps developers quickly resolve operator accuracy issues and provides the function of comparing the computation results of self-developed operators with those of industry benchmark operators.
- Profiling
Use the performance analysis tool to collect and analyze key performance metrics in each running phase of AI jobs, and quickly locate software and hardware performance bottlenecks based on the output performance data.
- HCCL Performance Tester
In distributed scenarios, use the HCCL performance test tool to test the performance and function correctness of HCCL collective communication.
- AMCT
AMCT is a deep learning model compression tool for Ascend chip affinity. It provides multiple model compression features such as quantization and sparsity. After compression, the model can be deployed to improve performance.
- Operator and Model Query Tool
The operator and model query tool allows you to query the models and operators supported by CANN of the current version.
References
- Troubleshooting
Provides self-service fault locating and troubleshooting methods based on various exceptions that may occur during service execution, helping developers quickly locate and rectify faults.
- Log Reference
This topic describes the log content format and how to view logs and set log levels to help developers locate faults.
- Description of Environment Variables
Environment variables that can be used when developers build AI applications and services based on CANN.
- graph fusion and UB fusion pattern reference
This section describes some built-in graph fusion and UB fusion patterns of the Ascend AI Processor. Graph fusion and UB fusion are a key method for improving the performance of the entire network.
- Communication Matrix
The communication matrix contains the open ports, transport layer protocols used by the ports, and names, authentication modes, and functions of the NEs that communicate with the peer end through the ports.