Ryzen 5 3600を搭載したPC上のVirtualBoxのVMで、llama.cppをビルドしようとしたら、次のようなエラーが出た。
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:99, from ggml-impl.h:75, from ggml-quants.h:3, from ggml-quants.c:1: ggml-quants.c: In function ‘ggml_vec_dot_q4_0_q8_0’: /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h:63:1: error: inlining failed in call to ‘always_inline’ ‘_mm256_fmadd_ps’: target specific option mismatch 63 | _mm256_fmadd_ps (__m256 __A, __m256 __B, __m256 __C) | ^~~~~~~~~~~~~~~ ggml-quants.c:2516:15: note: called from here 2516 | acc = _mm256_fmadd_ps( d, q, acc ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:99, from ggml-impl.h:75, from ggml-quants.h:3, from ggml-quants.c:1:
Makefileで指定されている最適化オプションの「-march=native」がうまく働いていないのが原因のようなので、単純にそれを削除することでビルドできた。高速化させるなら、cpuflagsを見ながら「-mavx」などを追加するとOK。