参考文档: https://www.hiascend.com/document/detail/zh/mindx-dl/500/AVI/cpaug/cpaug_018.html

此文档实现为NPU910B3卡

主机设置静态虚拟npu

设置虚拟化模式

!本命令只支持再物理机执行,取值为0或1,(如果是在虚拟机内划分vNPU,不需要执行本命令)。

  • 0:虚拟化实例功能(容器模式),适用于将vNPU挂载到容器。
  • 1:虚拟化实例功能(虚拟机模式),适用于将vNPU挂载到虚拟机。

npu-smi info -t vnpu-mode # 查看当前虚拟化模式

npu-smi set -t vnpu-mode 0 # 虚拟化模式修改为容器模式

添加虚拟卡

创建虚拟NPU,不同卡型号,模板不同

npu-smi set -t create-vnpu -i 0 -c 0 -f --help 查看模板

其中-i 卡号 -c 芯片号 -f 模板
在这里插入图片描述
可以根据名称来确定vnpu模板名对应的配置

在这里插入图片描述

npu-smi set -t create-vnpu -i 0 -c 0 -f vir05_1c_16g # 创建一张1c16G的vnpu,这是1/4之一的切分颗粒度,可以切分4张,执行4次此命令

在这里插入图片描述

设置恢复状态:配置vNPU恢复状态。该参数用于设备重启时,设备能够保存vNPU配置信息,重启后,vNPU配置依然有效。

npu-smi set -t vnpu-cfg-recover -d 1

查看vnpu创建信息

npu-smi info -t info-vnpu -i 0 -c 0

在这里插入图片描述

销毁vnpu

npu-smi set -t destroy-vnpu -i -c 0 -v xxx # -v 为vnpu id 可以在查看nvpu创建信息中查看nvpu id为多少

在这里插入图片描述

注意: 如果使用MindX DL动态虚拟化功能,则不需要提前创建vNPU,MindX DL运行任务时自动按照配置要求调用接口创建vNPU。

注意:Ascend Docker Runtime使用vNPU,既可以先通过npu-smi工具创建vNPU,再将vNPU挂载到容器中;也可以在拉起容器时,直接通过ASCEND_VISIBLE_DEVICES和ASCEND_VNPU_SPECS参数从物理芯片上虚拟化出多个vNPU并挂载至容器
https://www.hiascend.com/document/detail/zh/mindx-dl/500/AVI/cpaug/cpaug_015.html#ZH-CN_TOPIC_0000001841176769__section514441719341

修改device插件信息

args中添加 -volcanoType=false -presetVirtualDevice=true

containers:
- image: swr.cn-south-1.myhuaweicloud.com/ascendhub/ascend-k8sdeviceplugin:v6.0.0name: device-plugin-01resources:requests:memory: 500Micpu: 500mlimits:memory: 500Micpu: 500mcommand: [ "/bin/bash", "-c", "--"]args: [ "device-plugin -useAscendDocker=true -volcanoType=false -presetVirtualDevice=true -logFile=/var/log/mindx-dl/devicePlugin/devicePlugin.log -logLevel=0" ]securityContext:privileged: truereadOnlyRootFilesystem: true

查看node是否有nvpu资源

kubectl describe node $nodename

在这里插入图片描述
查看节点是否有 vir05_1c_16g的资源

启动pytorch测试

使用昇腾pytorch镜像测试是否可以看到pod中vnpu和使用vnpu

注意:一个pod只能占用一张vnpu卡

创建测试pod。
在这里插入图片描述
kubectl apply -f pod.yaml

测试占用卡是否成功

# 如果有libgomp1报错
apt-get update && apt-get install -y libgomp1source /usr/local/Ascend/ascend-toolkit/set_env.sh
import torch
import torch_npu# 创建NPU张量
a = torch.randn(3, 3).npu()
b = torch.randn(3, 3).npu()# 矩阵乘法
c = torch.matmul(a, b)
print(c)# 将结果移回CPU
c_cpu = c.cpu()
print(c_cpu)import torch
# - import torch_npu # torch_npu2.5.1及以后版本可以不用手动导包
x = torch.randn(2, 2).npu()
y = torch.randn(2, 2).npu()
z = x.mm(y)print(z)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis常用数据结构以及多并发场景下的使用分析:Set类型

文章目录前言redis中的set结构疑问1 :为什么使用数组后 整体时间复杂度还是O(1)疑问2: set特性是无序的那为什么当元素少的时候 用连续数组 去存储呢?疑问3:当元素少于512的时候即使用intset存储的时候 是如何维护唯一性的&#x…

Linux中rw-rw-r--相关的访问权限讲解

