news 2026/9/25 5:12:51

Atlas 300V 24G推理加速卡实测:YOLOv5部署全链路与调优

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Atlas 300V 24G推理加速卡实测:YOLOv5部署全链路与调优

接到手这块Atlas 300V 24G的时候,我第一反应也是去查它到底算运算加速卡还是别的什么卡。等真正把YOLOv5跑起来,又折腾了一阵驱动和模型转换之后,才发现网上一堆帖子说得云里雾里。这篇文章就围绕两个高频问题来写:Atlas 300V 24G到底是什么类型的卡,以及在这个卡上部署YOLO推理的完整链路。实测、踩坑、调优都会覆盖,希望能帮正在选型或已经入手这块卡的朋友少走弯路。

1. Atlas 300V 24G的真实定位:推理加速卡,不是训练卡

1.1 “是运算加速卡吗”这个问题的标准答案

先说结论:Atlas 300V 24G是华为昇腾系列的AI推理加速卡,不是用来跑训练的计算卡,也不是传统意义上的GPU图形卡。它面向的场景是把训练好的模型(YOLO、ResNet、Transformer这类)部署到数据中心或边缘服务器上,做高吞吐、低延迟的推理。

很多人会拿它和NVIDIA的T4、A10对比,这思路没错,但有个关键差异:Atlas 300V 24G上没有显示输出接口,不能接显示器,纯计算设备。它的算力单位不是TFLOPS,而是TOPS(Tera Operations Per Second),也就是每秒万亿次整数/低精度浮点运算。昇腾的推理卡主打的INT8算力,FP16只是辅助,这点和GPU生态用FP16/FP32衡量完全不同。

1.2 参数拆解:24G显存到底意味着什么

Atlas 300V 24G,后边的24G指板载内存24GB。这在推理卡里算大容量了,T4是16GB,A10是24GB,所以它是冲着“大模型、多路视频流、大batch推理”去的。

从硬件规格来看,这块卡采用昇腾310P系列芯片(具体型号可以用npu-smi info查看),单卡功耗最高75W左右,不需要外接供电,PCIe供电就够,对服务器整机功耗和散热很友好。支持PCIe 4.0 x16接口,理论带宽足够喂饱多路视频流。

值得一提的是,它支持多卡堆叠。一台8卡服务器可以插8张300V,相当于一台8路推理整机,很多智慧园区、安防、工业质检项目就是这么干的。

1.3 和NVIDIA GPU生态的思维差异

如果你之前只用过CUDA生态,第一次接触Atlas会很不习惯。NVIDIA用nvidia-smi、CUDA、TensorRT;昇腾用npu-smi、CANN(华为的计算架构)、MindSpore/ONNX/ACL。虽然概念一一对应,但工具链完全不同。

部署YOLO时,NVIDIA这边可以直接用TensorRT优化ONNX模型,而Atlas这边需要走CANN的ATC工具,把ONNX或MindSpore模型转换成昇腾专用的.om格式,再通过ACL(AscendCL)或MindX SDK调用。这条链路不复杂,但版本兼容性很容易出问题,后面第三节细讲。

1.4 选型建议:为什么最终选了300V 24G

结合项目实际需求来聊选型。当时我们做的是一个智慧工地项目,需要同时处理20路1080p视频流做安全帽、反光衣检测,单路视频要求不超过150ms延迟。对比了几款卡:

型号显存典型算力功耗部署难度适用场景
Atlas 300I Pro16GB中等INT872W中中等路数视频流
Atlas 300V 24G24GB较高INT875W中多路视频流、大batch
NVIDIA T416GB65TFLOPS FP1670W低(生态成熟)通用推理
NVIDIA A1024GB31TFLOPS FP16150W低中大模型推理

最终选300V 24G的原因很直接:一是单卡24G显存能塞下YOLOv5m甚至YOLOv5l的batch 1模型,还能同时挂多个模型实例;二是功耗低,机房改造压力小;三是采购成本比A10低不少。缺点也很明显:工具链相对封闭,网上中文资料少,遇到问题只能翻官方文档和查社区。

2. 部署环境准备:从裸机到识别设备的完整流程

2.1 硬件环境与操作系统要求

