[ggerganov/llama.cpp]构建 C 对象 CMakeFiles/ggml.dir/ggml.co 失败

2024-03-22 8 views
7

我输入: git clone https://github.com/ggerganov/llama.cpp cd llama.cpp mkdir build cd build cmake .. -DLLAMA_CUBLAS=ON cmake --build 。--config 发布

失败于:[ 2%] 构建 C 对象 CMakeFiles/ggml.dir/ggml.co

错误显示:调用“always_inline”“_mm256_fmadd_ps”时内联失败:目标特定选项不匹配gmake [2]:[CMakeFiles / ggml.dir / build.make:76:CMakeFiles / ggml.dir / ggml.co]错误1 gmake[1]: [CMakeFiles/Makefile2:650: CMakeFiles/ggml.dir/all] 错误 2 gmake: *** [Makefile:146: all] 错误 2

图像

回答

3

您在什么平台/系统上运行它?

9

在 Windows 10 上的 Ubuntu 22.04 VM 上的可写奇点容器 (NGC PyTorch 23.08) 上运行。

0

同样的问题,我在 Fedora 38 (裸机) / CentOS 7 (vm) / Ubuntu 22.04 (vm)、gcc 11/12、cuda 12.2/12.3 上尝试,均失败。我可以使用 make 构建 cuBLAS 版本,也可以使用 CMake 构建 AVX512 版本,但不知道如何获得同时支持 CUDA 和 AVX512 的版本。

0

AVX 是您的 CPU 应该具有的东西,是 CPU 指令集扩展,它完全依赖于硬件,或者如果您使用 docker、容器或虚拟机,某些 CPU 扩展可能会被 VM/容器主机阻止。

4

我的案例不涉及虚拟机/容器问题,它是一个裸机软呢帽盒。我的目标是,当我在 GPU 和 CPU 之间分配工作负载时,CPU 计算不会花费太长时间(测试表明,在我的场景中启用 AVX 会带来 2.5 倍的加速)。

7

使用 来检查选项cmake,其中有一些专门针对 AVX512 的选项。似乎Makefile只是依赖于 using -march=native -mtune=native(换句话说,让编译器使用所有可用的功能)。对于 cmake,除了 CUDA 选项之外,没有什么可以阻止您设置 AVX 选项。

如果您想专门设置特定的编译器选项,您可以编辑Makefile或可能安排以CFLAGS其他方式添加它们。

但如果编译器没有检测到支持,可能会出现一些奇怪的情况。