下面就是关于 rw-rw-r-- 的知识图谱式讲解。核心节点:rw-rw-r-- (文件权限表示法) 这是一个在 Linux/Unix 操作系统中,通过 ls -l 命令查看到的,用于描述文件或目录访问权限的10字符字符串。分支一:字符串的解剖 (Anatomy of the …

C#异常处理:更优雅的方式

C#异常处理:更优雅的方式 在 C# 编程的世界里,异常处理是绕不开的重要环节。程序运行时难免会出现各种意外,若处理不当,可能导致程序崩溃,给用户带来糟糕体验。所以,掌握更优雅的异常处理方式,对…

Qt6中模态与非模态对话框区别

一.阻塞 vs 非阻塞1.模态对话框阻塞父窗口:打开后,用户必须先处理该对话框(关闭或完成操作),才能继续操作父窗口。应用场景:强制用户立即响应的场景,如确认对话框、登录窗口、文件选择器等。2.非…

处理Web请求路径参数

目录 1. 路径变量(Path Variable) 2. 查询参数(Query Parameter) 3. 表单参数(Form Data) 4. 请求体JSON参数(Request Body JSON) 5. 请求头参数(Header Parameters&…

创客匠人:技术赋能下的创始人 IP 打造与内容创作新逻辑

在知识变现的浪潮中,创始人 IP 的核心竞争力始终围绕内容展开,但内容创作的效率与质量往往成为瓶颈。创客匠人基于对行业的深刻洞察,探索出技术与内容融合的路径,为创始人 IP 打造提供了新的思路 —— 不再将内容创作视为单纯的输…

Mysql分片:一致性哈希算法

一、一致性哈希的核心原理哈希取模最大的痛点是:当分片数量(例如数据库节点数)发生变化时,几乎所有数据的哈希结果都会改变,导致大规模的数据迁移。一致性哈希就是为了解决这个“伸缩性差”的问题而诞生的。核心思想&a…

前端学习 vben 之 axios interceptors

前端学习 vben 之 axios interceptors interceptor 拦截器,是一种软件设计模式,核心思想就是在程序执行的特定阶段(如请求发送前,响应返回后,方法调用前后等)自动插入自定义逻辑。实现对核心流程的“拦截”…

【java面试day4】redis缓存-数据持久化

文章目录问题💬 Question 1相关知识问题 💬 Question 1 Q:redis作为缓存,数据的持久化是怎么做的? A:有两种机制,一种是RDB,RDB会在指定的时间间隔内将内存中的数据生成快照,保存…

Vue3中element plus默认获取最近一周和上个月的时间区间并在后端分开传值

<el-form-item label"结算时间&#xff1a;" prop"datetimerangevalue"><el-date-pickerv-model"datetimerangevalue"value-format"YYYY-MM-DD HH:mm:ss"type"datetimerange"range-separator"至"start-p…

SQLAlchemy数据库连接密码特殊字符处理完全指南

引言 在使用SQLAlchemy连接数据库时&#xff0c;我们通常使用URL格式指定连接信息&#xff0c;如mysqlpymysql://user:passwordhost:port/database。然而&#xff0c;当密码中包含特殊字符&#xff08;如、#、$、!等&#xff09;时&#xff0c;会导致URL解析错误&#xff0c;进…

1.4 ARM安全参考架构(PSA Certified)

目录1.4.1 PSA Certified概述1.4.2 PSA认证级别详解1.4.3 PSA与TF-A的关系1.4.4 PSA安全模型实现信任根(RoT)架构关键安全服务&#xff1a;1.4.5 认证流程实践1.4.6 典型应用案例参考资料1.4.1 PSA Certified概述 ARM Platform Security Architecture (PSA) Certified 是一套完…

企业网络安全的“金字塔”策略:构建全方位防护体系的核心思路

在数字化转型的浪潮中&#xff0c;企业的网络安全已从单一的防护措施&#xff0c;发展成为多层次、全方位的安全体系。如何精准应对日益复杂的网络威胁&#xff0c;成为众多企业关注的焦点。本文将分享企业构建高效安全防护“金字塔”的核心思路。一、从“排查隐患”到“主动防…

爬虫-request模块使用

1.使用和安装2.代码测试打印返回的内容&#xff0c;默认是请求体中的标识.text 是打印源代码设置一下编码

HTML + CSS + JavaScript

目录 1 HTML HTML 文件基本结构 HTML 开发工具 HTML 常见标签 标题标签&#xff1a;h1 - h6 段落标签&#xff1a;p 换行标签&#xff1a;br 图片标签&#xff1a;img 超链接标签&#xff1a;a 表格标签 表单标签 form 标签 input 标签 select 标签 textarea 标…

Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升

文章目录引言一、连接池的基本概念与作用二、关键连接参数详解2.1 max_connections2.2 wait_timeout2.3 interactive_timeout2.4 connect_timeout2.5 thread_cache_size三、连接池参数不合理导致的性能问题3.1 连接耗尽3.2 响应变慢3.3 连接失效3.4 资源浪费四、连接池参数优化…

浪潮CD1000-移动云电脑-RK3528芯片-2+32G-开启ADB ROOT破解教程

浪潮CD1000-移动云电脑-RK3528芯片-232G-安卓9-开启ADB ROOT破解教程破解教程&#xff1a;1.先下载好开心电视助手&#xff08;下载地址及其他版本&#xff1a;【工具大全】-【开心电视助手3.8&#xff0f;4.0&#xff0f;4.6&#xff0f;6.0&#xff0f;6.2&#xff0f;6.3&am…

【网络编程】简易的 p2p 模型,实现两台虚拟机之间的简单点对点通信,并以小见大观察 TCP 协议的具体运行

文章目录基本概念业务拆解代码实现准备工作实现被动的功能——多线程指针函数实现主动的功能——用户选择界面主函数代码执行效果意外收获总结推荐一个零声教育学习教程&#xff0c;个人觉得老师讲得不错&#xff0c;分享给大家&#xff1a;[Linux&#xff0c;Nginx&#xff0c…

react状态管理库 - zustand

什么是zustand&#xff1f; zustand 是一个轻量级、快速且可扩展的 React 状态管理库&#xff0c;旨在提供一种简单直接的方式来管理应用状态&#xff0c;而无需其他解决方案通常伴随的繁琐代码。根据官方 Zustand 文档&#xff0c;Zustand 是“一个使用简化 flux 原理的小型、…

粗排样本架构升级:融合LTR特征提升模型性能的技术实践

粗排样本架构升级&#xff1a;融合LTR特征提升模型性能的技术实践 ——基于PySpark的样本构建与特征工程深度解析 一、粗排系统的定位与技术演进 在推荐系统级联架构中&#xff0c;​粗排&#xff08;Rough Ranking&#xff09;​​ 承担着关键过渡角色&#xff1a;从召回层获…