新闻详情

新闻详情

首页 / 资讯中心 / 详情

昇腾显卡服务器环境配置及运行推理任务

发布时间:2026/10/1 10:25:05来源:尧图网络
昇腾显卡服务器环境配置及运行推理任务
安装驱动和固件检查服务器是否安装驱动与固件终端输入npu-smi info如果正常返回显卡信息说明驱动已安装好。使用python测试acl.rt.ser_device(0)命令正常返回说明固件已安装好卡死无返回说明固件没装。如果没有可从官网下载安装文件拉到服务器上进行安装安装命令如下bash Ascend-hdk-310p-npu-driver_25.5.2_linux-aarch64.run # 安装驱动 bash Ascend-hdk-310p-npu-firmware_7.8.0.7.220.run #安装固件安装dockeryum install -y dockeryum install -y docker拉取镜像参考方式一拉取容器镜像-安装CANN容器场景-软件安装-CANN商用版8.0.RC2开发文档-昇腾社区docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:3.0.0b2-300I-Duo-py311-openeuler24.03-lts启动容器启动脚本如下#!/bin/bash docker stop ascend-310p_3 docker rm ascend-310p_3 docker run -itd --privileged \ --nethost \ --ipchost \ --name ascend-310p_3 \ --device/dev/davinci0 \ --device/dev/davinci2 \ --device/dev/davinci4 \ --device/dev/davinci6 \ --device/dev/davinci_manager \ --device/dev/devmm_svm \ --device/dev/hisi_hdc \ --device/dev/isomgr \ -v /cv:/cv \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \ -v /usr/local/Ascend/add-ons:/usr/local/Ascend/add-ons:ro \ -v /var/log/npu/:/var/log/npu/ \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi:ro \ -v /var/log/npu/conf/devmm/common_devmm.cfg:/var/log/npu/conf/devmm/common_devmm.cfg \ 1f6e1a6cee5f \ /bin/bash容器内安装相关软件#安装开发工具包组 (包含 make, gcc, g 等) dnf groupinstall Development Tools -y # 安装opencv cd opencv-4.11.0/ mkdir build cd build cmake -D CMAKE_BUILD_TYPERELEASE -D CMAKE_INSTALL_PREFIX/usr/local -D WITH_TBBON -D WITH_V4LON -D WITH_QTOFF -D WITH_GTKOFF -D WITH_OPENGLOFF -D BUILD_EXAMPLESOFF .. make -j$(nproc) sudo make install # 安装ros2 bash -c cat EOF /etc/yum.repos.d/ROS.repo [openEulerROS-humble] nameopenEulerROS-humble baseurlhttps://eulermaker.compass-ci.openeuler.openatom.cn/api/ems1/repositories/ROS-SIG-Multi-Version_ros-humble_openEuler-24.03-LTS-TEST4/openEuler%3A24.03-LTS/aarch64/ enabled1 gpgcheck0 EOF sudo dnf update sudo dnf install ros-humble-ros-base -y参考gitee.com安装acliteonnx转om# yolov8 atc --modelyolov8n.onnx \ --framework5 \ --outputyolov8n \ --input_shapeimages:1,3,640,640 \ --soc_versionAscend310P3 \ --logerror推理import acl import sys import numpy as np import cv2 # 假设你的 acllite 路径如下 sys.path.append(/home/samples/inference/acllite/python) from acllite_model import AclLiteModel from acllite_resource import AclLiteResource def post_process(infer_output, conf_threshold0.25, iou_threshold0.45): YOLOv8 后处理 infer_output: model.execute 的返回值 (list of numpy arrays) # 1. 提取输出YOLOv8 默认输出 shape 为 [1, 84, 8400] # 84 代表: 4个坐标 80个类别 # 8400 代表: 3个尺度的预测框总和 data infer_output[0][0] data data.transpose() # 转置为 [8400, 84] boxes [] scores [] class_ids [] for row in data: classes_scores row[4:] max_score np.amax(classes_scores) if max_score conf_threshold: # YOLOv8 输出的是 [center_x, center_y, w, h] cx, cy, w, h row[:4] # 转换为 [x1, y1, w, h] 用于 cv2.dnn.NMSBoxes left int(cx - w / 2) top int(cy - h / 2) boxes.append([left, top, int(w), int(h)]) scores.append(float(max_score)) class_ids.append(np.argmax(classes_scores)) # 2. 非极大值抑制 (NMS) 过滤重叠框 indices cv2.dnn.NMSBoxes(boxes, scores, conf_threshold, iou_threshold) results [] if len(indices) 0: for i in indices.flatten(): results.append({ box: boxes[i], score: scores[i], class_id: class_ids[i] }) return results # --- 主程序 --- resource AclLiteResource(2) resource.init() model AclLiteModel(yolov8n.om) # 预处理注意 YOLOv8 通常需要归一化 (1/255.0) start_event, ret acl.rt.create_event() end_event, ret acl.rt.create_event() stream resource.stream image cv2.imread(/cv/1713418474155.jpg) img_h, img_w image.shape[:2] while 1: #acl.rt.record_event(start_event, stream) image_resized cv2.resize(image, (640, 640)) image_data image_resized.astype(np.float32) / 255.0 # 归一化 image_data image_data.transpose(2, 0, 1) # HWC 转 CHW # 执行推理 acl.rt.record_event(start_event, stream) result_list model.execute([image_data,]) acl.rt.record_event(end_event, stream) acl.rt.synchronize_stream(stream) time_ms, ret acl.rt.event_elapsed_time(start_event, end_event) # 后处理 detections post_process(result_list) #acl.rt.record_event(end_event, stream) #acl.rt.synchronize_stream(stream) #time_ms, ret acl.rt.event_elapsed_time(start_event, end_event) print(f硬件纯推理耗时 (NPU Pure Inference): {time_ms:.2f} ms) # 3. 可视化结果 for det in detections: x, y, w, h det[box] score det[score] class_id det[class_id] # 坐标还原到原图大小 x int(x * img_w / 640) y int(y * img_h / 640) w int(w * img_w / 640) h int(h * img_h / 640) cv2.rectangle(image, (x, y), (x w, y h), (0, 255, 0), 2) cv2.putText(image, fID:{class_id} {score:.2f}, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2) print(f检测到 {len(detections)} 个目标) #cv2.imwrite(result.jpg, image) acl.rt.destroy_event(start_event) acl.rt.destroy_event(end_event)
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

