配置 昇腾 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 Deployment
Mappings设置的映射目录
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
- 创建一个 swap 文件
sudo fallocate -l 16G /swapfile - 修改文件权限,确保只有 root 用户可以读写
sudo chmod 600 /swapfile - 把文件设置成 swap 空间。
sudo mkswap /swapfile - 启用 swap
sudo swapon /swapfile - 检查 swap 内存是否添加成功
free -h - 使交换文件永久生效
为了确保每次系统启动时交换文件都能自动启用,将交换文件的信息添加到/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): 内存使用情况(兆字节)