Overview

Product Description

BiSheng Compiler (executable program name: bisheng) is a dedicated compiler for Ascend AI processor in the CANN software stack. It supports hybrid programming of the host and device, and can compile the source code of Ascend operators written by users into executable files, dynamic libraries, or static libraries. The compiler supports host platforms such as x86 and AArch64, and natively supports the compilation of AI Core architecture command sets on the device.

With BiSheng Compiler, developers can organize the host runtime logic and device kernel functions in the same project, and the compiler parses, compiles, and links the heterogeneous code.

This document focuses on the installation, heterogeneous compilation process, and language extension of BiSheng Compiler. For details about how to compile Ascend C operators, see Ascend C Operator Development.

Before You Start

BiSheng Compiler is the entry to the CANN heterogeneous programming toolchain. Before using it, you need to understand the following three things:

  • Programming model: The host is responsible for device management, memory transfer, and kernel scheduling. The device (AI Core or AI CPU) is responsible for computation.
  • Compile mode: Select one-step compilation or step-by-step compilation/linking based on the target device and project organization mode.
  • Language extension: The device-side code uses qualifiers such as __global__, [aicore], and __aicpu__, and source file extensions such as .cce, .asc, and .aicpu.
Table 1 Outline

Chapter

Reference

Application Scenario

Quick Start

Installation and configuration + executable examples

Upon first-time use, verify environment availability.

Heterogeneous Compilation Guide

Compile options, processes, and commands

Write the build script.

Programming Language Reference

Macros, qualifiers, C++ features, and library usage

Implement device-side code.

Tool Description

Tools and risks attached to the compiler

O&M/Security evaluation