The following table describes common compilation options. For details about all compilation options, see the BiSheng Compiler options.
|
Option |
Required (Yes/No) |
Description |
|---|---|---|
|
-help |
No |
Displays the help information. |
|
--npu-arch |
Yes |
Specifies the AI processor architecture for compilation. The value is dav-<arch-version>, where <arch-version> indicates the NPU architecture version number. For details about the architecture version number of each product model, see Table 1. |
|
--npu-soc |
No |
Specifies the AI processor model for compilation. If both npu-soc and npu-arch are configured, npu-arch is preferentially enabled. The AI processor model can be obtained in the following ways:
|
|
-x |
No |
Specifies the compilation language. If this parameter is set to asc, the Ascend C programming language is used. |
|
-o <file> |
No |
Specifies the name and location of the output file. |
|
-c |
No |
Compiles and generates the target file. |
|
-shared, --shared |
No |
Compiles and generates a dynamic link library. |
|
-lib, --cce-build-static-lib |
No |
Compiles and generates a static link library. The compiler compiles and links the code on the device to generate a binary file on the device, uses the file as the input for compilation on the host, and links the file to generate a static link library. |
|
-g |
No |
Adds debugging information during compilation. |
|
--sanitizer |
No |
Adds code correctness verification information during compilation. When the sanitizer option is used, the -g option must be added and cannot be used in the -O0 scenario. Note: After this option is enabled, L2 cache is enabled for GlobalTensor by default. You cannot disable L2 cache by calling the AscendC::SetL2CacheHint API. |
|
-fPIC |
No |
Instructs the compiler to generate location-independent code. |
|
-O |
No |
Specifies the optimization level of the compiler. Currently, -O3, -O2, and -O0 are supported. |
|
--run-mode=sim |
No |
SIM mode: During linking, you can add the implementation library corresponding to the simulation mode so that the code can run in simulation mode. You can view simulation-related logs to facilitate performance debugging. |
The built-in compilation macro switches are as follows:
// Disable the printf printing function of all operators.
ascendc_compile_definitions(ascendc_kernels_${RUN_MODE} PRIVATE
ASCENDC_DUMP=0
)ascendc_compile_definitions(ascendc_kernels_${RUN_MODE} PRIVATE
ASCENDC_DEBUG
)
Currently, the ASCENDC_DEBUG function supports the following product models:
ascendc_compile_definitions(ascendc_kernels_${RUN_MODE} PRIVATE
ENABLE_CV_COMM_VIA_SSBUF=true
)
This option is supported only by Atlas 350 Accelerator Card.
This compilation option is used to remove unnecessary memory synchronization instructions when there is no address overlap, thereby improving performance. For the Atlas 350 Accelerator Card, when the high-dimensional sharding computation API of the basic API is used, memory synchronization instructions are inserted by default to ensure data correctness in complex scenarios such as address overlapping. However, these synchronization instructions cause performance overheads. In scenarios where ultimate performance is pursued, this option can be used if you can ensure that no memory overlap occurs in the code under any circumstances.