部署之前先确认服务器主板能识别这块卡。Atlas 300V 24G是标准PCIe全高半长卡,不挑主板,但要注意PCIe槽位供电能力,部分老主板PCIe x16槽供电不足,会导致卡无法稳定运行。建议用服务器主板或工作站级主板,比如超微X11/X12系列、戴尔R750等。

操作系统方面,官方支持Ubuntu 20.04.5 LTS x86_64、CentOS 7.6/8.2等。强烈建议用Ubuntu 20.04.5 x86_64,原因无他:内核版本对应驱动包全,CANN工具链的预编译版本覆盖最全。如果用CentOS,某些内核配置要手动调,容易卡在编译内核模块那一步。

安装驱动前,先做两件事:第一,确认内核版本,执行uname -r;第二,安装内核头文件,否则驱动编译会失败。Ubuntu下命令:

sudo apt-get update sudo apt-get install -y linux-headers-$(uname -r) gcc make dkms

这一步能避免后面驱动安装时“kernel header not found”的尴尬。

2.2 驱动与固件安装顺序:先固件后驱动,别搞反

昇腾卡的安装顺序有硬性要求:先装固件(Firmware),再装驱动(Driver),然后重启。如果先装驱动再升固件,驱动加载时会频繁报版本不匹配的错误,即使重装驱动也未必能恢复干净。

固件和驱动的安装包从华为昇腾社区下载,通常叫Ascend-hdk-310p-npu-firmware_x.x.x.run和Ascend-hdk-310p-npu-driver_x.x.x.run。安装命令:

# 安装固件 chmod +x Ascend-hdk-310p-npu-firmware_*.run sudo ./Ascend-hdk-310p-npu-firmware_*.run --full # 安装驱动 chmod +x Ascend-hdk-310p-npu-driver_*.run sudo ./Ascend-hdk-310p-npu-driver_*.run --full # 重启服务器 sudo reboot

这里有个细节:--full参数表示完整安装,包括内核模块、工具链等。安装完成后,用npu-smi info查看设备状态。

2.3 npu-smi info输出怎么看

如果你之前习惯nvidia-smi,那npu-smi info的字段会让你有亲切感但又不完全一样。关键看这几个:

npu-smi info

输出里重点关注:

  • Chip Count / Chip Name:确认芯片型号,比如Ascend 310P。
  • Temperature:正常待机温度在35-50℃之间,满载在60-75℃之间,超过85℃要检查散热。
  • Hugepages-Usage:大页内存使用情况,CANN推理依赖大页内存,如果为0说明没有配置。
  • Memory Usage:板载显存使用率,部署后模型会占用一定显存。
  • Version:Driver和Firmware版本号,要和CANN工具链要求的版本匹配。

配置大页内存这一步很容易漏。CANN的ACL推理默认会申请大页内存作为host侧内存池,不配置的话,程序会报aclrtMalloc失败或性能极差。建议在/etc/sysctl.conf里加上:

vm.nr_hugepages = 8192 vm.hugepagesz = 2MB

执行sysctl -p生效。8192个大页对应16GB大页内存,够绝大多数推理场景用了。

2.4 CANN工具链安装:版本匹配是元问题

驱动和固件装好之后,还要装CANN工具包,它是昇腾的计算架构,相当于CUDA Toolkit。注意版本一定要和驱动匹配。我当时用的组合是:

  • Driver: 24.1.rc1
  • Firmware: 24.1.rc1
  • CANN Toolkit: 7.0.RC1

安装CANN Toolkit的命令:

chmod +x Ascend-cann-toolkit_7.0.RC1_linux-x86_64.run sudo ./Ascend-cann-toolkit_7.0.RC1_linux-x86_64.run --full

装完后,设置环境变量:

source /usr/local/Ascend/ascend-toolkit/set_env.sh

为了省事,建议把这行加到~/.bashrc里,每次登录终端自动生效。安装完成后,执行ascend_install.sh里的验证脚本或者直接npu-smi info确认工具链能识别设备。

3. 从PyTorch权重到OM模型:YOLO部署的核心链路

3.1 为什么非要转成OM模型

这个问题我当初也疑惑——既然CANN支持直接加载ONNX,为什么还要多一步转OM?因为OM是昇腾专用的静态图格式,包含了算子调度、内存复用、图优化等编译结果,推理时不需要再做图解析和算子选择,启动更快、运行更稳定。

