首页/详情

将基于LFM2-350M的自研推理引擎移植到纯C语言

Reddit r/LocalLLaMA2026/02/09 20:09机翻/自动摘要/自动分类
5 阅读

摘要

作者将基于LFM2-350M的自研推理引擎从Python(或类似)移植到纯C语言。此前,该引擎在旧款Intel Core i5笔记本上仅有每秒4个token的速度。通过纯C语言重写单批次推理部分,并利用混合缓存及CBLAS GEMM API,作者成功将速度提升了3倍,达到每秒12个token。该项目从零开始构建,未使用gguf文件,且代码已在GitHub开源。这一改进显著提升了旧设备上的推理性能。

正文

此前,我从零开始实现了一个批处理推理引擎,重点关注正确性而非优化。在M2-Pro 16 GB CPU上,单批次CPU速度达到了每秒50个,但在我旧的Intel Core i5笔记本电脑上,速度仅为每秒4个。旧笔记本电脑的速度令我失望,因此我用纯C语言重新实现了单批次推理部分,在除了混合缓存以及针对Intel (OneMKL) 和 Arm (ArmPL) 的CBLAS GEMM API之外没有其他优化的情况下,实现了3倍的速度提升(从每秒4个提升到每秒12个)。同样,这次也是从零开始构建,使用了bin文件而非gguf文件,并且没有采用其他优化措施!该项目的GitHub链接已提供。特别感谢:Kay Lack的“Just enough C to have fun!”,这是迄今为止最好的C语言速成视频!Jacob Sorber的C语言编程视频,用于回顾C语言工具和功能。此外,还借鉴了antirez在Flux.2-Klein上的C语言仓库中的RoPE实现,并进行了!这个项目最初并未计划,仅仅是因为对旧笔记本电脑的单批次解码速度感到失望而诞生!尽管如此,我还是很享受这个过程!我目前在美国马萨诸塞州,正在寻找实习和全职工作机会,并愿意搬迁。

标签