llama.cpp 项目刚刚完成了构建系统的重大迁移。

FYI

3. 为什么他们要换成 CMake?

既然你关注架构设计,这背后的原因主要有三点:

  1. 后端大爆炸llama.cpp 现在支持 CUDA, Metal (Apple), Vulkan, ROCm (AMD), SYCL (Intel) 等众多后端。用传统的 Makefile 写这种跨平台的条件编译逻辑(ifdef 地狱)已经难以维护了。
  2. 库依赖管理:CMake 的 find_package 机制能自动处理库依赖(比如找到 CUDA toolkit 的路径),在 Colab 这种环境中比手写 Makefile 路径要稳健得多。
  3. 模块化:项目正在拆分为核心库 libllama 和前端工具。CMake 更容易生成动态库/静态库供第三方调用(比如 llama-cpp-python 就是调用的库)。

你可以现在尝试运行上面的 CMake 命令,应该就能顺利通过编译了。如果有关于 CMakeLists.txt 的具体写法疑问,我们也可以深入探讨。

类似文章

发表回复