Atlas 300V 24G昇腾推理卡部署YOLOv5全流程解析
有不少同行私下问我Atlas 300V 24G到底是不是运算加速卡能不能拿它部署 YOLO 这类目标检测模型说实话刚接触昇腾硬件的人确实容易被“300V”这个命名整懵它既不像 310 那样是纯推理卡又不像 910 那样是训练卡中间夹杂着一堆 Pro、Mini、24G 的变体看着就头大。这篇文章我就以 Atlas 300V 24G 为切入点把昇腾 Atlas 产品的定位、软件栈、以及如何完整地把 YOLOv5 部署上去这件事一次性讲清楚适合正在选型、或者已经拿到卡但不知道怎么下手的朋友参考。我自己第一次拿到这台卡的时候也犯过嘀咕这么小一块无风扇板卡真的能跑 YOLO 吗答案不仅能跑还能跑得相当不错。但前提是你得先把昇腾的软硬件体系理清楚。这不是一个“装好驱动就能用”的玩意儿它和 CUDA 生态的差异非常大很多从 GPU 转过来的人第一周基本都在和模型转换、算子兼容性较劲。本文会把整个流程从硬件定位、软件安装、模型导出、格式转换、推理部署到问题排查完整走一遍内容基于我个人实际部署经验也参考了昇腾社区的公开文档和常见实践。1. Atlas 300V 24G到底是什么卡先把硬件定位说清楚1.1 昇腾Atlas系列的产品线脉络很多人搞不清 Atlas 的硬件矩阵是因为昇腾的产品命名确实有点“工程师思维”——按处理器型号和形态混合命名。我先把主线理一下。昇腾目前的主力推理处理器是 Ascend 310 和 Ascend 310P训练处理器是 Ascend 910。Atlas 系列就是围绕这些处理器做的整机、板卡和模组产品比如 Atlas 200 AI 加速模块嵌入式、Atlas 300I 推理卡、Atlas 300V 视频分析卡、Atlas 300T 训练卡、Atlas 800 推理服务器、Atlas 900 训练集群等等。Atlas 300V 这个系列的关键词是“视频分析”。它专门针对视频流解码、目标检测、图像分类这类视觉任务做了优化板载视频解码单元支持 H.264/H.265 硬解码。所以你会发现市面上用 Atlas 300V 跑 YOLO、跑目标检测的案例特别多因为它的硬件设计本身就冲着这个方向去的。我之前遇到一个朋友非要把 Atlas 300V 当作训练卡用想在上面跑 YOLO 的训练代码。结果自然是跑不起来倒不是说完全不行而是训练需要的浮点算力和算子支持以及 24G 的显存容量对于训练来说也只是刚够打底更核心的问题是昇腾的 MindSpore 和 CANN 生态目前还是以推理部署为主场景。如果你想做训练老老实实用 GPU 或者昇腾 910如果你是要把训练好的模型部署到边缘端去推理价格、功耗、体积三方权衡下来Atlas 300V 是个非常合适的选择。这也就解答了热搜词里的疑问它是一块推理加速卡不是一块全功能通用 GPU更不是一块用来“训练”的卡。1.2 “300V 24G”这台小机器的真实身份关于“Atlas 300V 24G 是运算加速卡吗”这个问题答案其实是可以分三层看的。第一层官方定位。无论是 Atlas 300V Pro 还是带 24G 字样的型号它都是昇腾 310P 系列处理器做成的 AI 推理加速卡标准名称叫“AI 加速卡”或“智能加速卡”主要形态是标准半高半长 PCIe 卡有主动散热和无风扇两种版本。它的主要职责是把已经训练好的神经网络模型跑起来也就是推理Inference。第二层硬件配置。24G 是指板载内存 24GB这一点在同类边缘推理卡里非常夸张。你可以做个对比NVIDIA 的 Xavier NX 是 8GBOrin NX 是 16GB而 Atlas 300V 24G 直接给了 24GB 的 LPDDR4X。这意味着什么意味着你可以往里面塞更大的 batch或者跑更大的模型比如在一些需要同时处理多路视频流的场景里24GB 的内存池能显著降低频繁搬运权重的开销。而且它功耗只有几十瓦无风扇版本很安静适合放进边缘机柜。第三层能力边界。作为推理卡它提供的算力主要面向 INT8 和 FP16 精度INT8 算力在百 TOPS 级别。它的算力特性决定了它非常擅长“看”也就是视觉推理。但如果你拿它去做科学计算、图形渲染、通用并行计算那就不合适了。很多人在知乎或社区提问“它是不是运算加速卡”其实就是把握不准“加速卡”这三个字的边界。我的理解是它是加速卡但只加速 AI 推理这件事而不是像 GPU 那样什么都能加速。明确这一点后续部署 YOLO 就不会有方向性的错误。1.3 为什么有人分不清它和 GPU 训练卡这其实不怪用户因为“加速卡”在营销语境里被用得太泛了。普通消费者看到显卡就觉得是加速卡看到 AI 加速卡也默认它能干同样的事。但在昇腾体系里训练卡和推理卡的区分非常清晰训练卡追求大算力和高带宽比如昇腾 910 自带 HBM动辄上百 TFLOPS 的浮点算力推理卡追求低功耗、高吞吐和视频编解码单元比如昇腾 310P 集成了 JPEG 解码、视频解码单元这些是 GPU 上需要额外花钱买 License 才能解锁的功能。所以当有人问我 Atlas 300V 24G 是不是运算加速卡时我的标准回答是它是拿来做推理的运算加速卡对标的是 GPU 视频编解码卡组合而不是替代训练型 GPU 的存在。把这句话理解透了你在选型时就不会踩坑也不会出现“买回来却发现跑不了训练”的尴尬。2. 部署YOLO前先理解昇腾的软件栈2.1 你以为装个驱动就行其实还要CANN用 GPU 部署 YOLO大家习惯了“装好 CUDA cuDNN然后 pip install torch”这种模式。但昇腾不是这个路子。CANNCompute Architecture for Neural Networks是昇腾的软件栈底座它包含了驱动、运行环境、算子库、图编译器和推理运行时。很多新手拿到 Atlas 300V 后第一件事就是插卡、装一个驱动然后发现npu-smi info能看到设备但一跑代码就提示找不到昇腾设备或者算子不支持原因就是没装完整的 CANN 工具包。举个生活化的比喻驱动只是“点亮屏幕”的那层让你知道系统认得这块卡CANN 才是真正的“操作系统”你的推理代码和模型转换工具都跑在它上面。如果只装驱动相当于买了台电脑只通了电没装操作系统自然是没办法干活的。CANN 整体可以拆成几个关键部分驱动与固件负责硬件初始化通过npu-smi info可以查看卡的状态。AscendCLACL昇腾的统一编程接口类似 CUDA Runtime用户用 Python 或 C 写推理程序就是基于它。ATC 模型转换工具负责把 ONNX、TensorFlow、Caffe 等模型转换成昇腾的.om格式这个环节是昇腾部署的核心难点。算子层内置了常用的算子实现包括卷积、池化、归一化、NMS 等如果你的模型里有算子不在这张“内置算子表”上转换就可能失败。对于部署 YOLO 来说CANN 版本越新越好。我建议直接上 6.x 以上的版本对 310P 的支持更成熟对 ONNX 算子覆盖也更全。另外注意CANN 的安装需要注册昇腾社区账号下载适配你操作系统的Ascend-cann-toolkit和Ascend-cann-nnae神经网络加速引擎安装包安装完还要 source 环境变量脚本否则命令行里找不到atc和acllib。2.2 安装步骤与验证方法完整安装步骤我不展开说因为官方文档已经写得很详细而且不同系统版本、不同用户环境多少有点差异。我只说几个关键点安装顺序是先装驱动/固件再装 CANN 工具包顺序反了容易出现莫名其妙的问题。安装驱动的命令一般是./Ascend-hdk-*_linux-aarch64.run --full装完重启系统才能生效。CANN 工具包安装则用./Ascend-cann-toolkit_版本_linux-aarch64.run --install装完后需要source /usr/local/Ascend/ascend-toolkit/set_env.sh。验证步骤先看npu-smi info能看到卡的温度、内存、版本信息就代表驱动没问题再看atc --version能输出版本号代表 ATC 工具已可用。一个很常见的坑是Ubuntu 或 CentOS 的系统内核太新可能不在昇腾硬件适配列表里装驱动时提示“Kernel not supported”。遇到这种情况要么换系统版本要么找同内核版本的替代驱动。踩过一次之后我现在的习惯是所有昇腾相关项目都固定用一个经过验证的系统版本避免在生产环境里折腾这些底层的兼容性问题。2.3 工具链选型ATC、pyACL、MindX SDK怎么分工把模型跑起来昇腾其实提供了好几条路选对路线能少走很多弯路。第一条路ATC pyACL。先用 ATC 把 ONNX 转成.om然后用 Python 写 pyACL 代码加载.om执行推理。这条路线最底层、最灵活所有细节都掌握在自己手里适合做深入研究但代码量大而且你需要自己处理内存管理、设备初始化、输出后处理。如果是部署 YOLO我建议至少要能跑通这条路因为后面排查问题都要用到。第二条路MindX SDKmxVision。这是昇腾推出的“傻瓜式”推理套件用配置文件pipeline描述数据流比如“输入图片 - 解码 - 缩放 - 推理 - 后处理”每个环节就是一个插件你用配置文件串起来就能跑。这条路对新手很友好官方也提供了 YOLOv3/v5 的检测示例基本是拿来即用。但缺点也很明显插件是封装好的调试黑盒里发生什么比较难同时如果你要处理非常规的前后处理逻辑反而要自己写插件学习曲线也不低。第三条路MindSpore 或 PyTorch 的昇腾适配。如果你想在昇腾上跑训练或在线推理可以用 MindSpore或者用 PyTorch torch_npu 插件。但这条路主要面向训练和昇腾 910对于 300V 这种推理卡的部署场景我的建议还是优先用前两条路。我自己部署 YOLOv5 时的选择是先用 ATC pyACL 验证模型和精度确认没问题后再用 MindX SDK 搭正式的服务。两者结合既有底层的掌控感又有工程化的高速度可以少加很多班。3. Atlas 300V 24G部署YOLOv5的完整实操3.1 先搞定ONNX模型导出昇腾不直接吃 PyTorch 的.pt文件它喜欢 ONNX 这种中间格式。所以第一步是把你训练好的 YOLOv5 转成 ONNX。这一步建议在 GPU 机器或你自己的电脑上完成不需要在 Atlas 300V 上跑。YOLOv5 官方仓库自带导出脚本基本命令是python export.py --weights yolov5s.pt --include onnx --opset 11 --simplify有几个细节值得注意--opset 11或以上都可以但不要太激进。昇腾的 ATC 对部分高版本 op 支持可能滞后我实测用 11 或 12 最稳。--simplify建议加上用 onnx-simplifier 去掉一些冗余算子减少后续转换失败的概率。YOLOv5 的默认输出是三个尺度的输出即推理后你需要做 NMS 才能得到最后的框。如果你希望直接在模型里完成解码和 NMS可以在导出时打开--end2end之类的选项但这样模型内部会有更多自定义算子反而提升昇腾落地难度。我的建议是导出一个标准的、带原始输出的 ONNX后处理在昇腾侧用代码完成这样最灵活也最容易排错。导出完成后用onnx.checker或 Netron 看一眼模型结构确认输入名通常是images输入 shape 可能是[1, 3, 640, 640]。记下输入名和 shape后面 ATC 转换要用。3.2 ATC转换OM格式关键参数说明拿到 ONNX 后在 Atlas 300V 所在的机器上执行 ATC 转换。先做一个最简单的转换atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s \ --soc_versionAscend310P3 \ --input_shapeimages:1,3,640,640这里面每个参数我都解释一下--framework5表示输入是 ONNX这是固定值别记错。--soc_version是必填项填错了 ATC 会直接报错。Atlas 300V 24G 使用的芯片是昇腾 310P所以填Ascend310P3如果你的卡是 300V Pro 系列也可能需要填Ascend310P或Ascend310B具体可以通过npu-smi info或者产品手册确认实在不确定就用Ascend310P3它覆盖了大部分 300V 型号。--input_shape里的images必须和 ONNX 输入名一致shape 要和导出时一致。注意这里的 batch 维如果你要推理时支持动态 batch可以用-1但动态 shape 在昇腾上会降低执行效率能固定就固定。--output指定输出文件名对应生成yolov5s.om。转换成功后命令行会打印类似ATC run success的信息同时生成.om文件。如果转换失败最常见的错误是“Unsupported op”也就是模型里有昇腾不支持的算子。解决办法有几个一是升级 CANN 版本二是用--op_type_list查看支持算子列表三是对模型做算子替换比如把某些自定义激活函数改成标准算子。这个在后面的常见问题里我再细讲。如果想对模型输入图像做固定预处理比如在转换阶段就把 resize、归一化这些编译进模型可以用 AIPP 配置文件atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_aipp \ --soc_versionAscend310P3 \ --input_shapeimages:1,3,640,640 \ --insert_op_confaipp.cfgaipp.cfg的示例内容是这样的aipp_op { aipp_mode: static input_format: RGB888_U8 src_image_size_h: 640 src_image_size_w: 640 csc_switch: true rbuv_swap_switch: false min_chn_0: 0 min_chn_1: 0 min_chn_2: 0 var_reci_chn_0: 0.003921569 var_reci_chn_1: 0.003921569 var_reci_chn_2: 0.003921569 }这段配置的意思是输入是 RGB 图尺寸已经缩放到了 640x640然后在硬件上完成除以 255 的归一化。这样你的推理代码连预处理都省了直接把原始图像数据送到模型。用 AIPP 的好处是让硬件干预处理的活CPU 占用更低对视频流场景很友好。但要注意AIPP 的配置和你的预处理代码必须严格对齐否则会出现“明明模型是对的但检测结果全偏”的诡异问题。3.3 用pyACL把推理代码写起来模型转好后用 pyACL 写推理代码。这个环节需要你理解昇腾的内存模型设备侧内存需要显式申请输入数据要从 CPU 拷贝到设备侧推理完成后结果再拷回来。下面我贴一段精简但完整的 YOLOv5 单张图片推理骨架基于 CANN 6.x 的 pyACL 接口import acl import numpy as np # 初始化 acl.init() ret acl.rt.set_device(0) context, ret acl.rt.create_context(0) stream, ret acl.rt.create_stream() # 加载模型 model_path b./yolov5s.om model_id, ret acl.mdl.load_from_file(model_path) desc, ret acl.mdl.create_desc() ret acl.mdl.get_desc(desc, model_id) # 获取模型输入输出尺寸 input_size acl.mdl.get_num_inputs(desc) output_size acl.mdl.get_num_outputs(desc) input_data_size acl.mdl.get_input_size_by_index(desc, 0) output_data_size acl.mdl.get_output_size_by_index(desc, 0) # 申请设备内存 input_data_ptr, ret acl.rt.malloc(input_data_size, 2) output_data_ptr, ret acl.rt.malloc(output_data_size, 2) input_data np.frombuffer(acl.util.np_to_bytes(input_data_ptr), dtypenp.uint8) # 数据拷贝将预处理后的图片数据放入输入内存 # 假设 image_data 是已经 resize 到 640x640 的 RGB 数据 acl.rt.memcpy(input_data_ptr, input_data_size, image_data.ctypes.data, input_data_size, 1) # 模型执行 dim [1, 3, 640, 640] ret acl.mdl.execute(model_id, input_data_ptr, input_data_size, output_data_ptr, output_data_size, dim, 0) # 把结果拷回CPU output_data np.zeros(output_data_size, dtypenp.uint8) acl.rt.memcpy(output_data.ctypes.data, output_data_size, output_data_ptr, output_data_size, 1) # 按模型输出格式解析YOLOv5 三个输出层一般是 (1, 255, 80, 80) 等 # 你需要根据实际 shape reshape 后做解码和 NMS # ...写 pyACL 时我强烈建议你把“资源释放”写进finally或atexit里包括释放模型描述、释放内存、销毁 stream、context 和调用acl.finalize()。昇腾的 C 底层对资源管理极严格如果某一个进程退出前没有正确释放资源很容易导致下一次申请显存时出“E10105 内存不足”之类的错误。实际生产环境中这类问题往往不是真显存不够而是之前的进程没释放干净。推理输出解析这里我多说两句。YOLOv5 默认输出是三个尺度的张量每个尺度都包含[batch, 255, grid_h, grid_w]其中的 255 3 * (5 80)对应 3 个 anchor 和 COCO 80 类。你需要在后处理里完成解码根据 anchor 和 stride 把中心点坐标和宽高还原成真实坐标。置信度过滤把置信度低于阈值的框过滤掉。NMS对类别内做非极大值抑制去掉重叠框。这一段逻辑比较固定网上也有很多现成实现可以直接参考 YOLOv5 官方的后处理 Python 代码改写。唯一要提醒的是如果你前面开了 AIPP 做归一化那么后处理后得到的坐标就是模型输入坐标系下的坐标要还原到原始图片还需要除以模型输入的缩放比例。不要忘了这一步否则框的位置全偏。3.4 用MindX SDK搭一条流式推理流水线如果你只需要跑通单张图pyACL 已经够用了。但真实项目里往往要处理视频流、多路摄像头、RTSP 拉流这时候再用裸 pyACL 写就有点低效了。MindX SDK 的价值在这里体现得特别明显。MindX SDK 的核心是 mxVision用 pipeline 文件来编排一个个插件。比如一个典型的 YOLOv5 检测视频流的 pipeline 大概长这样YAML 格式字段细节不同版本略有差异从 appsrc 接收图片 -mxpi_imagedecode解码 -mxpi_imageresize缩放 -mxpi_tensorinfer加载 OM 推理 -mxpi_objectpostprocess做目标后处理 - 输出结构体。伪代码如下mxpi_imagedecode0: factory: mxpi_imagedecode props: {} mxpi_imageresize0: factory: mxpi_imageresize props: resizeHeight: 640 resizeWidth: 640 mxpi_tensorinfer0: factory: mxpi_tensorinfer props: modelPath: ./yolov5s.om postProcessorName: mxpi_objectpostprocessor然后 Python 侧只需要用mxVision的接口加载 pipeline往上游组件推数据从下游拿结果from mxvision import MxVision, Engine engine Engine(pipeline.yaml) # 读取一张图 data engine.push_data(0, image_data) # 拿到检测结果 result engine.get_result(0)这种模式最大的好处是代码量和框架感都大大降低而且解码、缩放这类操作是在昇腾的 DVPP 硬件单元上完成的CPU 占用极低。对视频流来说DVPP 硬件解码可以让一整路 1080p 视频流的解码占用不到一个核这种能力在 GPU 平台上做往往需要额外付费的卡才能搞定。有朋友担心 MindX SDK 是封装黑盒出了问题不好排查。我的经验是先单组件调试再用 pipeline 串起来。任何一个插件出错日志里都有组件名和错误码定位起来反而比手写代码快。尤其是在做多路视频流的时候手写 pyACL 要考虑线程池、队列、超时重试这些事MindX SDK 内部都帮你处理好了省心不少。4. 部署过程中的常见问题与排查思路4.1 模型转换失败算子不支持这是我遇到最多的坑没有之一。ATC 转换时报错Unsupported op或者XXX op not support基本可以分成三种情况。第一种是 ONNX 模型里带了太新的算子。解决办法是升级 CANN 版本或者修改模型导出时的 opset 版本。第二种是模型里有自定义算子或动态 shape 导致的无法图编译。如果是动态 shape尽量固定为静态 shape如果是不支持的自定义算子可以尝试用可视化工具看模型结构找到对应层替换成结构等价的激活函数或归一化算子。第三种是 AIPP 配置和模型不匹配比如输入通道数填错、模型实际需要 BGR 但配置成 RGB这类错误通常不会报“算子不支持”而是在推理时输出异常但有时候转换阶段也会给出 warning所以看到 warning 不要忽略一定要逐条读。如果你转的是一个比较老版的 YOLOv3 或 YOLOv5很可能会遇到 Focus 层或 SPPF 层的算子问题。官方 ONNX 通常已经把这些展开成标准算子实际碰到问题的概率不大。万一碰到了优先查昇腾社区的算子支持列表再决定是改模型还是改版本。4.2 推理结果不对框全乱、坐标偏移模型能跑起来但结果一团糟这通常是预处理或后处理没有对齐导致的。我排查这个问题的固定顺序是先用一张已知结果的标准图比对 CPU 上和昇腾上的输入数据是否一致尤其检查归一化方式。检查 AIPP 配置是否被正确编译进模型。如果开了 AIPP输入数据就不应该在 Python 端再做一遍归一化。检查输入数据的通道排列。YOLOv5 训练时用的是 RGB但有些视频解码组件默认输出 BGR。检查后处理解码逻辑里的 anchor、stride 是否和导出模型一致。坐标偏移的问题还有一个隐蔽来源模型输入尺寸如果不是 640x640 的整数倍缩放后处理后还原到原图时必须按“模型输入尺寸 / 原图尺寸”的比例做映射而且如果 resize 时没有保持宽高比还需要做 letterbox 的偏移补偿。我见过很多人直接在原图上缩放哪一步细节忘了框的位置就偏得离谱。4.3 性能上不去推理速度比预期慢Atlas 300V 24G 单卡 INT8 算力不低但你感觉跑 YOLOv5s 连 30 FPS 都达不到那问题大概率不在卡本身。首先检查模型是不是转成了 FP16 精度如果 ONNX 是 FP32ATC 转换时强烈建议加--output_typeFP16推理速度能翻倍。其次检查是否开了 AIPP硬件预处理能省下大量 CPU 时间。再者检查 batch 大小单张推理的 AI Core 利用率往往不高如果业务是离线批量处理可以适当加大 batch例如一次送 4 张图整体吞吐会明显提升。还有一点容易忽略pyACL 的执行是异步的如果你每次执行acl.mdl.execute后都同步等待结果再处理下一张性能就会卡在单次往返延迟上。正确做法是创建多个 stream让推理和数据拷贝重叠也就是做 pipeline 并行。这对代码结构要求稍高但提升非常明显尤其是视频流场景。4.4 显存内存池不足与多路并发24GB 看着很大但如果你在进程里反复加载模型、申请临时内存却不释放跑几天后一样会报内存不足。昇腾设备侧内存一旦被某个进程申请默认不会自动回收给其他进程所以长期服务必须做好内存池配额管理和进程退出清理。多路并发时我建议每个进程只加载同一个模型一次然后通过多线程或异步队列共享这个模型而不是每路视频都重复加载。MindX SDK 天生就是为多路场景设计的自带资源复用和调度能力。如果自己用 pyACL 写多路一定要把流stream的概念用好每个线程一个 stream互不干扰然后用条件变量或队列把输入输出串起来。5. 最后分享一个我反复用的小技巧如果你要在 Atlas 300V 上长期跑 YOLO 服务我建议把“模型转换 推理验证 服务封装”这三步分开每一步都单独做成脚本并且把 ATC 命令和 pipeline 配置都纳入版本管理。因为 CANN 版本升级、YOLO 权重更新、新的视频流接入都可能让之前跑通的流程重新出问题。版本化之后回滚和对比会非常快。另外对于想上生产环境的朋友我特别建议多做一步“压力测试”用多路视频流并发跑 24 小时以上观察内存和温度曲线。Atlas 300V 是无风扇版本长时间高负载运行时如果机箱风道不好卡表面温度会明显上升性能也可能降频。我们当时就是因为没注意风道导致长时间运行后推理延迟从 20ms 涨到了 40ms后来重新调整了机箱风扇才好。所以硬件散热这事别看它不起眼它直接影响你在生产环境中的推理稳定性。如果你是从 GPU 转过来第一次跑通昇腾上的 YOLO可能会觉得流程繁琐但多走两遍之后你就会发现这种“编译到中间格式再在硬件上执行”的模式其实和 TensorRT 的思路非常相似。理解了这一层昇腾部署对你来说就不会再是个玄学问题了。

