当前位置: 首页 > news >正文

昇腾 k8s vnpu配置

参考文档: 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.dtcms.com/a/272355.html

相关文章:

  • 在Linux中,如何使用grep awk sed find?
  • 链式二叉树数据结构(递归)
  • 自动化——bat——批量复制所选的文件
  • 微服务架构的演进:迈向云原生——Java技术栈的实践之路
  • SpringBoot整合腾讯云新一代行为验证码
  • RabbitMQ 幂等性
  • Allegro PCB 手动添加元器件全流程解析
  • expect 安装入门手册
  • 【保姆级教程】基于anji-plus-captcha实现行为验证码(滑动拼图+点选文字),前后端完整代码奉上!
  • 人工智能-基础篇-28-模型上下文协议--MCP请求示例(JSON格式,客户端代码,服务端代码等示例)
  • 开源入侵防御系统——CrowdSec
  • Linux 服务器综合性能测试脚本(优化版)结构化分析
  • 若依框架去掉Redis
  • CORESET 0 and SIB1 Scheduling in a Nutshell
  • 论文阅读笔记:VI-Net: Boosting Category-level 6D Object Pose Estimation
  • RocketMQ安装(Windows环境)
  • 上线节点固定,项目进度紧张,如何合理压缩工期
  • NGINX系统基于PHP部署应用
  • 实验作业1+整理笔记截图
  • 实训八——路由器与交换机与网线
  • 栈题解——有效的括号【LeetCode】两种方法
  • 硬件基础------电感
  • Matplotlib-绘制训练曲线指南
  • 力扣刷题记录(c++)06
  • HTML应用指南:利用GET请求获取全国永辉超市门店位置信息
  • Unity3D iOS闪退问题解决方案
  • PyTorch仿射变换:原理与实战全解析
  • 深入理解Java虚拟机:Java内存区域与内存溢出异常
  • 【运维架构】云计算运维架构师与基础设施,技术路线,Linux证书(标准化/定制化/CNCF,公有云/混合云/私有云)
  • 【图像处理基石】如何入门图像校正?