首页 > 编程语言 >配置 昇腾 Ascend C/C++ 开发环境

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

时间:2024-08-19 20:51:51浏览次数:12  
标签:HwHiAiUser swapfile 配置 Ascend C++ orangepiaipro 内存 root Gi

配置 昇腾 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): 内存使用情况(兆字节)

标签:HwHiAiUser,swapfile,配置,Ascend,C++,orangepiaipro,内存,root,Gi
From: https://blog.csdn.net/flyfish1986/article/details/141320108

相关文章

  • C++ 获取Linux 服务器CPU占用率+内存空闲率(亲测绝对可以运行)
    转自:C++获取Linux服务器CPU占用率+内存空闲率(亲测绝对可以运行)-远征i-博客园(cnblogs.com)代码来自网络,部分修改,亲测绝对可用C++:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<unistd.h>usingnamespacestd;type......
  • 牛客网习题——通过C++实现
    一、目标实现下面4道练习题增强C++代码能力。1.求1+2+3+...+n_牛客题霸_牛客网(nowcoder.com)2.计算日期到天数转换_牛客题霸_牛客网(nowcoder.com)3.日期差值_牛客题霸_牛客网(nowcoder.com)4.打印日期_牛客题霸_牛客网(nowcoder.com)二、对目标的实现 1.求1+2+3+......
  • C++图笔记(三)有向无环图(及最小生成树(略))以及剩下的排序
    目录一,定义:1,有向无环图 2,拓朴排序 1,每个顶点出现且仅仅出现一次。 2,若存在一条从顶点A到顶点B的路径,那么在序列中顶点A出现在顶点B的前面。二,DAG的性质性质1.  从任意一个起点进行dfs,必不会陷入死循环。性质2.  入度为0的点信息确定,删掉入度为0的点......
  • C++--二叉搜索树
     目录 1.1二叉搜索树概念1.2二叉搜索树操作 1.2.1查找1.2.2插入1.2.3删除2.3二叉搜索树实现 2.4二叉搜索树的应用 2.5二叉搜索树的性能分析 1.1二叉搜索树概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:--若它的左子......
  • ssh配置文件安全设置
    1.在/etc/ssh/sshd_config中设置空闲超时值为200秒2.在/etc/ssh/sshd_config中禁用空密码3.在SSH配置文件(/etc/ssh/sshd_config)中禁用X11(图形服务器)转发功能,Shell访问不需要4.将MaxAuthenticationTries调整为/etc/ssh/sshd_config中的较低值,因此攻击者在尝试使用失败的密......
  • AUTOSAR&UDS 理论要点及isolar实战-22服务讲解及配置实战(2)
    1.读取数据22服务此部分和22服务讲解及配置实战(1)中保持一致,有需要的小伙伴前往上一博客查看。2.配置实战2.1DcmDsdServiceTables的配置1.DcmDsdSidTabFnc:工具自带的回调函数,调用静态代码包中的服务函数2.DcmDsdSidTabServiceId为0x22,配置22服务;3.DcmDsdSidTabSub......
  • C/C++语言基础--指针三大专题详解2(指针与数组关系,动态内存分配,代码均可)
    本专栏目的更新C/C++的基础语法,包括C++的一些新特性前言指针是C/C++的灵魂,和内存地址相关联,运行的时候速度快,但是同时也有很多细节和规范要注意的,毕竟内存泄漏是很恐怖的指针打算分三篇文章进行讲解,本专题是二,介绍了指针和数组的关系、动态内存如何分配和释放等问题专题......
  • Linux---systemctl常用命令以及service文件配置
    简介1.1什么是systemctl命令        systemctl是一个在Linux系统中用于管理系统服务的命令。它是systemd这个初始化系统的一部分,通过控制和监视系统的服务和单位文件,提供了对系统进程的强大管理功能。1.2systemctl的作用和用途        systemctl可以用于......
  • Eclipse下编写C++
    Eclipse下运行C++程序 文章目录Eclipse下运行C++程序装CDT插件测试运行C++程序附加说明众所周知Eclipse是常用于编写java的集成开发工具,但是像CodeBlocks和Dev-C++这类集成开发工具就只能编写C或C++的程序,极为不方便。写java的时候又得开......
  • 小白学习c++P7【1003】对齐输出(c++)详细讲解
     EXTRA##网站......