cann/asc-devkit SIMT编程HelloWorld入门
Hello World【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit本入门示例基于Ascend C SIMT实现Hello World算子带你快速上手实践涵盖Device端核函数实现、Host端调用以及编译运行的完整流程帮助开发者建立整体认知。开始前请参考环境准备安装所需的CANN软件包完整样例请参考hello_world。Hello World功能介绍在NPU上打印Hello World!。Device端Kernel实现后缀名为*.asc的代码文件包含Host端与Device端代码其Device端部分示例如下__global__ void hello_world() { if (threadIdx.x 3) { printf([blockIdx (%lu/%lu)][threadIdx (%lu/%lu)]: Hello World!\n, blockIdx.x, gridDim.x, threadIdx.x, blockDim.x); } }Host端代码实现Host端通过语法糖调用Device端代码。int32_t main(int argc, char const *argv[]) { ... // 4. Configure kernel launch parameters constexpr uint32_t blocks_per_grid 2; // Number of thread blocks (Grid size) constexpr uint32_t threads_per_block 32; // Number of threads per block (Block size) constexpr uint32_t dyn_ubuf_size 0; // No dynamic memory required in this sample // 5. Launch kernel grid_dim, block_dim, dynamic_memory_size, stream hello_worldblocks_per_grid, threads_per_block, dyn_ubuf_size, stream(); // Wait for kernel execution to complete ... }算子编译与运行bisheng hello_world.asc --npu-archdav-3510 -o demo --enable-simt ./demo执行本样例将打印出核号和Hello World!信息。[!NOTE] 说明该样例支持以下型号Ascend 950PR / Ascend 950DT编译选项--npu-arch用于指定NPU架构版本dav-后为架构版本号请替换为您实际使用的版本。各AI处理器型号对应的架构版本号请通过AI处理器型号和 __NPU_ARCH__ 的对应关系查询。编译选项--enable-simt用于启用SIMT编程场景。如需进一步了解Ascend C的SIMD与SIMT编程模型请参阅Ascend C编程模型概述。【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考