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

Ascend310 EP模式下容器内进行推理测试

EP模式下容器内进行推理测试

本文的软硬件环境如下:

机器:x86台式机一台

OS: 5.4.0-26-generic Ubuntu20.04 LTS

推理卡:DLAP200-HP-2(凌华基于atlas200模块打造的两模块推理卡)

1. 推理卡固件和驱动安装

凌华的推理卡与华为的A300-3010推理卡的架构和实现方式一致,所以具体过程请参考华为官网的A300-3010推理卡的固件和驱动安装过程。安装成功后结果如下:

HwHiAiUser@ChengMing-3900:~$ npu-smi info
+--------------------------------------------------------------------------------------------------------+
| npu-smi 23.0.rc2                                 Version: 23.0.rc2                                     |
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+===============================+=================+======================================================+
| 0       310                   | OK              | 12.8         48                0     / 969           |
| 0       0                     | 0000:03:00.0    | 0            587  / 7759                             |
+===============================+=================+======================================================+
| 1       310                   | OK              | 12.8         47                0     / 969           |
| 0       1                     | 0000:04:00.0    | 0            573  / 7759                             |
+===============================+=================+======================================================+
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Chip                  | Process id      | Process name             | Process memory(MB)        |
+===============================+=================+======================================================+
| No running processes found in NPU 0                                                                    |
+===============================+=================+======================================================+
| No running processes found in NPU 1                                                                    |
+===============================+=================+======================================================+

2. 安装docker

运行一下命令安装docker

HwHiAiUser@ChengMing-3900:~$ sudo apt install docker.io
HwHiAiUser@ChengMing-3900:~$ sudo groupadd docker
HwHiAiUser@ChengMing-3900:~$ sudo usermod -aG docker HwHiAiUser

3. 获取华为的推理镜像

通过https://www.hiascend.com/developer/ascendhub登陆到华为官方的镜像仓库。
在这里插入图片描述

选择推理镜像—>infer-modelzoo
在这里插入图片描述

根据自己npu-smi info显示的版本信息,选择对应的镜像版本,我的驱动版本是23.0.RC2,所以我选择23.0.RC2-mxvision,点击立即下载。要求输入你在华为的账号密码。
在这里插入图片描述

根据弹出的镜像下载步骤,来下载镜像。

HwHiAiUser@ChengMing-3900:~$  sudo docker login -u cn-south-1@H2W7IKXWB30I9YP30X8A swr.cn-south-1.myhuaweicloud.com
根据提示输入密码
HwHiAiUser@ChengMing-3900:~$ sudo docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/infer-modelzoo:23.0.RC2-mxvision-x86

镜像下载完成后,运行一下命令查看镜像。

HwHiAiUser@ChengMing-3900:~$ sudo docker images
[sudo] HwHiAiUser 的密码:
REPOSITORY                                                  TAG                     IMAGE ID       CREATED         SIZE
swr.cn-south-1.myhuaweicloud.com/ascendhub/infer-modelzoo   23.0.RC2-mxvision-x86   6a41f21ad7cc   10 months ago   6.28GB

4. 运行容器

根据镜像描述文件中的启动容器命令,编写一个运行脚本。

HwHiAiUser@ChengMing-3900:~$ vim run_docker.sh
输入以下内容:
docker run -it \
-u root \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /var/log/npu:/var/log/npu \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/slog:/usr/slog \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/tools/:/usr/local/Ascend/driver/tools/ \
-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
-v /data:/data \
swr.cn-south-1.myhuaweicloud.com/ascendhub/infer-modelzoo:23.0.RC2-mxvision-x86 \
/bin/bash

给脚本赋予执行权限

HwHiAiUser@ChengMing-3900:~$ chmod +x ./run_docker.sh

启动容器

HwHiAiUser@ChengMing-3900:~$ ./run_docker.sh

在root用户下访问硬件设备

root@4a7c46a13bdf:/home/HwHiAiUser# npu-smi info
+--------------------------------------------------------------------------------------------------------+
| npu-smi 23.0.rc2                                 Version: 23.0.rc2                                     |
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+===============================+=================+======================================================+
| 0       310                   | OK              | 12.8         48                0     / 969           |
| 0       0                     | 0000:03:00.0    | 0            587  / 7759                             |
+===============================+=================+======================================================+
| 1       310                   | OK              | 12.8         48                0     / 969           |
| 0       1                     | 0000:04:00.0    | 0            573  / 7759                             |
+===============================+=================+======================================================+
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Chip                  | Process id      | Process name             | Process memory(MB)        |
+===============================+=================+======================================================+
| No running processes found in NPU 0                                                                    |
+===============================+=================+======================================================+
| No running processes found in NPU 1                                                                    |
+===============================+=================+======================================================+

切换到HwHiAiUser用户下,再次访问设备,如果报以下错误,可能是由于容器中的HwHiAiUser用户的ID和宿主机中对应的用户ID不一致导致的,则需要修改用户的ID和组ID。

root@4a7c46a13bdf:/home/HwHiAiUser# su HwHiAiUser
HwHiAiUser@4a7c46a13bdf:~$ npu-smi info
DrvMngGetConsoleLogLevel failed. (g_conLogLevel=3)
dcmi module initialize failed. ret is -8005

退出容器,查看宿主机HwHiAiUser的用户ID, 组ID信息

HwHiAiUser@ChengMing-3900:~$ id HwHiAiUser
用户id=998(HwHiAiUser) 组id=1001(HwHiAiUser)=1001(HwHiAiUser),4(adm),27(sudo),134(docker)

再次启动容器

HwHiAiUser@ChengMing-3900:~$ sudo docker run ca7c521c074d

修改HwHiAiUser的用户ID和组ID,保持和宿主机中的一致。

root@ca7c521c074d:/home/HwHiAiUser# id HwHiAiUser #查看容器中的HwHiAiUser的用户ID和组ID
uid=1000(HwHiAiUser) gid=1000(HwHiAiUser) groups=1000(HwHiAiUser)
root@ca7c521c074d:/home/HwHiAiUser# usermod -u 998 HwHiAiUser #修改用户ID
root@ca7c521c074d:/home/HwHiAiUser# groupmod -g 1001 HwHiAiUser #修改组ID

再次切换到HwHiAiUser用户。

root@4a7c46a13bdf:/home/HwHiAiUser# su HwHiAiUser

再次在容器中运行npu-smi info查看能否正常访问硬件

HwHiAiUser@ca7c521c074d:~$ npu-smi info
+--------------------------------------------------------------------------------------------------------+
| npu-smi 23.0.rc2                                 Version: 23.0.rc2                                     |
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+===============================+=================+======================================================+
| 0       310                   | OK              | 12.8         48                0     / 969           |
| 0       0                     | 0000:03:00.0    | 0            587  / 7759                             |
+===============================+=================+======================================================+
| 1       310                   | OK              | 12.8         48                0     / 969           |
| 0       1                     | 0000:04:00.0    | 0            573  / 7759                             |
+===============================+=================+======================================================+
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Chip                  | Process id      | Process name             | Process memory(MB)        |
+===============================+=================+======================================================+
| No running processes found in NPU 0                                                                    |
+===============================+=================+======================================================+
| No running processes found in NPU 1                                                                    |
+===============================+=================+======================================================+

5. 运行推理测试程序

切换到HwHiAiUser用户

root@ca7c521c074d:/home/HwHiAiUser# su HwHiAiUser

运行测试程序:

HwHiAiUser@ca7c521c074d:~$ bash test_model.sh
Begin to initialize Log.
The output directory of logs file doesn't exist.
Create directory to save logs information.
WARNING: Logging before InitGoogleLogging() is written to STDERR
I20240618 02:51:41.334579    59 FileUtils.cpp:330] The input file is empty
I20240618 02:51:41.334590    59 FileUtils.cpp:472] Check Other group permission: Current permission is 4, but required no greater than 0.
Save logs information to specified directory.
sdk run time: 6814
process img0: image_0051.jpg, infer result: {"MxpiClass":[{"classId":504,"className":" 504: 'coffee mug',","confidence":6.26953125},{"classId":968,"className":" 968: 'cup',","confidence":5.8203125},{"classId":901,"className":" 901: 'whiskey jug',","confidence":4.9453125},{"classId":725,"className":" 725: 'pitcher, ewer',","confidence":4.31640625},{"classId":505,"className":" 505: 'coffeepot',","confidence":4.16796875}]}
sdk run time: 6066
process img1: image_0019.jpg, infer result: {"MxpiClass":[{"classId":504,"className":" 504: 'coffee mug',","confidence":6.42578125},{"classId":968,"className":" 968: 'cup',","confidence":5.453125},{"classId":901,"className":" 901: 'whiskey jug',","confidence":4.79296875},{"classId":505,"className":" 505: 'coffeepot',","confidence":4.38671875},{"classId":550,"className":" 550: 'espresso maker',","confidence":4.015625}]}
sdk run time: 7644

如果终端打印出如下格式的推理结果,则证明推理执行成功

infer result: {"MxpiClass":[{"classId":504,"className":" 504: 'coffee mug',","confidence":6.26953125},{"classId":968,"className":" 968: 'cup',","confidence":5.8203125},{"classId":901,"className":" 901: 'whiskey jug',","confidence":4.9453125},{"classId":725,"className":" 725: 'pitcher, ewer',","confidence":4.31640625},{"classId":505,"className":" 505: 'coffeepot',","confidence":4.16796875}]}

相关文章:

Ascend310 EP模式下容器内进行推理测试

EP模式下容器内进行推理测试 本文的软硬件环境如下: 机器:x86台式机一台 OS: 5.4.0-26-generic Ubuntu20.04 LTS 推理卡:DLAP200-HP-2(凌华基于atlas200模块打造的两模块推理卡) 1. 推理卡固件和驱动安…...

(el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程

Ⅰ、Element-plus 提供的Select选择器组件与想要目标情况的对比&#xff1a; 1、Element-plus 提供Select组件情况&#xff1a; 其一、Element-ui 自提供的Select代码情况为(示例的代码)&#xff1a; // Element-plus 提供的组件代码: <template><div class"f…...

Java基础之Math与Array类与System

文章目录 一、Math.random&#xff08;&#xff09;二、Arrays.binarySearch()三、asList&#xff08;&#xff09;四、System tip&#xff1a;以下是正文部分 一、Math.random&#xff08;&#xff09; a < num < b int num (int)(Math.random() * (b - a 1)) a二、…...

警告:Hydration attribute mismatch on Note: this mismatch is check-only.(水合不匹配)

vue3Nuxt3运行代码是提示如下警告 [Vue warn]: Hydration attribute mismatch on <ul id​"sub_menu_5_$$_sub1-popup" class​"ant-menu ant-menu-sub ant-menu-inline" data-menu-list​"true" style​"display:​none;​">​…...

【机器学习】CART决策树算法的核心思想及其大数据时代银行贷款参考案例——机器认知外界的重要算法

目录 引言 概述 CART决策树的特点 核心思想 减少不确定性的指标 基尼系数&#xff08;Gini Index&#xff09; 分类错误率 熵 银行实例 背景 数据准备 模型构建 模型评估与优化 应用与结果 代码示例 ✈✈✈✈引言✈✈✈✈ CART算法既可以用于分类问题&#xff0…...

编程软件是由什么编程的

编程软件是由什么编程的 在数字化的世界里&#xff0c;编程软件作为构建数字生态的基石&#xff0c;其背后所蕴含的奥秘往往令人感到困惑。那么&#xff0c;这些编程软件究竟是由什么编程的呢&#xff1f;这背后隐藏着怎样的逻辑与技术&#xff1f;接下来&#xff0c;我们将从…...

如何查看自己本地ip

1.winR 2.cmd 3.ipconfig...

高考分数限制下,选好专业还是选好学校?

高考分数限制下&#xff0c;选好专业还是选好学校&#xff1f; 高考作为每年一度的盛大考试&#xff0c;不仅关乎学生们的未来&#xff0c;更承载了家庭的期望。2004年高考刚刚结束&#xff0c;许多考生和家长已经开始为填报志愿而焦虑。选好学校和专业&#xff0c;直接关系到…...

Django学习(2)项目实战

1、环境及简介 前端开发&#xff1a;HTML、CSS、JavaScript 后端开发&#xff1a;Java、PHP、Python、GO 数据库&#xff1a;MySQL、MSSQL、Oracle、Redis 安装Django pip install Django 或 下载.whl后 pip install D&#xff1a;\xxx.whl 创建Django项目 File--New Projec…...

pdf格式转成jpg图片,pdf格式如何转jpg

pdf转图片的方法&#xff0c;对于许多人来说可能是一个稍显陌生的操作。然而&#xff0c;在日常生活和工作中&#xff0c;我们有时确实需要将pdf文件转换为图片格式&#xff0c;以便于在特定的场合或平台上进行分享、展示或编辑。以下&#xff0c;我们将详细介绍一个pdf转成图片…...

Java的三个接口Comparable,Comparator,Cloneable(浅拷贝与深拷贝)

Comparable 当我们要进行对象的比较的时候&#xff0c;我们是不能直接用>、< 这些符号直接进行比较的。 由于这是引用类型变量也是自定义类型变量&#xff0c;直接进行比较的时候&#xff0c;我们是通过对象的地址进行比较的&#xff0c;我们可以使用、! 进行两个对象的…...

pytorch学习笔记7

getitem在进行索引取值的时候自动调用,也是一个魔法方法,就像列表索引取值那样,一个意思 import torchvision from torch.utils.data import DataLoaderdata_transformtorchvision.transforms.Compose([torchvision.transforms.ToTensor()] ) test_datatorchvision.datasets.C…...

LeetCode热题3.无重复的最长字串

前言: 经过前序的一系列数据结构和算法学习后&#xff0c;开始用leetCode热题练练手。 . - 力扣&#xff08;LeetCode&#xff09; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为…...

Python武器库开发-武器库篇之SQL注入扫描器(五十九)

Python武器库开发-武器库篇之SQL注入扫描器(五十九) SQL注入漏洞简介以及危害 SQL注入漏洞是一种常见的Web应用程序漏洞&#xff0c;攻击者可以利用该漏洞在应用程序的数据库中执行恶意的SQL查询或指令。这可能导致数据泄露、数据损坏、应用程序崩溃或未经授权的访问。 SQL注…...

图说设计模式:单例模式

更多C学习笔记&#xff0c;关注 wx公众号&#xff1a;cpp读书笔记 5. 单例模式 单例模式 模式动机模式定义模式结构时序图代码分析模式分析实例优点缺点适用环境模式应用模式扩展总结 5.1. 模式动机 对于系统中的某些类来说&#xff0c;只有一个实例很重要&#xff0c;例如…...

探索设计模式——单例模式详解

前言&#xff1a;设计模式的作用主要是为了——利用设计方式的重用来自动地提高代码的重新利用、提高代码的灵活性、节省时间&#xff0c; 提高开发效率、低耦合&#xff0c;封装特性显著&#xff0c; 接口预留有利于扩展。 设计模式的种类有很多种&#xff0c;本篇内容主要讲解…...

建筑垃圾/城市固废倾倒转移乱象:EasyCVR+AI智能视频监控方案助力城市环保监管

近日有新闻记者报道&#xff0c;中央生态环境保护督察组在上海、浙江、江西、湖北、湖南、重庆、云南7省市督察发现&#xff0c;一些地方建筑垃圾处置工作存在明显短板&#xff0c;乱堆乱倒问题时有发生&#xff0c;比如&#xff0c;江西湘东区在杨家田地块违规设置弃土场&…...

C的I/O操作

目录 引言 一、文件与目录操作 1. 打开与关闭文件 2. 文件读写操作 3. 文件定位与错误处理 二、字符流与字节流 1. 字符流处理 2. 字节流处理 三、序列化与反序列化 1. 序列化 2. 反序列化 四、新的I/O&#xff08;NIO&#xff09; 表格总结 文件与目录操作 字符…...

Android Audio实战——声道信息回调(五)

在前面的 AudioTrack 构造中,我们传入了音频的声道信息,这一节我们就来详细介绍一下声道的配置信息。 一、声道介绍 音频中的声道配置从单声道到双声道(立体声)、再到多声道系统(如5.1和7.1),代表了声音录制和回放技术的发展,旨在提供越来越丰富和沉浸式的听觉体验。 …...

ThreeJS给模型添加介绍文字(贴在模型上 不会一直面向我们)

使用到 FontLoader跟 TextGeometry 引包 import {TextGeometry} from "three/examples/jsm/geometries/TextGeometry"; import {FontLoader} from "three/examples/jsm/loaders/FontLoader";使用 // 创建字体加载器并加载字体 const fontLoader new Fo…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...