引言:算力碎片化下的“资源孤岛”

在 AI 赋能千行百业的当下,作为安防架构师,我们面临着一个尴尬的现实:算力的极度碎片化。客户的现场环境往往是“万国牌”:数据中心里可能是 NVIDIA 的 A100,机房里堆着海思的服务器,而前端边缘端则可能是瑞芯微、比特大陆甚至是华为昇腾的 NPU 盒子。传统的视频管理平台通常绑定特定的硬件 SDK,导致企业不得不为不同的芯片维护多套代码分支。这种重复的适配工作,消耗了企业约 95% 的研发成本,却无法产生任何核心业务价值。
在这里插入图片描述

如何构建一个“一次开发,处处运行”的统一视频底座?YiheCode Server 给出的答案是“软硬解耦”。作为一个企业级 AI 视频管理平台,它通过抽象化的设备管理层和容器化部署策略,成功实现了从 x86 到 ARM,从 GPU 到 NPU 的全场景异构计算支持。本文将深入解析其如何通过微服务架构,打通芯片厂商间的壁垒,实现算力资源的统一调度。


一、 底层架构:指令集无关性与容器化部署

YiheCode Server 的核心架构设计哲学是“环境隔离”“架构中立”。基于 Spring Boot 2.7 后端与 Vue 2.6 前端的纯 Java 技术栈,保证了应用层的跨平台能力。

1.1 跨平台指令集支持 (x86 vs ARM)

平台设计之初就考虑了国产化与多样化的硬件环境,支持在不同指令集架构下无缝迁移:

  • 服务端:支持标准的 x86 服务器,同时也完美适配基于 ARM 架构的国产服务器(如鲲鹏、飞腾等)。
  • 部署方式:推荐使用 Docker 容器化部署。通过构建多架构镜像(Multi-Architecture Images),系统可以自动识别底层 CPU 指令集(AMD64/ARM64),无需修改代码即可运行。
1.2 边缘-云协同架构

系统采用了标准的分层架构

  • 边缘层:部署轻量级 Agent 或直接在 NPU 盒子上运行推理程序。
  • 平台层:中心化管理,负责配置下发、告警汇聚与数据存储。
  • 解耦逻辑:中心平台不直接依赖边缘的硬件 SDK,而是通过标准化的通信协议(如 HTTP/WebSocket)与边缘节点交互,实现了业务逻辑与硬件驱动的彻底分离。

二、 异构计算:多芯片 NPU/GPU 的统一纳管

这是 YiheCode Server 最具技术含量的部分。文档明确指出平台支持“全硬件适配”,这意味着它必须解决不同 AI 芯片(NPU/GPU)的算子差异问题。
在这里插入图片描述

2.1 硬件抽象层 (HAL) 设计

平台并没有试图用一套 C++ 代码兼容所有芯片,而是采用了“插件化算法”策略:

  • 自定义模型注入:开发者可以将针对特定芯片(如瑞芯微 RK3588、华为 Ascend 310)编译好的模型文件(.om, .rknn 等)上传至平台。
  • 运行时隔离:算法在边缘侧独立运行,平台只关心“结果”不关心“过程”。

边缘节点配置示例 (JSON):

{
  "device_info": {
    "device_id": "edge_node_001",
    "chip_type": "Rockchip_RK3588", // 识别芯片类型
    "architecture": "ARM64",
    "compute_power": "10.0_Tops"
  },
  "algorithm_list": [
    {
      "algorithm_id": "smoke_detect_v1",
      "model_file": "rk3588_smoke_detect.rknn", // 根据芯片类型加载特定模型
      "input_source": "rtsp://camera01/stream",
      "status": "running"
    }
  ]
}
2.2 动态算力调度策略

在多路视频接入的场景下,系统需要智能分配算力资源。平台通过“边缘推流”“按需计算”机制来优化性能:

  1. 负载感知:中心平台定时获取边缘节点的 CPU/NPU 利用率。
  2. 动态启停:根据业务优先级,远程控制边缘盒子的算法开关。例如,夜间非工作时段自动关闭“玩手机检测”,开启“离岗检测”。

三、 高可用与流媒体分发

除了硬件适配,海量视频流的稳定传输也是架构设计的难点。基于 Gitee 文档提及的“灵活组网”“集群管理”,系统采用了以下策略:

3.1 ZLMediaKit 流媒体集群

为了应对 x86 和 ARM 混合部署的网络环境,平台集成了 ZLMediaKit 作为流媒体引擎。

  • 自动分配策略:当新增摄像头时,系统会根据现有 ZLM 节点的负载(Load),自动将流媒体流转到压力最小的节点上。
  • 协议转换:无论前端是 GB28181 推流还是 RTSP 拉流,统一转码为标准的 FLV/HLS 流供前端播放,屏蔽了底层协议的差异。
3.2 边缘推流模式 (Edge Push)

针对复杂的网络拓扑(如边缘在内网,平台在公网),架构支持边缘主动推流模式:

  • 逻辑:边缘盒子拉取本地 IPC 视频流 →\rightarrow 硬件编码 →\rightarrow 推送 RTMP 至中心服务器。
  • 优势:无需公网 IP,无需复杂 NAT 穿透,极大降低了网络部署门槛。

四、 总结

YiheCode Server 通过**“应用容器化”“算法插件化”的架构设计,成功构建了一个异构计算统一底座。
在这里插入图片描述

对于技术决策者而言,这套架构的价值在于:它将“适配不同硬件 SDK”的沉没成本,转化为“模型文件替换”的简单操作。无论是基于 x86 的高性能 GPU 服务器,还是基于 ARM 的低功耗 NPU 边缘盒子,都能在这个平台上被统一管理、调度和监控。这种“软硬解耦”的能力,正是实现“减少 95% 开发成本”并快速完成项目交付的技术基石。


架构师建议
在进行异构部署时,建议将 ZLMediaKit 流媒体节点AI 推理节点物理分离。对于 ARM 边缘设备,尽量在边缘侧完成算法推理和 RTMP 推流,中心节点仅负责存储和展示,以降低中心服务器的解码压力,确保大规模部署时的系统稳定性。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