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

  • Software Installation

    How do I install, upgrade, and uninstall CANN in different OSs and service scenarios?

Developing an Application

Developing Operators

Graph development

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.