在生产级边缘设备上进行供应商无关的机器学习推理 [R]

Reddit r/MachineLearning 工具

摘要

描述了使用 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
查看原文

相似文章

使用CUDA内核重写模型推理:瓶颈不仅仅是GEMM [P]

Reddit r/MachineLearning

作者描述了构建FlashRT的过程,这是一个以CUDA为核心的推理运行时,通过使用C++/CUDA内核重写模型推理路径,来解决小批量/实时工作负载中超出GEMM的瓶颈,在Jetson Thor和RTX 5090上实现了显著的延迟改进。文章讨论了关于精度的经验(FP8有帮助,FP4好坏参半)以及绕过通用运行时进行实时推理的必要性。