配置 昇腾 Ascend C/C++ 开发环境

配置 昇腾 Ascend C/C++ 开发环境

flyfish

这里以Orange Pi Ai Pro 为例
先说如何配置MindStudio,然后再说如何查看Orange Pi Ai Pro的一些信息

Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能AI 开发板,其搭载了昇腾 AI 处理器。Linux 桌面系统的默认登录用户为 HwHiAiUser,登录密码为Mind@123

MindStudio是华为面向昇腾AI开发者提供的一站式开发环境和工具集,致力于提供端到端的昇腾AI应用开发解决方案。
MindStudio IDE当前支持Linux和Windows操作系统,需要下载单独的安装包安装后使用。此外,macOS也可以通过SSH连接启动MindStudio IDE。
这里使用是Windows下的MindStudio
版本 MindStudio 7.0.RC2 (Release)

在这里插入图片描述创建工程后,工程目录的主要结构如下

├── untitled
│   ├── build
│   │    ├──cmake             //存放cmake依赖文件。
│   ├── out                    //存放编译出的可执行文件。
│   ├── src
│   │    ├── CMakeLists.txt   //编译脚本。
│   │    ├── main.cpp         //主函数的实现文件,当前主函数内无代码逻辑。
│   ├── CMakeLists.txt         //编译脚本,调用src目录下的CMakeLists文件。

SSH连接

在菜单栏依次选择File > Settings... > Tools > Ascend SSH Configurations进入SSH连接配置
在这里插入图片描述

Ascend Deployment 部署

在菜单栏依次选择File > Settings…> Tools > Ascend Deployment

在这里插入图片描述Mappings设置 本地文件会同步到部署路径中

在这里插入图片描述

配置交叉编译环境

菜单栏依次选择File > Settings... > Appearance&Behavior > System Settings > CANN,弹出CANN Manager界面
在这里插入图片描述在这里插入图片描述

调试配置

在这里插入图片描述

看运行结果

在MindStudio点击运行后
在这里插入图片描述ssh连接到 Orange Pi Ai Pro 运行
目录就是之前File > Settings…> Tools > Ascend DeploymentMappings设置的映射目录
在这里插入图片描述

Orange Pi Ai Pro 的设置

df(disk free)命令可以用来显示文件系统磁盘空间的使用情况

我这里使用了IT的硬盘

(base) HwHiAiUser@orangepiaipro:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       917G   17G  863G   2% /
tmpfs           3.7G  4.0K  3.7G   1% /dev/shm
tmpfs           1.5G   15M  1.5G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
tmpfs           128M  828K  128M   1% /var/log
tmpfs           755M   76K  755M   1% /run/user/0
/dev/nvme0n1p3   50M  2.0K   50M   1% /exchange
tmpfs           755M   80K  755M   1% /run/user/1000

/dev/root 为例解释:

Filesystem: 显示了文件系统的设备名或者挂载点。在这个例子中,/dev/root 指的是根分区的设备名。

Size: 文件系统的总容量。这里显示为 917G,表示该文件系统的总容量为 917GB。

Used: 已使用的空间。这里显示为 17G,表示已经使用了 17GB 的空间。

Avail: 可用的空间。这里显示为 863G,表示还有 863GB 的空间可供使用。

Use%: 使用百分比。这里显示为 2%,表示已经使用的空间占总空间的 2%。

Mounted on: 文件系统挂载的位置。在这个例子中,/ 表示这是根目录,即系统的主目录。

系统根分区(通常是最主要的分区)有一个总容量为 917GB 的文件系统,目前只使用了 17GB,还剩下 863GB 的可用空间,使用率仅为 2%。

free 命令可以用来查看系统的内存使用情况,包括物理内存和虚拟内存

(base) HwHiAiUser@orangepiaipro:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           7.4Gi       1.1Gi       5.4Gi        32Mi       807Mi       6.0Gi
Swap:             0B          0B          0B

输出关于系统内存(包括物理内存和虚拟内存)的信息
Mem: 物理内存, Swap: 虚拟内存(交换空间)

total: 物理内存的总容量。这里显示为 7.4Gi,表示总共有 7.4 GiB 的物理内存。
used: 当前正在使用的物理内存。这里显示为 1.1Gi,表示已经使用了 1.1 GiB 的物理内存。
free: 当前未被使用的物理内存。这里显示为 5.4Gi,表示还有 5.4 GiB 的物理内存未被使用。
shared: 由多个进程共享的物理内存大小。这里显示为 32Mi,表示有 32 MiB 的内存被多个进程共享。
buff/cache: 由系统缓存(buffers)和缓存(cache)占用的物理内存大小。这里显示为 807Mi,表示有 807 MiB 的内存被用于缓存。
available: 系统认为可用于启动新应用程序而不影响现有程序性能的物理内存大小。这里显示为 6.0Gi,表示有 6.0 GiB 的物理内存可用于新应用程序。

su(switch user)命令允许你切换到另一个用户的身份

要切换到 root 用户,可以运行以下命令

sudo su

增加系统虚拟内存(交换空间)

(base) root@orangepiaipro:/home/HwHiAiUser# fallocate -l 16G /swapfile
(base) root@orangepiaipro:/home/HwHiAiUser# chmod 600 /swapfile
(base) root@orangepiaipro:/home/HwHiAiUser# mkswap /swapfile
Setting up swapspace version 1, size = 16 GiB (17179865088 bytes)
no label, UUID=7cb8763f-e648-4382-a84c-c69d94ebe15a
(base) root@orangepiaipro:/home/HwHiAiUser# swapon /swapfile
(base) root@orangepiaipro:/home/HwHiAiUser# free -h
               total        used        free      shared  buff/cache   available
