昇腾910平台安装驱动、固件、CANN toolkit、pytorch
本文使用的昇腾910平台操作系统是openEuler,之前没了解过,不过暂时感觉用起来和centOS差不多。系统架构是ARM,安装包基本都是带aarch64字样,注意和x86_64区别开,别下错了。
安装依赖
cmake
通过yum安装的cmake版本较老,需要源代码安装
wget https://cmake.org/files/v3.21/cmake-3.21.3.tar.gz
tar -zxvf cmake-3.21.3.tar.gz
cd cmake-3.21.3
./bootstrap
gmake -j16
sudo gmake install
anaconda
使用系统自带的python3也可以,不过anaconda的虚拟环境我用习惯了,感觉很方便。
在https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 直接找最新的版本。我用的是https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.09-0-Linux-aarch64.sh
安装完别忘记把环境变量加入.bashrc文件。
其它依赖
yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel gcc-gfortran
卸载旧的驱动、固件、CANN toolkit
卸载驱动
cd /usr/local/Ascend/driver/script
bash uninstall.sh
卸载固件
cd /usr/local/Ascend/firmware/script
bash uninstall.sh
卸载nnae
cd /usr/local/Ascend/nnae/6.3.RC1/script
bash uninstall.sh
卸载ascend-toolkit
cd /usr/local/Ascend/ascend-toolkit/
bash cann_uninstall.sh
/ascend-toolkit文件夹下可能安装了多个版本,用下面的命令找一下这些版本脚本位置,都卸载干净:
find . -type f -name "cann_uninstall.sh"
安装驱动和固件
下载链接 https://www.hiascend.com/hardware/firmware-drivers/community?product=4&model=10&cann=7.0.0.alpha003&driver=1.0.21.alpha
按你的平台和安装方式筛选:

我是下面这两个:
Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run
Ascend-hdk-910-npu-firmware_7.0.0.5.242.run
以root用户登录,将驱动和固件包上传。创建驱动运行用户HwHiAiUser。
groupadd -g 1000 HwHiAiUser
useradd -g HwHiAiUser -u 1000 -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
增加可执行权限:
chmod +x Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run
chmod +x Ascend-hdk-910-npu-firmware_7.0.0.5.242.run
安装驱动:
./ Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run --full --install-for-all
出现类似如下回显信息,说明安装成功。
Driver package installed successfully!
还可以通过执行npu-smi info命令检查驱动是否加载成功。
安装固件:
./ Ascend-hdk-910-npu-firmware_7.0.0.5.242.run --full
出现类似如下回显信息,说明安装成功。
Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect
驱动和固件安装完成后,重启系统。
reboot
安装CANN
下载安装包:https://www.hiascend.com/developer/download/community/result?module=cann&product=4&model=10
我是这个:
Ascend-cann-toolkit_7.0.0.alpha003_linux-aarch64.run
增加可执行权限:
chmod +x Ascend-cann-toolkit_7.0.0.alpha003_linux-aarch64.run
安装
./Ascend-cann-toolkit_7.0.0.alpha001_linux-x86_64.run --install
安装过程中输入Y同意协议。安装完成后,若显示如下信息,则说明软件安装成功。
[INFO] Ascend-cann-toolkit install success
配置CANN环境变量,将下面这句话加入.bashrc:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
安装pytorch
创建虚拟环境
CANN对python版本有要求,同时需要安装一些python包,可以通过下面的脚本检查是否满足:
cd /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux/bin
bash prereq_check.bash
我选用的版本是python3.8.11,通过下面命令创建虚拟环境:
conda create -n py38 python=3.8.11
激活环境
conda activate py38
安装依赖包
pip install pyyaml
pip install numpy
pip install attrs cloudpickle decorator psutil scipy synr==0.5.0 tornado absl-py
pip install google-cloud google-cloud-vision
protobuf==3.20.0
安装速度慢的话可以加上指定源,比如:
pip install -i https://mirrors.aliyun.com/pypi/simple/ pyyaml
注意protobuf的版本。
安装pytorch及adapter
参考 https://gitee.com/ascend/pytorch
我安装的是2.1.0版本,可以直接通过pip快速安装
pip3 install torch==2.1.0
pip3 install pyyaml
pip3 install setuptools
pip3 install torch-npu==2.1.0rc1
验证:
第一步:
python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"
返回True说明可以成功调用NPU。
第二步:
import torch
import torch_npux = torch.randn(2, 2).npu()
y = torch.randn(2, 2).npu()
z = x.mm(y)print(z)
能正常计算说明安装成功。可能遇到算子构造失败的情况,检查python版本是否符合要求,CANN安装之前是否卸载干净。
相关文章:
昇腾910平台安装驱动、固件、CANN toolkit、pytorch
本文使用的昇腾910平台操作系统是openEuler,之前没了解过,不过暂时感觉用起来和centOS差不多。系统架构是ARM,安装包基本都是带aarch64字样,注意和x86_64区别开,别下错了。 安装依赖 cmake 通过yum安装的cmake版本较…...
【数据挖掘】模型融合
模型融合是指将多个不同的机器学习模型组合起来,通过综合多个模型的预测结果来得到更准确的预测结果。模型融合可以提高模型的鲁棒性,减小模型的方差,提高模型的泛化能力。 常见的模型融合方法包括平均法、投票法和堆叠法。 平均法(Averagin…...
DM、Oracle、GaussDB、Kingbase8(人大金仓数据库)和HIVE给列增加注释
DM数据库给列增加注释 1、创建表 CREATE TABLE test222 ( id int NOT NULL PRIMARY KEY, name varchar(1000) DEFAULT NULL, email varchar(1000) DEFAULT NULL, phone varchar(1000) DEFAULT NULL ) 2、给列添加注释 comment on column TEST222.NAME is 这是一个列注释; 例如…...
C语言实例_stdlib.h库函数功能及其用法详解
一、前言 C语言作为一种高效、灵活的编程语言,标准库的使用对于开发人员来说是不可或缺的。其中,stdlib.h是C语言中一个重要的标准库头文件,提供了许多常用的函数和工具,以便开发人员能够更加便捷地进行内存管理、字符串处理、随…...
Error in onLoad hook: “URIError: URI malformed“ found in…报错处理以及完善uniapp针对对象传参
使用uniapp传参的过程中遇到这么一个问题,当我们需要传整个对象作为参数时,我会先将这个对象先编码,然后再解码,从而获取到怎么参数,平常实操的时候也没有遇到过问题,但是今天测试的时候,刚好一…...
c语言-位操作符练习题
文章目录 前言一、n&(n-1)的运用场景(n为整数)二、&1 和 >>的应用场景总结 前言 本篇文章介绍利用c语言的位操作符解决一些练习题,目的是掌握各个位操作符的使用和应用场景。 表1.1为c语言中的位操作符 操作符含义&按位与|按位或^按位异或~按位…...
园林机械部件自动化三维测量检测形位公差-CASAIM自动化三维检测工作站
随着园林机械的广泛应用,对其机械部件的精确测量需求也日益增加。传统的测量方法不仅效率低下,而且精度难以保证,因此,自动化三维测量技术成为了解决这一问题的有效途径。本文将重点介绍CASAIM自动化三维检测工作站在园林机械部件…...
o2o生活通全开源尊享版+多城市切换+企业付款+交友IM+平台快报
搭建教程 1.把 pigo2ov282.sql 文件里面的网址 test.souho.net 全部批量替换为你的自己的 2.使用 phpmyadmin 导入 pigo2ov282.sql 到你的数据库(直接访问/phpmyadmin 即可) 3.修改数据库文件/conf/db.php 里的数据库连接信息(请勿使用记事本…...
UE4开发BIM程序 的 流程
某机构BIM设计研究中心主任马晓龙,他对编程颇有研究。今天他会用通俗易懂的语言来讲解基于游戏引擎UE4的BIM技术可视化应用。对于想要自己开发程序的设计师一定要读一下! 1)关于UE4——UE4是什么? 可以简单的理解为,一…...
【AI大语言模型】ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用
以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...
【面试题】写一个睡眠函数
题目要求 请你编写一个异步函数,它接收一个正整数参数 millis ,并休眠 millis 毫秒。要求此函数可以解析任何值。 示例 1: 输入:millis 100 输出:100 解释: 在 100ms 后此异步函数执行完时返回一个 Pro…...
4. 云原生之kubesphere基础服务搭建
文章目录 安装kubesphere插件服务暴露NodePort方式LoadBalancer方式安装 OpenELB部署eip资源配置网关启动网关创建路由测试网关路由ingress高级功能在服务中配置LoadBalancer 基础设施部署服务部署建议helm仓库添加helm仓库 运维相关部署gitlab部署nexus3部署harbor 研发相关 安…...
思福迪运维安全管理系统 任意文件读取漏洞
产品简介 思福迪运维安全管理系统是思福迪开发的一款运维安全管理堡垒机 漏洞概述 由于思福迪运维安全管理系统 GetCaCert路由存在任意文件读取漏洞,攻击者可通过该漏洞在服务器端读取任意文件敏感内容,可能导致攻击者后续获取到相关的服务器权限 资…...
OCR在审核应用落地
本文字数:6686字 预计阅读时间:35分钟 01 背景 1、业务背景 在传统视频审核场景中,审核人员需要对进审视频中的文字内容进行逐一审核,避免在文字上出现敏感词、违禁词或者广告等相关词汇。这种人工审核费时费力,并且由…...
借贷协议 Tonka Finance:铭文资产流动性的新破局者
“Tonka Finance 是铭文赛道中首个借贷协议,它正在为铭文资产赋予捕获流动性的能力,并为其构建全新的金融场景。” 在 2023 年的 1 月,比特币 Ordinals 协议被推出后,包括 BRC20,Ordinals 等在内的系列铭文资产在包括比…...
Python+Yolov5+Qt交通标志特征识别窗体界面相片视频摄像头
程序示例精选 PythonYolov5Qt交通标志特征识别窗体界面相片视频摄像头 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonYolov5Qt交通标志特征识别窗体界面相片视频摄像头》编写代码&a…...
浅谈高并发以及三大利器:缓存、限流和降级
引言 高并发背景 互联网行业迅速发展,用户量剧增,系统面临巨大的并发请求压力。 软件系统有三个追求:高性能、高并发、高可用,俗称三高。三者既有区别也有联系,门门道道很多,全面讨论需要三天三夜&#…...
深入ArkUI:深入实战组件text和text input
文章目录 Text组件介绍Text组件的属性方法Text:文本显示组件4.3TextInput组件实战案例:图片宽度控制页面本文总结要点回顾在今天的课程中,我们将深入学习ArkUI提供的基础组件,着重探讨text和text input两个组件。 Text组件介绍 Text组件是一个用于显示文本的组件,其主要作…...
WPF 基础(Binding 二)
续接上文,本章继续讲解WPF Binding相关知识,主要内容是绑定的模式和绑定源(Source) 5绑定模式 在使用Binding类的时候有4中绑定模式可以选择 BindingMode TwoWay导致对源属性或目标属性的更改可自动更新对方。此绑定类型适用于…...
限制el-upload组件的上传文件大小
限制el-upload组件的上传文件大小 <el-upload :before-upload"handleBeforeUpload"><!-- 其他组件内容 --> </el-upload>Vue实例中定义handleBeforeUpload方法来进行文件大小的验证。你可以使用file.size属性来获取文件的大小,并与你期…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
