llama.cpp ggml:统一的CMake构建

j0pj023g  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(104)

当前,ggmlllama.cppwhisper.cpp项目共享相同的ggml库源,但具有不同的CMake脚本。这些脚本针对项目的特定需求进行了调整,彼此之间非常相似 - 它们都构建ggml。尽管如此,由于手动重写它们并将更改从一个仓库应用到另一个仓库,仍然存在一些差异。

在这个任务中的目标是统一、去重和简化ggml的构建过程,使用跨项目共享的适当的CMake脚本。这将简化未来的更改,并有助于其他依赖于ggml的第三方项目。有关此主题的更多讨论可以在以下链接找到:

为了实现这一目标,llama.cppwhisper.cpp中的与ggml相关的源代码可能需要重新组织到子文件夹中,以模拟子模块。我们避免使用实际的git子模块,因为我认为它有一些缺点。相反,我们在3个仓库之间进行手动同步。无论如何,在我们完成这个任务后,如果将来决定这样做,切换到ggml子模块会变得容易得多。

关于现有的Makefiles(位于llama.cppwhisper.cpp中),我们应该将其保留为另一种构建系统。它不必支持所有可能的后端和配置,就像主要的CMake构建系统那样。Makefile维护将是低优先级的任务。

在构建系统得到改进后,我们可以考虑通过生成构建时配置(例如config.h)来扩展它,以提高兼容性,正如在#5890中建议的那样。但目前这仍处于低优先级。

4nkexdtk

4nkexdtk1#

这个问题已关闭,因为自标记为过期以来已经14天没有活动。

相关问题