相关新闻

Atlas 300V部署YOLO目标检测:从模型转换到推理优化全指南

Atlas 300V部署YOLO目标检测:从模型转换到推理优化全指南

1. 为什么要把YOLO模型部署到Atlas加速卡上在AI部署圈子里,"Atlas"这个名字基本默认是和华为的Atlas系列加速卡绑定在一起的。你手里的标题"atlas"搭配"部署YOLO"和"300V 24G",指向已经很明确了——就是要在Atl…

2026/9/20 18:03:08 阅读更多 →
用 GetQzonehistory 把 QQ 空间历史说说一键搬回本地:完整上手指南

用 GetQzonehistory 把 QQ 空间历史说说一键搬回本地:完整上手指南

用 GetQzonehistory 把 QQ 空间历史说说一键搬回本地:完整上手指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 十年前你在 QQ 空间发的那条说说,配上毕业照和…

2026/9/20 18:03:08 阅读更多 →
Spaceship Prompt 的 swiftenv 插件:显示与切换 Swift 多版本

Spaceship Prompt 的 swiftenv 插件:显示与切换 Swift 多版本

Spaceship Prompt 的 swiftenv 插件:显示与切换 Swift 多版本 【免费下载链接】spaceship-prompt 🚀✨ Minimalistic, powerful and extremely customizable Zsh prompt 项目地址: https://gitcode.com/gh_mirrors/sp/spaceship-prompt Spaceship…

