llama.cpp changed to cmake why
为什么他们要换成 CMake?
既然你关注架构设计,这背后的原因主要有三点:
- 后端大爆炸:
llama.cpp现在支持 CUDA, Metal (Apple), Vulkan, ROCm (AMD), SYCL (Intel) 等众多后端。用传统的 Makefile 写这种跨平台的条件编译逻辑(ifdef地狱)已经难以维护了。 - 库依赖管理:CMake 的
find_package机制能自动处理库依赖(比如找到 CUDA toolkit 的路径),在 Colab 这种环境中比手写 Makefile 路径要稳健得多。 - 模块化:项目正在拆分为核心库
libllama和前端工具。CMake 更容易生成动态库/静态库供第三方调用(比如llama-cpp-python就是调用的库)。
你可以现在尝试运行上面的 CMake 命令,应该就能顺利通过编译了。如果有关于 CMakeLists.txt 的具体写法疑问,我们也可以深入探讨。