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

news2024/12/27 13:00:49

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2054085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

100行代码实现自己的RAG知识库

背景 由于日常工作需要对接各种第三方合作方,对接过程中的文档繁多、沟通不及时、问题排查繁琐以及工作具有重复性等问题愈发明显。合作方遇到对接问题需要提工单经门户网站–>产品部门接口人–>开发人员问题排查/修复–>产品部门接口人–>合作方收到回…

公链大变局:ETH老态龙钟,SOL势如破竹

今年年初,比特币现货ETF的通过引发了大量资金涌入加密市场,比特币价格一度突破前高,市场一片繁荣。然而,这一波行情却并未如预期般延续到以太坊。相反,在8月初,以太坊(ETH)价格近乎腰…

C语言基础⑨——指针

一、指针的引入 int —— 4位;float —— 4位;double —— 8位;short —— 2位;long —— 8位; 为函数修改实参提供支撑;为动态内存管理提供支持;为动态数据结构提供支持;为内存访问…

MT6761 快充同步

MT6761 是反激式电源的高性能60V同步整流器。MT6761兼容各种反激转换器类型。支持 DCM、CCM 和准谐振模式。MT6761集成了一个60V功率MOSFET&#xff0c;可以取代肖特基二极管&#xff0c;提高效率。V SW <V TH-ON 时&#xff0c;MT6761内部 MOSFET 导通。V SW >V TH-OFF …

【AI 绘画】模型转换与快速生图(基于diffusers)

AI 绘画- 模型转换与快速生图&#xff08;基于diffusers&#xff09; 1. 本章介绍 本次主要展示一下不同框架内文生图模型转换&#xff0c;以及快速生成图片的方法。 SDXL文生图 2. sdxl_lightning基本原理 模型基本原理介绍如下 利用蒸馏方法获取小参数模型。首先&#x…

三、前后端分离通用权限系统(3)

&#x1f33b;&#x1f33b;目录 一、角色管理1.1、测试 controller 层1.2、整合 Swagger21.2.1、Swagger 介绍1.2.2、集成 knife4j1.2.2.1 添加依赖1.2.2.2 添加 knife4j 配置类1.2.2.3 Controller 层添加注解1.2.2.4、测试 1.3、定义统一返回结果对象1.3.1、定义统一返回结果…

备战秋招60天算法挑战,Day21

题目链接&#xff1a; https://leetcode.cn/problems/number-of-1-bits/ 视频题解&#xff1a; https://www.bilibili.com/video/BV1ir421M7XU/ LeetCode 191.位1的个数 题目描述 编写一个函数&#xff0c;输入是一个无符号整数 &#xff08;以二进制串的形式&#xff09;&am…

C语言 ——— 学习并使用calloc和realloc函数

目录 calloc函数的功能 学习并使用calloc函数​编辑 realloc函数的功能 学习并使用realloc函数​编辑 calloc函数的功能 calloc函数的功能和malloc函数的功能类似&#xff0c;于malloc函数的区别只在于calloc函数会再返回地址之前把申请的空间的每个字节初始化为全0 C语言…

tweens运动详解

linear 线性匀速运动效果Sine.easeIn 正弦曲线的缓动(sin(t))/ 从0开始加速的缓动,也就是先慢后快Sine.easeOut 正弦曲线的缓动(sin(t))/ 减速到0的缓动,也就是先快后慢Sine.easeInOut 正弦曲线的缓动(sin(t))/ 前半段从0开始加速,后半段减速到0的缓动Quad.easeIn 二次…

c语言基础-------指针变量和变量指针

在 C 语言中,“变量指针”和“指针变量”这两个术语虽然经常交替使用,但它们的侧重点有所不同。 指针变量 “指针变量”是指其值为内存地址的变量。指针变量的类型定义了它所指向的数据类型,例如 int * 是一个指向整型数据的指针变量。 以下是一个指针变量的例子: int v…

数据埋点系列 16| 数据可视化高级技巧:从洞察到视觉故事

数据可视化是将复杂数据转化为直观、易懂的视觉表现的艺术和科学。本文将探讨一些高级的数据可视化技巧&#xff0c;帮助您创建更具吸引力和洞察力的数据展示。 目录 1. 高级图表类型1.1 桑基图&#xff08;Sankey Diagram&#xff09;1.2 树状图&#xff08;Treemap&#xf…

3、目标定位(视觉测距)

目标定位的目的&#xff1a;获取物品相对于视觉模块的三维坐标&#xff0c;并将其转换为物品相对于机械臂坐标原点的三维坐标。 要获取物品三维坐标&#xff0c;则首先要测量物品距离摄像头的距离&#xff0c;又因为摄像头安装在机械臂末端上方&#xff0c;所以获取物品相对于摄…

基于springboot的高校学生服务平台的设计与实现--附源码91686

目录 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能分析 …

代码随想录算法训练营第二十天| 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

目录 一、LeetCode 235. 二叉搜索树的最近公共祖先思路&#xff1a;C代码 二、LeetCode 701.二叉搜索树中的插入操作思路C代码 三、LeetCode 450.删除二叉搜索树中的节点思路C代码 总结 一、LeetCode 235. 二叉搜索树的最近公共祖先 题目链接&#xff1a;LeetCode 235. 二叉搜…

C语言:for、while、do-while循环语句

目录 前言 一、while循环 1.1 while语句的执行流程 1.2 while循环的实践 1.3 while循环中的break和continue 1.3.1 break 1.3.2 continue 二、for循环 2.1 语法形式 2.2 for循环的执行流程 2.3 for循环的实践 2.4 for循环中的break和continue 2.4.1 break 2.4.2 …

Java数组03:数组边界、数组的使用

本节内容视频链接&#xff1a;https://www.bilibili.com/video/BV12J41137hu?p55&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p55&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.数组边界 数组下标的合法区间[ 0, Len…

综合监管云平台存在信息泄露漏洞_中科智远综合监管云平台

0x01阅读须知 本文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考。本文章仅用于信息安全防御技术分享&#xff0c;因用于其他用途而产生不良后果,作者不承担任何法律责任&#…

昇腾 - 快速理解AscendCL(Ascend Computing Language)基础概念的HelloWord

昇腾 - 快速理解AscendCL&#xff08;Ascend Computing Language&#xff09;基础概念的HelloWord flyfish AscendCL&#xff08;Ascend Computing Language&#xff09;是一套用于在昇腾平台上开发深度神经网络应用的C语言API库&#xff0c;提供运行资源管理、内存管理、模型…

鸿蒙(API 12 Beta3版)【录像流二次处理(C/C++)】媒体相机开发指导

通过ImageReceiver创建录像输出&#xff0c;获取录像流实时数据&#xff0c;以供后续进行图像二次处理&#xff0c;比如应用可以对其添加滤镜算法等。 开发步骤 导入NDK接口&#xff0c;接口中提供了相机相关的属性和方法&#xff0c;导入方法如下。 // 导入NDK接口头文件#in…

ArcGIS Pro基础:软件的常用设置:中文语言、自动保存、默认底图

上图所示&#xff0c;在【选项】&#xff08;Options&#xff09;里找到【语言】设置&#xff0c;将语言切换为中文选项&#xff0c;记得在安装软件时&#xff0c;需要提前安装好ArcGIS语言包。 上图所示&#xff0c;在【选项】里找到【编辑】设置&#xff0c;可以更改软件默认…