2026/9/20 18:03:08 阅读更多 →

最新新闻

MiniMax H3 IP Edition低配本地部署:ComfyUI极限调试与显存优化实战

MiniMax H3 IP Edition低配本地部署:ComfyUI极限调试与显存优化实战

1. 从一条发布消息说起:H3 IP Edition 到底在做什么MiniMax 发布 H3 IP Edition 这件事,如果只看新闻标题,很容易被归类成“又一个模型版本更新”。但把热词列表摊开看,你会发现大家真正关心的东西完全不在发布稿里——minimax h3…

2026/9/20 19:39:36 阅读更多 →
Artificial Analysis:GLM 5.3 Flash 智能指数与价格散点,TaoToken 的默认供应商位置

Artificial Analysis:GLM 5.3 Flash 智能指数与价格散点,TaoToken 的默认供应商位置

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

2026/9/20 19:39:36 阅读更多 →
DPDK Testpmd实战指南:参数解析、性能测试与故障排查

DPDK Testpmd实战指南:参数解析、性能测试与故障排查

简介:《DPDK Testpmd 应用》是一份面向DPDK开发者和网络性能测试工程师的用户指南,以testpmd这一官方示例程序为载体,讲解如何在Packet Forwarding模式下评估DPDK性能,并调用Flow Director等NIC硬件特性。文档系统梳理了编译流程、…

2026/9/20 19:39:36 阅读更多 →
AI如何革新债务优化:智能诊断与个性化方案

AI如何革新债务优化:智能诊断与个性化方案

1. 债务优化行业的现状与挑战债务优化服务这个领域最近几年发展得特别快,尤其是随着个人信贷规模的扩大和消费习惯的改变,越来越多的人开始面临债务管理的问题。我自己在这个行业摸爬滚打了七八年,亲眼见证了从最初简单的手工记账式服务&…

2026/9/20 19:39:36 阅读更多 →
10 分钟用 TaoToken 跑通 OpenHands 的 Docker 部署

10 分钟用 TaoToken 跑通 OpenHands 的 Docker 部署

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

2026/9/20 19:39:36 阅读更多 →
OpenClaw 部署完,大模型 API 走 TaoToken 通道行不行?

OpenClaw 部署完,大模型 API 走 TaoToken 通道行不行?

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

2026/9/20 19:38:36 阅读更多 →

日新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →