常用的编译选项说明如下,全量的编译选项请参考毕昇编译器编译选项。
|
选项 |
是否必需 |
说明 |
|---|---|---|
|
-help |
否 |
查看帮助。 |
|
--npu-arch |
是 |
编译时指定的AI处理器架构,取值为dav-<arch-version>,其中<arch-version>为NPU架构版本号,各产品型号对应的架构版本号请通过对应关系表进行查询。 |
|
--npu-soc |
否 |
编译时指定的AI处理器型号,npu-soc和npu-arch同时配置时,优先使能npu-arch。 AI处理器的型号请通过如下方式获取:
|
|
-x |
否 |
指定编译语言。 指定为asc时表示Ascend C编程语言。 |
|
-o <file> |
否 |
指定输出文件的名称和位置。 |
|
-c |
否 |
编译生成目标文件。 |
|
-shared,--shared |
否 |
编译生成动态链接库。 |
|
-lib,--cce-build-static-lib |
否 |
编译生成静态链接库。编译器会将Device侧的代码进行编译链接,生成Device侧二进制文件,随后将该文件作为Host侧编译的输入进行编译,最后链接生成静态链接库。 |
|
-g |
否 |
编译时增加调试信息。 |
|
--sanitizer |
否 |
编译时增加代码正确性校验信息。使用sanitizer选项时,需要同步添加-g选项,且不能在-O0场景下使用。 注意,启用该选项后GlobalTensor默认使能L2 Cache,无法通过AscendC::SetL2CacheHint接口设置不使能L2 Cache的模式。 |
|
-fPIC |
否 |
告知编译器产生位置无关代码。 |
|
-O |
否 |
用于指定编译器的优化级别,当前支持-O3,-O2,-O0。 |
|
--run-mode=sim |
否 |
sim模式:链接时用户添加仿真模式对应的实现库,实现代码在仿真模式下运行,可以查看仿真相关日志,方便用户性能调试。 |
内置编译宏开关列表如下:
// 关闭所有算子的printf打印功能
ascendc_compile_definitions(ascendc_kernels_${RUN_MODE} PRIVATE
ASCENDC_DUMP=0
)ascendc_compile_definitions(ascendc_kernels_${RUN_MODE} PRIVATE
ASCENDC_DEBUG
)
当前ASCENDC_DEBUG功能支持的产品型号为:
ascendc_compile_definitions(ascendc_kernels_${RUN_MODE} PRIVATE
ENABLE_CV_COMM_VIA_SSBUF=true
)
仅在Atlas 350 加速卡支持该选项。
该编译选项用于在没有地址重叠的情况下移除不必要的内存同步指令,以提升性能。针对Atlas 350 加速卡,使用基础API的高维切分计算API时,默认会插入内存同步指令以确保在地址重叠等复杂场景下的数据正确性,但这些同步指令会带来性能开销。在追求极致性能的场景下,如果您可以确定代码在任何情况下都不会发生内存重叠,可以使用此选项。