大家好,我是一名刚刚踏入昇腾AI生态的开发者。和许多初学者一样,在满怀激情地报名了【2025年昇腾CANN训练营第二季】 后,我面临的第一个“算子”不是复杂的数学公式,而是一道最现实的关卡——如何把Ascend C开发环境给搭起来。

看着官方文档,一堆新概念扑面而来:CANN Toolkit、Ascend-C-Toolkit、驱动、固件……当时真有点手足无措。经过一番摸索和几次踩坑,我终于成功搭建了一套顺手的开发环境。今天,就把这份“避坑”全攻略分享给大家,希望能让你的入门之路更加顺畅。

为什么选择学习Ascend C? 正是因为这次训练营!它基于CANN开源开放全场景,推出了0基础入门系列、码力全开特辑、开发者案例等专题课程,完美契合像我这样想系统化提升算子开发技能的开发者。而且,获得Ascend C算子中级认证还能领取精美证书,社区任务更有华为手机、平板等大奖,动力十足!>> 感兴趣的同学可以在这里报名:点击加入CANN训练营

第一章:出发前,理清“行前准备”

别急着下载安装,先搞清楚我们需要什么。Ascend C开发环境主要分为两部分:运行环境和开发环境。

  1. 运行环境(昇腾设备侧):这是代码最终运行的地方,通常是安装了昇腾AI处理器的服务器或Atlas开发板。我们需要在这里安装基础软件栈,包括驱动、固件和CANN Toolkit。对于个人学习者,华为云提供了昇腾AI弹性云服务器,可以免去硬件和底层软件安装的烦恼,强烈入门者首选!

    1. 开发环境(你的电脑/开发机侧):这是我们写代码、编译代码的地方。我选择在Linux系统上进行,并使用我最熟悉的VSCode进行远程开发。

      我的装备选择

      • 开发机:一台Ubuntu 20.04的云主机(你也可以用物理机或虚拟机)。

      • IDE:VSCode,配合强大的远程开发插件。

      • 运行环境:申请了一台华为云昇腾ECS,预装了CANN 7.0,省心省力。

        第二章:步步为营,搭建开发环境

        步骤一:在开发机上安装CANN Toolkit

        这个Toolkit包含了编译、调试、性能分析等所有开发工具。它就像你的C++编译器一样,是本地必备。

        1. 下载软件包:前往昇腾社区,找到与你的运行环境CANN版本匹配的Ascend-cann-toolkit安装包。切记:训练营的实验代码通常对版本有要求,务必按照指引下载指定版本! 这是我踩的第一个坑,版本不匹配会导致各种诡异错误。

          1. 安装依赖:执行以下命令安装基础依赖,这是顺利安装的前提。

            
              

            sudo apt-get update sudo apt-get install gcc g++ make cmake zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev pciutils net-tools

            1. 执行安装:给予安装包执行权限并运行。这里建议使用--install-path参数自定义安装路径,我把它装在了/home/我的用户名/Ascend/ascend-toolkit/latest,方便管理。

              
                

              chmod +x Ascend-cann-toolkit_7.0.0_linux-x86_64.run sudo ./Ascend-cann-toolkit_7.0.0_linux-x86_64.run --install

                安装过程会有图形化界面,跟着指引走即可。

              1. 配置环境变量:这是最关键的一步!安装完成后,需要将Toolkit的路径加入到系统环境变量中。

                
                  

                # 编辑你的bashrc文件 vim ~/.bashrc # 在文件末尾添加以下内容,路径请替换为你的实际安装路径 export ASCEND_TOOLKIT_HOME=/home/你的用户名/Ascend/ascend-toolkit/latest export PATH=$ASCEND_TOOLKIT_HOME/bin:$PATH export LD_LIBRARY_PATH=$ASCEND_TOOLKIT_HOME/lib64:$LD_LIBRARY_PATH # 使环境变量立即生效 source ~/.bashrc

                  完成后,在终端输入 ascend-cann-version,如果能看到版本信息,恭喜你,Toolkit安装成功!

                步骤二:配置VSCode远程开发

                既然开发机是Linux,我本地是Windows/Mac,用VSCode的远程开发功能是最佳选择。

                1. 在VSCode中安装 Remote - SSH 扩展。

                2. 配置SSH连接到你的Linux开发机。

                3. 连接成功后,你就像在本地操作远程机器一样。在VSCode的扩展商店里,安装 C/C++ 扩展(安装在远程机器上)。

                  步骤三:创建你的第一个Ascend C工程

                  别自己从头构建,最容易出错!训练营提供的实验代码包或CANN Toolkit自带的样例,就是最好的起点。

                  1. 在开发机上,找到一个合适的目录,解压训练营给的“Hello World”工程包。

                  2. 用VSCode远程打开这个工程文件夹。你会看到一个标准的目录结构,通常包含:

                    1. src/: 存放算子内核代码(*.cpp)和主机调用代码(main.cpp

                    2. scripts/: 存放编译脚本build.sh

                    3. CMakeLists.txt: 项目的编译配置

                    4. 尝试编译:在VSCode的终端里,进入工程目录,运行编译脚本。

                      
                        

                      cd scripts bash build.sh

                        如果一切顺利,你会在 build/output/ 目录下看到生成的可执行文件。当终端最后出现 Build success 的字样时,我长舒了一口气——最难的一关总算过去了!

                      第三章:常见“坑点”与解决锦囊

                      • 坑1:ascend-cann-version命令未找到

                        • 原因:99%是环境变量没配置对。检查.bashrc文件中的路径是否正确,是否执行了source ~/.bashrc

                        • 坑2:编译时找不到ascendc头文件

                          • 原因:同样是环境变量问题,ASCEND_TOOLKIT_HOME指向的路径不对,或者LD_LIBRARY_PATH没设置好。

                          • 坑3:运行程序报错,提示找不到AI Core设备

                            • 原因:你的开发机可能没有安装昇腾卡驱动,或者没有连接到运行环境。如果你用的是云服务器,请确保你申请的是昇腾AIECS,并且基础镜像已包含驱动。

                            结语:环境已成,征程开启

                            当屏幕上终于打印出第一个算子运行成功的日志时,那种成就感是实实在在的。环境的成功搭建,意味着你已经推开了Ascend C算子开发世界的大门。

                            现在,我已经迫不及待地想要深入训练营的“0基础入门系列”课程,去真正理解核函数、Global Memory、Local Memory这些核心概念了。有了顺手的VSCode环境和训练营一步步的指导,我相信后面的学习会更有趣、更高效。

                            希望这篇攻略能帮你扫清最初的障碍。咱们训练营里见,一起码力全开!


                            再次附上训练营报名链接,期待与你同行:https://www.hiascend.com/developer/activities/cann20252#cann-camp-2502-intro

                            Logo

                            鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

                            更多推荐