Mem:           7.4Gi       1.2Gi       5.4Gi        33Mi       868Mi       6.0Gi
Swap:           15Gi          0B        15Gi

如果是HwHiAiUser用户,需要在命令前加sudo

  1. 创建一个 swap 文件
    sudo fallocate -l 16G /swapfile
  2. 修改文件权限,确保只有 root 用户可以读写
    sudo chmod 600 /swapfile
  3. 把文件设置成 swap 空间。
    sudo mkswap /swapfile
  4. 启用 swap
    sudo swapon /swapfile
  5. 检查 swap 内存是否添加成功
    free -h
  6. 使交换文件永久生效
    为了确保每次系统启动时交换文件都能自动启用,将交换文件的信息添加到 /etc/fstab 文件中
    echo ‘/swapfile none swap defaults 0 0’ | sudo tee -a /etc/fstab

npu-smi: 这是一个类似于 nvidia-smi 的工具,用于管理和监控 NPU 的状态

“smi” 是 “System Management Interface” 的缩写,通常用于表示系统管理接口

(base) root@orangepiaipro:/home/HwHiAiUser# npu-smi info
+--------------------------------------------------------------------------------------------------------+
| npu-smi 23.0.0                                   Version: 23.0.0                                       |
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+===============================+=================+======================================================+
| 0       310B4                 | Alarm           | 0.0          46                15    / 15            |
| 0       0                     | NA              | 0            2059 / 7545                             |
+===============================+=================+======================================================+

NPU: NPU 设备的编号。
Name: NPU 设备的名称。
Health: 设备健康状况。
Power(W): 设备的功耗(瓦特)。
Temp©: 设备的温度(摄氏度)。
Hugepages-Usage(page): 大页内存的使用情况。
Chip: 芯片编号。
Device: 设备编号。
Bus-Id: 总线 ID。
AICore(%): AI 核心的占用率百分比。
Memory-Usage(MB): 内存使用情况(兆字节)

### 关于 openEuler 24.03 LTS 和 mindIE 软件包的相关信息 #### 软件包概述 `mindie:1.0.0-300I-Duo-py311-openeuler24.03-lts` 是基于 openEuler 24.03 LTS 的容器镜像,专为昇腾 AI 处理器设计。该镜像集成了 Python 3.11 环境以及特定的硬件加速库和支持工具[^3]。 此版本中的 `Duo` 表示支持双核昇腾处理器架构,而 `-py311` 则明确了其运行环境为 Python 3.11 版本。以下是关于该软件包及其依赖项的具体说明: --- #### 主要组件与依赖关系 1. **Python 环境** 容器内置了 Python 3.11 解释器,并预装了一些常用的科学计算和机器学习框架,例如 NumPy、Pandas 和 TensorFlow Ascend 插件[^4]。 2. **昇腾驱动程序** - 升腾设备的核心驱动被配置为 `/dev/davinci*`,其中具体核心数量由实际使用的硬件决定 (如 davinci0 至 davinci7)。 - 设备映射通过 Docker 命令实现,例如 `--device=/dev/davinci0:/dev/davinci0`。 3. **模型路径映射** 使用 `-v /data/llm/deepseek/:/home/HwHiAiUser` 参数将主机上的数据目录挂载至容器内部,便于加载训练好的大语言模型或其他深度学习资源。 4. **网络端口映射** 默认情况下,容器会暴露并绑定本地端口 1025 (`-p 1025:1025`),以便外部客户端能够访问 DeepSeek 或其他服务接口。 5. **额外依赖** - C++ 编译工具链:GCC 及相关开发头文件可能已被预先安装。 - CUDA 工具包(如果适用):尽管昇腾系列主要采用自研算子优化技术,但在某些混合场景下仍需兼容 NVIDIA GPU 平台的功能扩展。 6. **启动脚本与初始化命令** 用户可以通过执行如下指令进入交互模式: ```bash docker exec -it ds_service /bin/bash ``` 此外,在首次部署时建议检查默认配置文件是否存在错误设置,尤其是涉及多节点通信的部分。 --- #### 示例代码片段 下面展示了一个典型的容器创建流程,适用于上述提到的镜像版本: ```dockerfile FROM swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:1.0.0-300I-Duo-py311-openeuler24.03-lts RUN mkdir -p /home/HwHiAiUser/models && \ chmod 755 /home/HwHiAiUser/ CMD ["sh", "-c", "echo 'Container started successfully!'"] ``` 随后可以利用以下命令完成实例化操作: ```bash docker run --name=ds_service \ --privileged=true \ --network host \ --device=/dev/davinci0:/dev/davinci0 \ -v /data/llm/deepseek/:/home/HwHiAiUser \ -d -p 1025:1025 \ swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:1.0.0-300I-Duo-py311-openeuler24.03-lts ``` --- #### 注意事项 对于生产环境中大规模应用而言,请务必确认目标服务器已正确安装对应型号的昇腾驱动程序;同时考虑到性能调优需求,还应调整线程优先级及相关超参设定以充分发挥硬件潜力。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二分掌柜的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值