diff --git a/sample/.keep b/sample/.keep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/sample/README.md b/sample/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b46181b022bc117661612d8c9c4446f2b6f7984f --- /dev/null +++ b/sample/README.md @@ -0,0 +1,39 @@ +# 样例库介绍 + +## 说明 +本案例库主要用于配合AscendC算子开发工具的能力演示,所以,算子工程做了深度简化,聚焦于辅助工具展示。 + +如果考虑商用集成,推荐使用CANN软件包中的AscendC样例工程,比如:ascendc_kernel_cmake目录。本项目中的工程就是基于其进行简化仅用于快速验证。 + +## 依赖说明 +安装CANN包,并使能环境变量,并确保```ASCEND_HOME_PATH```生效,可以在CANN包安装目录下使能: +``` +source set_env.sh +``` + +## 目录说明 +现仅支持```sample\normal_sample\vec_only```样例。 + +大概在2月份会补齐各类工具样例和文档 + +## 其他 +现msprof使能仿真时,还需要额外调整,具体如下: +1. 编译阶段:在```sample\normal_sample\vec_only```相对路径下的```Makefile```文件中修改如下内容: + + 仿真器依赖: + ``` + LINK_LIBS := -L${TOP_DIR}/third_party/lib/ -lruntime -lascendcl -lstdc++ + 修改为: + LINK_LIBS := -L${TOP_DIR}/third_party/lib/ -lruntime_camodel -lascendcl -lstdc++ + ``` + + 调试信息增强: + ``` + COMPILER_FLAG := -xcce -O2 -std=c++17 + 修改为: + COMPILER_FLAG := -xcce -O2 -std=c++17 -g + ``` + +2. 运行阶段:添加依赖库路径, + ``` + export LD_LIBRARY_PATH=${ASCEND_HOME_PATH}/aarch64-linux/simulator/${SOC_VERSION}/lib/:$LD_LIBRARY_PATH # 使用npu-smi info查询NPU Name,如:名字为910A,则填入:Ascend910A + msprof op simulator --application=./add.fatbin # 在对应路径下 + ``` diff --git a/sample/build/build.sh b/sample/build/build.sh index 93736c22443b089be669620d6d40478d25b891a1..80e17f8d518cf774745be22318a394d34a247559 100644 --- a/sample/build/build.sh +++ b/sample/build/build.sh @@ -9,6 +9,10 @@ export TOP_DIR=${TOP_DIR} cd ${TOP_DIR}/third_party make +cd ${TOP_DIR}/third_party/lib +cp -f libruntime.so.$(arch) libruntime.so +cp -f libruntime_camodel.so.$(arch) libruntime_camodel.so + # cd ${TOP_DIR}/normal_sample/vec_only make diff --git a/sample/normal_sample/vec_only/Makefile b/sample/normal_sample/vec_only/Makefile index ddc553617078e6cdfc951c5d4bc425d0d5e84639..c30b2ceffc1640878d63cbfdfcb883682bdd6e21 100644 --- a/sample/normal_sample/vec_only/Makefile +++ b/sample/normal_sample/vec_only/Makefile @@ -3,8 +3,9 @@ ASCEND_HOME_PATH ?= /usr/local/Ascend/ascend-toolkit/latest TOP_DIR ?= / COMPILER := $(ASCEND_HOME_PATH)/compiler/ccec_compiler/bin/ccec -COMPILER_FLAG := -xcce -O2 -std=c++17 --cce-aicore-arch=dav-c220-vec -LINK_FLAG := --cce-fatobj-link --cce-aicore-arch=dav-c220-vec +COMPILER_FLAG := -xcce -O2 -std=c++17 +LINK_FLAG := --cce-fatobj-link +DAV_FLAG := --cce-aicore-arch=dav-c220-vec ASCENDC_INC_FLAG := -I${ASCEND_HOME_PATH}/compiler/tikcpp/tikcfw -I${ASCEND_HOME_PATH}/compiler/tikcpp/tikcfw/impl -I${ASCEND_HOME_PATH}/compiler/tikcpp/tikcfw/interface -I${ASCEND_HOME_PATH}/include HOST_INC_FLAG := -I${TOP_DIR}/third_party/inc LINK_LIBS := -L${TOP_DIR}/third_party/lib -lruntime -lascendcl -lstdc++ @@ -14,13 +15,13 @@ all: build build: add_kernel.o main.o add.fatbin add_kernel.o: add_kernel.cpp - $(COMPILER) $(COMPILER_FLAG) $(ASCENDC_INC_FLAG) -o $@ -c $^ + $(COMPILER) $(COMPILER_FLAG) $(DAV_FLAG) $(ASCENDC_INC_FLAG) -o $@ -c $^ main.o: main.cpp - $(COMPILER) $(COMPILER_FLAG) $(HOST_INC_FLAG) -o $@ -c $^ + $(COMPILER) $(COMPILER_FLAG) $(DAV_FLAG) $(HOST_INC_FLAG) -o $@ -c $^ add.fatbin: add_kernel.o main.o - $(COMPILER) $(LINK_FLAG) -o $@ $^ $(LINK_LIBS) + $(COMPILER) $(LINK_FLAG) $(DAV_FLAG) -o $@ $^ $(LINK_LIBS) .PHONY: clean clean: diff --git a/sample/third_party/Makefile b/sample/third_party/Makefile index a9cb6c7e8c4add0c8b62b78e927a36771a86f638..34414b92c565bac6d686dff9347e3f40820a45d8 100644 --- a/sample/third_party/Makefile +++ b/sample/third_party/Makefile @@ -6,16 +6,8 @@ INC_FLAG := -I$(TOP_DIR)/third_party/inc all: build -build: libascendcl.so libruntime.so libruntime_camodel.so +build: libascendcl.so libascendcl.so: acl.cpp - $(COMPILER) $(COMPILER_FLAG) $(INC_FLAG) -o $@ $^ - mv $@ ${TOP_DIR}/third_party/lib - -libruntime.so: runtime.cpp - $(COMPILER) $(COMPILER_FLAG) $(INC_FLAG) -o $@ $^ - mv $@ ${TOP_DIR}/third_party/lib - -libruntime_camodel.so: runtime.cpp $(COMPILER) $(COMPILER_FLAG) $(INC_FLAG) -o $@ $^ mv $@ ${TOP_DIR}/third_party/lib \ No newline at end of file diff --git a/sample/third_party/inc/.keep b/sample/third_party/inc/.keep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/sample/third_party/inc/runtime/runtime.h b/sample/third_party/inc/runtime/runtime.h deleted file mode 100644 index a353d5df03e484c26c41f56ef1aa3812898e4828..0000000000000000000000000000000000000000 --- a/sample/third_party/inc/runtime/runtime.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef INC_EXTERNAL_RUNTIME_RUNTIME_H_ -#define INC_EXTERNAL_RUNTIME_RUNTIME_H_ - -#include -#include "stdlib.h" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef int32_t rtError_t; -static const int32_t RT_ERROR_NONE = 0; - -typedef struct tagRtSmData { - uint64_t L2_mirror_addr; - uint32_t L2_data_section_size; - uint8_t L2_preload; - uint8_t modified; - uint8_t priority; - int8_t prev_L2_page_offset_base; - uint8_t L2_page_offset_base; - uint8_t L2_load_to_ddr; - uint8_t reserved[2]; -} rtSmData_t; - -typedef struct tagRtSmCtrl { - rtSmData_t data[8]; - uint64_t size; - uint8_t remap[64]; - uint8_t l2_in_main; - uint8_t reserved[3]; -} rtSmDesc_t; - -typedef enum rtEventStatus { - RT_EVENT_INIT = 0, - RT_EVENT_RECORDED = 1, -} rtEventStatus_t; - -typedef struct tagRtDevBinary { - uint32_t magic; - uint32_t version; - const void* data; - uint64_t length; -} rtDevBinary_t; - -typedef void* rtStream_t; - -rtError_t rtSetupArgument(const void* args, uint32_t size, uint32_t offset); -rtError_t rtConfigureCall(uint32_t numBlocks, rtSmDesc_t *smDesc, rtStream_t stm); -rtError_t rtDevBinaryUnRegister(void *handle); -rtError_t rtDevBinaryRegister(const rtDevBinary_t *bin, void **handle); -rtError_t rtFunctionRegister(void* binHandle, const void* stubFunc, const char* stubName, const void* devFunc, uint32_t funcMode); -rtError_t rtLaunch(const void* stubFunc); - -#ifdef __cplusplus -} -#endif - -#endif // INC_EXTERNAL_RUNTIME_RUNTIME_H_ \ No newline at end of file diff --git a/sample/third_party/lib/.keep b/sample/third_party/lib/.keep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/sample/third_party/lib/libruntime.so.aarch64 b/sample/third_party/lib/libruntime.so.aarch64 new file mode 100644 index 0000000000000000000000000000000000000000..2c686dc3e0ab56768ec8c45cfac9f1fbb107888f Binary files /dev/null and b/sample/third_party/lib/libruntime.so.aarch64 differ diff --git a/sample/third_party/lib/libruntime.so.x86 b/sample/third_party/lib/libruntime.so.x86 new file mode 100644 index 0000000000000000000000000000000000000000..6da21687dc7655cc6745003cfcbb6c3c0a8ceb34 Binary files /dev/null and b/sample/third_party/lib/libruntime.so.x86 differ diff --git a/sample/third_party/lib/libruntime_camodel.so.aarch64 b/sample/third_party/lib/libruntime_camodel.so.aarch64 new file mode 100644 index 0000000000000000000000000000000000000000..2c686dc3e0ab56768ec8c45cfac9f1fbb107888f Binary files /dev/null and b/sample/third_party/lib/libruntime_camodel.so.aarch64 differ diff --git a/sample/third_party/lib/libruntime_camodel.so.x86 b/sample/third_party/lib/libruntime_camodel.so.x86 new file mode 100644 index 0000000000000000000000000000000000000000..6da21687dc7655cc6745003cfcbb6c3c0a8ceb34 Binary files /dev/null and b/sample/third_party/lib/libruntime_camodel.so.x86 differ diff --git a/sample/third_party/runtime.cpp b/sample/third_party/runtime.cpp deleted file mode 100644 index 1f0a57796a25901f65120e8e9708e750d3c59aa5..0000000000000000000000000000000000000000 --- a/sample/third_party/runtime.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "runtime/runtime.h" - -rtError_t rtSetupArgument(const void* args, uint32_t size, uint32_t offset) {return 0;} -rtError_t rtConfigureCall(uint32_t numBlocks, rtSmDesc_t *smDesc, rtStream_t stm){return 0;} -rtError_t rtDevBinaryUnRegister(void *handle){return 0;} -rtError_t rtDevBinaryRegister(const rtDevBinary_t *bin, void **handle){return 0;} -rtError_t rtFunctionRegister(void* binHandle, const void* stubFunc, const char* stubName, const void* devFunc, uint32_t funcMode){return 0;} -rtError_t rtLaunch(const void* stubFunc){return 0;} \ No newline at end of file