Hasty Briefsbeta

双语

Why we write our own C and C++ inference engines

a day ago
  • 部署C++移植产生单个共享库(66 MiB),而不是多GB的Python虚拟环境(vLLM为9.1 GiB),内存使用可预测。
  • vllm.cpp在各种并发级别上实现与vLLM相当的吞吐量或略有优势,输出逐token相同,峰值内存更低(24.88 GiB对比28.18 GiB)。
  • depth-anything.cpp在CPU上运行速度比PyTorch快1.31倍,同时仅使用27%的内存,这得益于缓存了原本不必要重新计算的位置编码。
  • face-detect.cpp和voice-detect.cpp优先确保输出精确匹配(余弦相似度1.0,像素级精度)而非速度,从而无需重新注册生物模板即可直接替换。
  • 移植方法遵循严格顺序:将权重转换为GGUF,移植带有每个组件一致性检查的计算图,仅在一致性成立后进行优化,并暴露扁平的C ABI。
  • 维护成本高:每个引擎需要自己的CI、基准测试、转换脚本以及新检查点的更新;GPU内核在卷积密集型模型上落后于调优后的cuDNN。
  • 移植是有选择性的:许多后端在已有项目(如llama.cpp、vLLM、whisper.cpp)已经出色、庞大且快速时,仍然选择封装它们。

相关文章

加载中…