IO-Link本质解析:不是通信协议,而是设备数字化的底层使能技术 2026/10/1 14:08:35

IO-Link本质解析:不是通信协议,而是设备数字化的底层使能技术

1. 从产线上的一个“黑盒子”开始:为什么IO-Link不是又一个通信协议?去年在苏州一家汽车零部件厂做设备联调,第一次见到IO-Link主站模块时,我下意识把它当成了普通IO扩展模块——插上电源、接好总线、配好地址,结果PLC…

阅读更多 →
Agent开发从Demo到生产:编排、RAG、工具调用、状态管理与安全兜底五大核心实践 2026/10/1 14:08:35

Agent开发从Demo到生产:编排、RAG、工具调用、状态管理与安全兜底五大核心实践

1. 从“会调API”到“能交付系统”:Agent开发真正的分水岭 做了近两年的Agent开发,我越来越觉得,这个领域表面上热闹得不行——新框架、新概念、新论文几乎每周都在刷屏,但真正落到工程里,能决定一个Agent项目成败的东…

阅读更多 →
Agent 时代的基础设施:数据、智能与进化层的工程实践 2026/10/1 14:08:35

Agent 时代的基础设施:数据、智能与进化层的工程实践

1. Agent 时代的基础设施到底在变什么 1.1 从“模型为中心”到“数据与执行环境为中心”的转向 过去两年,绝大多数团队做 AI 应用的路径都差不多:选一个能力最强的模型,把提示词打磨到极致,然后接一个向量库做检索,就…

阅读更多 →
Linux救援模式实战:从原理到修复fstab、GRUB与密码丢失 2026/10/1 14:08:35

Linux救援模式实战:从原理到修复fstab、GRUB与密码丢失

直接说结论:Linux救援模式是系统坏了以后,你还能进得去的那个最小可用环境。不管你是因为fstab写错、GRUB损坏、root密码丢失还是内核panic,只要手里有这份知识,大多数场景都能在不重装系统的前提下把机器救回来。这篇文章会从原理…

阅读更多 →
UG894中英对照版:Vivado Tcl脚本自动化流程实战指南 2026/10/1 14:08:35

UG894中英对照版:Vivado Tcl脚本自动化流程实战指南

简介:UG894中英文对照版是一份基于Vivado 2025.1的官方用户指南PDF,面向FPGA工程师,系统讲解Tcl脚本在Vivado中的自动化设计应用,覆盖综合、实现、报告生成等重复性任务。资源由1个PDF文件组成,压缩包大小12.5MB&#…

阅读更多 →
2024年TensorFlow学习指南:从安装到部署的实战经验与避坑手册 2026/10/1 14:08:28

2024年TensorFlow学习指南:从安装到部署的实战经验与避坑手册

看到“tensorflow”这个标题,我第一反应是:这又是一个谈了几年的老话题,但老话题每年都有新讲法。作为一个从TensorFlow 1.x就开始踩坑、经历了2.0大改版、又被同事拉去PyTorch阵营又遛回来的老用户,我想跟你说点实在的&#xff1…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