Project Documentation
Directory Description
Key directory structure is as follows:
├── zh # Chinese documentation directory
│ ├── api # API documentation directory
│ ├── contributing # Code contribution standards directory (code style, API design, directory structure, testing, etc.)
│ ├── figures # Image directory
│ ├── guide # Ascend C operator develop guide
│ ├── vitepress # docs build directory
│ ├── asc_adv_api_contributing.md # Ascend C high-level API contribution guide
│ ├── asc_basic_api_contributing.md # Ascend C basic API contribution guide
│ ├── asc_c_api_contributing.md # Ascend C C API contribution guide
│ ├── asc_doc_contributing.md # Ascend C documentation contribution guide
│ ├── asc_doc_design_rules.md # Ascend C documentation design rules
│ ├── asc_950_feature_guide.md # Ascend 950PR/Ascend 950DT new feature guide
│ ├── asc_how_to_choose_api.md # Ascend C Multi-Level Programming Interface Selection Guide
│ └── quick_start.md # Quick start documentation
├── en # English documentation directory
│ ├── contributing # Code contribution standards directory (code style, API design, directory structure, testing, etc.)
│ ├── asc_adv_api_contributing.md # Ascend C high-level API contribution guide
│ ├── asc_basic_api_contributing.md # Ascend C basic API contribution guide
│ ├── asc_c_api_contributing.md # Ascend C C API contribution guide
│ ├── asc_doc_contributing.md # Ascend C documentation contribution guide
│ ├── asc_doc_design_rules.md # Ascend C documentation design rules
│ ├── asc_950_feature_guide.md # Ascend 950PR/Ascend 950DT new feature guide
│ ├── asc_how_to_choose_api.md # Ascend C Multi-Level Programming Interface Selection Guide
│ └── quick_start.md # Quick start documentation
├── README_en.md
└── README.md
Documentation Description
To help developers quickly familiarize with this project, corresponding documentation can be obtained as needed. Documentation content includes:
| Document | Target Audience | Content Introduction |
|---|---|---|
| API List | Users developing customized APIs or operators based on Ascend C open source repository. | Introduces all APIs included in the project. |
| High-level API Contribution Guide | Users developing customized APIs based on Ascend C open source repository. | Introduces how to extend or develop Ascend C high-level API. High-level API abstracts and encapsulates common algorithms based on single-core, implementing commonly used computational algorithms to improve operator development efficiency. |
| Basic API Contribution Guide | Users developing customized APIs based on Ascend C open source repository. | Introduces how to extend or develop Ascend C basic API. Basic API implements abstraction of hardware capabilities, opening chip capabilities, ensuring completeness and compatibility. |
| C API Contribution Guide | Users developing customized APIs based on Ascend C open source repository. | Introduces how to extend or develop Ascend C C API. C API provides pure C style interfaces, conforming to C language operator development habits, opening complete chip programming capabilities. |
| Documentation Contribution Guide | Developers improving existing Ascend C documentation. | Introduces the writing and contribution specifications for each chapter of Ascend C documentation. |
| Documentation Design Rules | Developers improving existing Ascend C documentation. | Introduces the Ascend C documentation architecture and overall design principles. |
| Code Contribution Standards | Developers contributing code to Ascend C. | Index of contribution standards: code style, API design, directory structure, testing. |
| Ascend C Getting Started Guide | Beginners of Ascend C | Introduces basic concepts of operator programming and the Ascend C learning path, helping developers quickly get started with operator development. |
| Ascend C Programming Guide | Developers writing operator programs with Ascend C on Ascend AI hardware and developing custom operators. | Ascend C is a programming language launched by CANN for operator development scenarios. It natively supports C and C++ standards, offering both development efficiency and runtime performance. Write operator programs with Ascend C to run on Ascend AI processors and implement custom innovative algorithms. |
| Ascend C Operator Practice Reference | Developers who have completed Ascend C operator development and need to further optimize operator performance. | Characteristics of heterogeneous computing, debugging methods for operator functionality, and performance optimization strategies. By introducing debugging and optimization approaches in Ascend C programming, combined with various performance optimization techniques and specific cases, this guide aims to help developers achieve high-performance operator development. |
| Ascend C Cross-Generation Migration Guide | Developers who need to migrate existing operators across different generations of Ascend AI processors. | Guides how to achieve functional equivalence and optimal performance adaptation across chip generations. |
Appendix
Besides the systematic development documentation introduced above, you can also selectively learn about corresponding specialized content based on actual scenarios and development stages.
-
Technical Articles
- Basics Introduction
- Concept Principles
- Problem Cases
- Performance Optimization
- Ascend C Operator Performance Optimization Practical Tips 01 - Pipeline Optimization
- Ascend C Operator Performance Optimization Practical Tips 02 - Memory Optimization
- Ascend C Operator Performance Optimization Practical Tips 03 - Data Movement Optimization
- Ascend C Operator Performance Optimization Practical Tips 04 - Tiling Optimization
- Ascend C Operator Performance Optimization Practical Tips 05 - API Usage Optimization
- Best Practices
-
Training Videos