在生产级边缘设备上进行供应商无关的机器学习推理 [R]
摘要
描述了使用 ncnn 的 Vulkan 后端在生产级边缘设备上进行供应商无关的机器学习推理,在人脸检测和嵌入模型上相比 CPU ONNX 实现了 10 倍加速。
我在 PostSlate 工作,这是一款视频编辑工具,这源于我们自己的工作。我们在设备上运行 ML 模型,包括人脸检测和嵌入等,这意味着我们不能对用户的 GPU 做任何假设。NVIDIA 独立显卡、AMD、Intel 集成显卡、Apple Silicon,全都可能。这直接排除了 CUDA,我们需要一个能在任何地方运行的统一后端。我们最终选择了 ncnn 的 Vulkan 后端。在 RTX 4070 上,fp16 的数据:ArcFace R50(人脸嵌入):ONNX CPU 上 30 毫秒 → ncnn Vulkan 上 3 毫秒;SCRFD(人脸检测):25 毫秒 → 2.5 毫秒。模型大小:ArcFace 174 MB(ONNX fp32)→ 87 MB(ncnn fp16 权重存储)。当然,真正的加速来自于将计算卸载到 GPU,但如果没有 Vulkan 的强大能力,这是不可能实现的。速度甚至不是决定性因素,关键在于 Vulkan 驱动程序已经存在于我们交付的每台机器上。这意味着我们不必强迫用户下载特定的运行时,也不需要任何供应商特定的安装。完整文章及更多数据:https://getpostslate.com/blog/faster-local-inference
相似文章
@DanKornas: 需要在设备上运行神经网络而不添加一堆运行时依赖?ncnn 是一个神经网络推理…
ncnn 是一个轻量级的开源神经网络推理框架,用于将 PyTorch 和 ONNX 模型部署到移动端、嵌入式设备和桌面端,无需繁重的依赖,支持 CPU 和 Vulkan GPU 后端。
@googlegemma:“代理内核优化是端侧推理的未来” @xenovacom 使用 Fable 5 编写内核,将……
Xenova 使用 Fable 5 编写优化内核,在 M4 上的 WebGPU 中为 Gemma 4 实现了每秒 255 个 token 的速度,展示了用于端侧推理的代理内核优化。
在AMD MI50上使用Vulkan训练神经网络:概念验证——或:我为何不再听从,直接行动
作者展示了如何强制AMD MI50 GPU与ROCm 6.4.3配合工作,并构建了一个基于Vulkan的神经网络训练栈,挑战了关于旧硬件支持的共识。
使用CUDA内核重写模型推理:瓶颈不仅仅是GEMM [P]
作者描述了构建FlashRT的过程,这是一个以CUDA为核心的推理运行时,通过使用C++/CUDA内核重写模型推理路径,来解决小批量/实时工作负载中超出GEMM的瓶颈,在Jetson Thor和RTX 5090上实现了显著的延迟改进。文章讨论了关于精度的经验(FP8有帮助,FP4好坏参半)以及绕过通用运行时进行实时推理的必要性。
我构建了一个支持143种现代Transformer架构的原生Vulkan训练后端——无需CUDA或PyTorch
一个原生Rust和Vulkan训练后端已为143种Transformer架构开发,支持无CUDA的模型训练和推理,并兼容多种硬件供应商。