类比一下:ONNX是“源码包”,每次运行都要编译解释;OM是“编译好的可执行文件”,拿到手直接跑。所以ATC转换是部署昇腾的必经之路。

3.2 导出ONNX的几个坑:opset版本和Resize算子

在PyTorch侧导出YOLOv5的ONNX模型,官方仓库提供了脚本,但有几个地方需要手动确认。

第一,opset版本。昇腾ATC对ONNX算子支持有版本下限,建议opset设为11或13,太高太低都可能出问题。导出命令:

python export.py --weights yolov5s.pt --include onnx --opset 13 --batch-size 1

第二,动态batch vs 固定batch。ATC支持动态batch,但动态shape在昇腾上会带来额外的算子优化限制,性能通常不如固定shape。如果业务里batch是固定的,强烈建议导出固定batch模型,比如--batch-size 1,后面推理时用多实例并发来提升吞吐,而不是靠动态batch。

第三,Resize算子的坑。YOLOv5的预处理和后处理中都有Resize操作。导出ONNX时,如果模型内部带了nn.Upsample,在ATC转换时偶尔会报Resize unsupported错误。解决方案通常是在导出ONNX前把模型的后处理部分剪掉,只保留主干输出,Resize放到AIPP里做。AIPP(AI Preprocessing)是昇腾的硬件预处理单元,支持在模型输入前完成缩放、归一化、色域转换,不占AI Core资源,这是昇腾推理卡一个很实用的能力。

导出ONNX时还需要注意输出节点命名。ATC转换时要么指定输出节点,要么让ATC自动识别。YOLOv5的输出通常是三个尺度的特征图,如果直接转,ATC会把三个输出都保留,但后处理需要你用ACL去解析这三个输出。我建议把三个输出合并成一个大的输出张量,或者修改模型只导出指定输出,这样后续用ACL推理时处理逻辑简单很多。

3.3 ATC转换:AIPP配置和关键参数

有了ONNX模型,下一步就是用ATC转换成OM。我用的命令行大致如下:

cd /usr/local/Ascend/ascend-toolkit/latest/bin ./atc --model=/path/to/yolov5s.onnx \ --framework=5 \ --output=/path/to/yolov5s \ --soc_version=Ascend310P3 \ --input_shape="images:1,3,640,640" \ --insert_op_conf=aipp.cfg \ --output_type=FP16 \ --input_format=NCHW

几个参数的说明:

  • --framework=5:5代表ONNX,这是ATC约定的值。
  • --soc_version:这个要和你实际芯片型号严格匹配。用npu-smi info查看芯片信息后,在官方文档里查对应soc_version。我当时查到的对应关系是310P系列用Ascend310P3,但不同批次可能有差异,务必以官方文档为准。
  • --insert_op_conf=aipp.cfg:插入AIPP预处理配置。aipp.cfg内容大致如下:
aipp_op { aipp_mode: static input_format: RGB888_U8 src_image_size_w: 640 src_image_size_h: 640 csc_switch: true rbuv_swap_switch: false matrix_r0c0: 0.00392156862745098 matrix_r0c1: 0 matrix_r0c2: 0 matrix_r1c0: 0 matrix_r1c1: 0.00392156862745098 matrix_r1c2: 0 matrix_r2c0: 0 matrix_r2c1: 0 matrix_r2c2: 0.00392156862745098 output_format: RGB888_U8 }

这段配置的意思是把输入图片归一化到0~1之间,并切换为RGB顺序。要注意的是,YOLOv5官方训练时用RGB,归一化除以255,这些可以放到AIPP里,让硬件代劳,host侧拿到原始图片直接喂进去就行,省掉CPU上的预处理时间,提升整体帧率。

如果不需要AIPP,可以不加--insert_op_conf,但那样输入侧的Resize、归一化都得在host侧手动做,多一路内存拷贝,延迟更高。

3.4 转换失败的常见报错:算子不支持怎么办

ATC转换过程最让人头疼的就是报错。常见的有几类:

第一类:Unsupported op type: Xxx。这说明ONNX里的某个算子昇腾还不支持。解决办法:一是升级CANN版本,新版本算子覆盖更全;二是回退ONNX中的算子实现,比如把Einsum换成MatMul+ReduceSum,把某些激活函数换成Clip;三是用自定义算子,但那需要写TBE算子,工程量大,不推荐新手上来就搞。

第二类:Input shape mismatch。说明ATC参数里的--input_shape和ONNX模型的输入尺寸不一致。用onnx.shape_inference检查一下模型的输入输出维度,确认是1,3,640,640还是1,3,416,416。

第三类:The soc version is not supported。soc_version没写对。有些型号固件版本不同,支持的soc_version也会不同。这块只能查官方文档对表,没有捷径。

我当时卡得最久的是YOLOv7的RepConv算子在ATC转换时出现算子兼容性问题,后来改成YOLOv5s就顺畅了。所以如果模型结构太新,昇腾那边算子适配还没跟上,不妨换个同源但结构老一点的模型,比如YOLOv5、YOLOv8的早期版本,反而省事。

4. 用MindX SDK还是ACL推理:两种部署方式的取舍

4.1 MindX SDK:适合快速搭建pipeline

MindX SDK是昇腾的推理应用开发套件,核心思想是“插件化”。你用几个现成的插件(读图、解码、缩放、推理、后处理)串成一条pipeline,用配置文件声明,就能跑通一个完整的推理服务。

我用MindX SDK跑过一个安全帽检测demo,pipeline配置大致是这样的:

pipeline: - name: decode type: mxpi_imagedecode - name: resize type: mxpi_imageresize props: resizeWidth: 640 resizeHeight: 640 - name: infer type: mxpi_tensorinfer props: modelPath: /path/to/yolov5s.om postProcessConfigPath: /path/to/pp.json

它的优势很明显:不需要关心ACL的很多底层细节,适合快速把demo跑起来。但问题也在这里:pipeline的配置项相当多且文档分散,一旦性能不达标或报错,排查起来反而更麻烦,因为中间层把很多细节封装掉了。

4.2 ACL推理:更底层的掌控力

如果你追求最强性能和精细控制,用ACL(AscendCL)直接写推理代码是正路。ACL的接口风格和CUDA Runtime API有点像,核心流程是:

  1. 初始化:aclInit、aclrtSetDevice
  2. 加载模型:aclmdlLoadFromFile加载OM文件
  3. 准备输入输出:aclDataBuffer、aclmdlCreateDataset
  4. 执行推理:aclmdlExecute
  5. 释放资源:aclmdlUnload、aclFinalize

伪代码示例:

// 初始化 aclInit(nullptr); aclrtSetDevice(0); // 加载模型 uint32_t modelId; aclmdlLoadFromFile("yolov5s.om", &modelId); // 准备输入数据 void *inputBuf = nullptr; aclrtMalloc(&inputBuf, inputSize, ACL_MEM_MALLOC_NORMAL_ONLY); // ... 将图片数据拷贝到inputBuf // 执行推理 aclmdlExecute(modelId, inputDataset, outputDataset); // 获取输出 // ...

这套API你一旦写熟了,就会觉得比SDK更可控。比如你想用多线程并发推理、手动管理输入输出内存复用、对接零拷贝视频流,ACL都能精细控制,MindX SDK则受限于插件实现方式。

我的建议是:demo验证用MindX SDK,正式产品用ACL。原因不复杂,SDK的pipeline配置适合快速验证模型效果,但生产环境一旦要加多路视频、动态调度、错误重试,最后还是需要直接操作ACL才能灵活应对。

4.3 推理输出的后处理:YOLO从三个输出头到检测框

模型推理完拿到的是三个尺度的特征图,分别是(1, 255, 80, 80)、(1, 255, 40, 40)、(1, 255, 20, 20)(以YOLOv5s、80类为例)。后处理需要做:解码坐标、过滤低置信度、NMS、映射回原图坐标。

如果你用PyTorch做后处理,那数据要从NPU拷回CPU,有一定的PCIe传输开销。更高效的方式是把解码和NMS写成一个自定义算子塞进OM,或者用ACL的aclmdlExecute拿到输出后直接用C++实现解码+NMS。我们在生产项目里是用C++手写了后处理,单帧1080p的NMS耗时大约2-3ms,完全可接受。

需要注意的是,昇腾的OM模型输出通常是FP16的,转成FP32再算后处理会比较稳妥,否则某些yolo解码里的logistic计算在FP16下精度损失会导致检测框抖动。--output_type=FP16还是FP32,建议实测对比一下再定。

5. 性能实测与调优:如何把Atlas 300V 24G榨干

5.1 跑通之后的第一轮数据

部署好之后,我跑了YOLOv5s模型(640x640输入)的单路RTSP视频流推理,拿到一批实测数据:

配置时延(单帧)吞吐(fps)显存占用
batch 1,CPU预处理22ms约45fps1.8GB
batch 1,AIPP预处理16ms约62fps1.8GB
batch 4,AIPP预处理28ms(整batch)约90fps5.2GB

从数据能明显看到,AIPP带来了接近30%的时延下降,而batch 4的吞吐量比batch 1单线程高了不少。所以如果你的业务允许攒批(比如视频流抽帧检测),batch 4是一个性价比很高的配置。

5.2 多路并发:实例复用 vs 多线程推理

20路视频流要同时跑,很多人第一反应是开20个线程,每个线程单独加载模型、单独推理。这种做法在Atlas 300V 24G上恰恰是性能杀手。原因有两点:

第一,每个模型实例会独占一部分显存和中资源,20个实例光显存开销就上去了,还会频繁切换上下文,实际吞吐不如预期。

第二,CANN的ACL本身支持多线程共享一个模型,你只需要用一个模型实例,让多个线程使用不同的输入输出buffer来并发调用aclmdlExecute。实测下来,20路视频流共享一个YOLOv5s模型实例,每路约8-10ms推理时延,整卡总吞吐能做到接近150fps(处理抽帧场景),CPU占用也低。

具体做法:模型加载一次,创建多个输入dataset(每个线程一个,提前分配好内存),线程之间用队列传递待处理帧。推理完的结果送回业务线程做后处理。这里的关键点是不要用系统默认的流(stream),最好每个线程创建自己的stream,避免不同线程之间的流同步开销。

5.3 大页内存和绑核:容易被忽视的细节

Atlas推理性能受host侧内存和CPU调度影响挺大。上面提到的vm.nr_hugepages配置如果没有生效,推理时aclrtMalloc用的是普通页内存,时延会明显上涨,尤其在多路并发时更明显。用cat /proc/meminfo | grep HugePages确认一下是否生效。

另外,如果服务器是多核的,建议把推理线程和NPU中断绑定在同一个NUMA节点上,减少跨NUMA访问的内存时延。实测中绑核后时延能再降2-3ms。绑核工具用taskset就行:

taskset -c 4,5,6,7 ./your_infer_app

5.4 精度和性能的拉锯:FP16与INT8

Atlas 300V 24G的INT8算力是FP16的好几倍,理论上走INT8能显著提升吞吐。但INT8量化需要准备校准集,量化后的精度损失因模型和数据集而异。

我在YOLOv5s上做过一轮INT8量化实验,用的是CANN自带的AMCT(Ascend Model Compression Toolkit)做静态量化,校准集选了500张工地图片。结果:mAP从0.872降到0.841,降了约3.5个点,但吞吐提升了近90%。在安全帽检测这类对精度要求不太苛刻的业务里,INT8完全够用;但如果是火灾烟雾检测这种误报代价高的场景,建议还是用FP16稳一点。

量化的引入会让部署复杂度上一个台阶,如果你是第一次用Atlas部署YOLO,建议先FP16跑通,后续再根据实际精度余量决定要不要上INT8。

6. 高频故障排查记录:这些坑我替你踩过了

6.1 驱动装完npu-smi里看不到卡

这个问题我遇到过两次。第一次是主板BIOS里没开启PCIe 4.0,卡降级工作在PCIe 3.0 x8状态下,npu-smi info能识别但速率异常。第二次是PCIe槽位接触不良,重新插拔后解决。

如果npu-smi info直接报No device found,按这个顺序排查:

  1. 是否安装了匹配的固件和驱动版本,用dmesg | grep -i npu查看内核日志。
  2. 内核模块是否加载成功,执行lsmod | grep drv_pcie,如果没有输出说明驱动加载失败。
  3. 是否被系统识别,执行lspci | grep -i Huawei,正常能看到类似Huawei Technologies Co., Ltd. Device的设备。
  4. BIOS里是否禁用了PCIe设备或者插槽被其他设备占用。

6.2 ATC转换时报错找不到vgg16_AI_Fusion etc

这是我踩得比较深的一个坑。ATC会加载一些预置的融合规则和算子库,有时候环境变量ASCEND_OPP_PATH没有设置,就会报类似parser op failed、找不到算子库的错误。解决方法是确认CANN的set_env.sh已经source过,并且在当前shell里检查:

echo $ASCEND_OPP_PATH

正常情况下应该指向/usr/local/Ascend/ascend-toolkit/latest/opp。如果这个变量为空,说明环境没配好,重新source一下即可。

6.3 推理时显存越占越多,最后OOM

运行一段时间后,npu-smi info显示显存占用率持续上涨,直到aclrtMalloc返回内存不足。这个通常不是NPU显存泄漏,而是host侧内存或大页内存泄漏。重点排查:后处理代码里有没有及时释放从NPU拷回的特征数据;输入输出dataset是否每帧都重复创建而没有销毁;是否有线程创建了stream却没有销毁。

规范做法是:初始化时把所有dataset、buffer、stream一次性创建好,整个生命周期内复用,直到退出时统一释放。这样不仅不易泄漏,还能省掉每帧的内存分配开销,性能也会好一些。

6.4 OpenCV读RTSP流需要额外编译

如果你直接用OpenCV的VideoCapture读RTSP流,而编译OpenCV时没有带FFmpeg,会报Could not find a writer或者根本无法打开RTSP。建议使用带FFmpeg支持的OpenCV,或者装opencv-python-headless(预编译版自带FFmpeg),省去源码编译的折腾。

另外,多路RTSP流解码也非常吃CPU,如果服务器CPU核数不够,20路1080p解码会把CPU打满。实测用Intel 8380双路,20路1080p硬解码加YOLOv5s推理,CPU占用约45%,勉强能跑。如果CPU吃紧,可以把视频解码也丢到昇腾卡AIPP里,但配置会更复杂,建议先保证CPU余量。

6.5 多卡场景的泥潭:主卡和从卡识别

如果有两张卡,npu-smi info会列出两张卡,但程序默认只会用device 0。如果你指定device 1,需要在程序里先aclrtSetDevice(1)。多卡场景下,还有一个容易忽略的问题:两卡之间P2P通信。昇腾卡之间不像NVIDIA那样支持NVLink,跨卡数据交换要通过PCIe,带宽有限。如果业务需要多卡协同处理同一路视频,建议不要频繁跨卡传数据,尽量按卡分业务流。

7. 最后分享一点实际体会

这段时间用下来,我觉得Atlas 300V 24G这个卡,定位很清晰:它就是为大规模推理业务准备的。它的优势在于单卡功耗低、显存大、INT8吞吐高,适合多路视频流、大批量图片处理这类任务;缺点在于学习曲线陡,CANN工具链的文档质量和社区生态离CUDA还有明显距离。

如果你不是非昇腾不可,且有大量现成的CUDA代码要部署,靠近NVIDIA生态会更顺。但如果你恰好需要国产化替代、关注边缘部署的能效比,或者想规避依赖单一GPU厂商的风险,Atlas 300V 24G完全值得一试。它的坑虽然多,但一旦把工具链摸熟,稳定性和性能都相当能打。按我踩坑的经验,给新上手的人一句实在建议:先照着官方文档把环境装好,拿一个简单的resnet50做环境验证,再去碰YOLO这类复杂模型,能省很多不必要的排查时间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 5:12:26

JNA 版本演进全览:从 2.4 到 5.19 的变更日志深度解读

系统编程后端 【免费下载链接】jna Java Native Access 项目地址: https://gitcode.com/gh_mirrors/jn/jna 点击查看 免费下载 本篇指南以 JNA(Java Native Access)官方仓库的 CHANGES.md 为核心骨架,系统梳理 JNA 从 2.4 到 5.1…

作者头像 李华
网站建设 2026/9/25 5:11:36

ADAU1701音频DSP实战:从SigmaStudio到硬件设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 5:09:53

Atlas 300V 24G部署YOLO推理加速卡实战指南

先说结论:Atlas 300V 24G就是一张AI运算加速卡,而且是专为“推理”场景设计的加速卡。如果你手头有训练好的YOLO模型,想在边缘服务器或者机房里面把它跑起来,用这张卡做在线推理,那路子基本是对的。但这里有个很多人刚…

作者头像 李华