whisper.cpp icon indicating copy to clipboard operation
whisper.cpp copied to clipboard

[Build Error] CMake --build error on mac mini m4; cc1: error: unknown value 'native+nodotprod+noi8mm+nosve' for '-mcpu'

Open umarkotak opened this issue 10 months ago • 7 comments

I want to install whisper cpp on docker ubuntu that running on top of a mac mini m4.

Command log:

cmake -B build

CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /usr/bin/git (found version "2.47.1")
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF
-- CMAKE_SYSTEM_PROCESSOR: aarch64
-- Including CPU backend
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- ARM detected
-- Performing Test GGML_COMPILER_SUPPORTS_FP16_FORMAT_I3E
-- Performing Test GGML_COMPILER_SUPPORTS_FP16_FORMAT_I3E - Failed
-- ARM -mcpu not found, -mcpu=native will be used
-- Performing Test GGML_MACHINE_SUPPORTS_dotprod
-- Performing Test GGML_MACHINE_SUPPORTS_dotprod - Failed
-- Performing Test GGML_MACHINE_SUPPORTS_i8mm
-- Performing Test GGML_MACHINE_SUPPORTS_i8mm - Failed
-- Performing Test GGML_MACHINE_SUPPORTS_sve
-- Performing Test GGML_MACHINE_SUPPORTS_sve - Failed
cc1: error: unknown value 'native+nodotprod+noi8mm+nosve' for '-mcpu'
cc1: note: valid arguments are: cortex-a34 cortex-a35 cortex-a53 cortex-a57 cortex-a72 cortex-a73 thunderx thunderxt88p1 thunderxt88 octeontx octeontx81 octeontx83 thunderxt81 thunderxt83 ampere1 ampere1a ampere1b emag xgene1 falkor qdf24xx exynos-m1 phecda thunderx2t99p1 vulcan thunderx2t99 cortex-a55 cortex-a75 cortex-a76 cortex-a76ae cortex-a77 cortex-a78 cortex-a78ae cortex-a78c cortex-a65 cortex-a65ae cortex-x1 cortex-x1c neoverse-n1 ares neoverse-e1 octeontx2 octeontx2t98 octeontx2t96 octeontx2t93 octeontx2f95 octeontx2f95n octeontx2f95mm a64fx fujitsu-monaka tsv110 thunderx3t110 neoverse-v1 zeus neoverse-512tvb saphira cortex-a57.cortex-a53 cortex-a72.cortex-a53 cortex-a73.cortex-a35 cortex-a73.cortex-a53 cortex-a75.cortex-a55 cortex-a76.cortex-a55 cortex-r82 cortex-a510 cortex-a520 cortex-a710 cortex-a715 cortex-a720 cortex-a725 cortex-x2 cortex-x3 cortex-x4 cortex-x925 neoverse-n2 cobalt-100 neoverse-n3 neoverse-v2 grace neoverse-v3 neoverse-v3ae demeter generic generic-armv8-a generic-armv9-a
CMake Warning at ggml/src/ggml-cpu/CMakeLists.txt:151 (message):
  Failed to get ARM features
Call Stack (most recent call first):
  ggml/src/CMakeLists.txt:299 (ggml_add_cpu_backend_variant_impl)


-- Adding CPU backend variant ggml-cpu: -mcpu=native+nodotprod+noi8mm+nosve
-- Configuring done (0.5s)
-- Generating done (0.0s)
-- Build files have been written to: /root/whisper.cpp/build
cmake --build build --config Release

[  2%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o
[  5%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o
[  7%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o
[ 10%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o
[ 12%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o
[ 15%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o
[ 17%] Linking CXX shared library libggml-base.so
[ 17%] Built target ggml-base
[ 20%] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ggml-cpu.c.o
cc1: error: unknown value 'native+nodotprod+noi8mm+nosve' for '-mcpu'
cc1: note: valid arguments are: cortex-a34 cortex-a35 cortex-a53 cortex-a57 cortex-a72 cortex-a73 thunderx thunderxt88p1 thunderxt88 octeontx octeontx81 octeontx83 thunderxt81 thunderxt83 ampere1 ampere1a ampere1b emag xgene1 falkor qdf24xx exynos-m1 phecda thunderx2t99p1 vulcan thunderx2t99 cortex-a55 cortex-a75 cortex-a76 cortex-a76ae cortex-a77 cortex-a78 cortex-a78ae cortex-a78c cortex-a65 cortex-a65ae cortex-x1 cortex-x1c neoverse-n1 ares neoverse-e1 octeontx2 octeontx2t98 octeontx2t96 octeontx2t93 octeontx2f95 octeontx2f95n octeontx2f95mm a64fx fujitsu-monaka tsv110 thunderx3t110 neoverse-v1 zeus neoverse-512tvb saphira cortex-a57.cortex-a53 cortex-a72.cortex-a53 cortex-a73.cortex-a35 cortex-a73.cortex-a53 cortex-a75.cortex-a55 cortex-a76.cortex-a55 cortex-r82 cortex-a510 cortex-a520 cortex-a710 cortex-a715 cortex-a720 cortex-a725 cortex-x2 cortex-x3 cortex-x4 cortex-x925 neoverse-n2 cobalt-100 neoverse-n3 neoverse-v2 grace neoverse-v3 neoverse-v3ae demeter generic generic-armv8-a generic-armv9-a
gmake[2]: *** [ggml/src/CMakeFiles/ggml-cpu.dir/build.make:79: ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ggml-cpu.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:385: ggml/src/CMakeFiles/ggml-cpu.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

thanks in advance

umarkotak avatar Jan 10 '25 04:01 umarkotak

same error here. I'm on a raspberry pi zero 2 w

philippstoboy avatar Jan 10 '25 16:01 philippstoboy

Same here, I'm on an Ubuntu VM in an arm-based MacBook

carlonigiulio avatar Jan 18 '25 14:01 carlonigiulio

Getting the same on Fedora Asahi Remix - master at 7a423f1c008c1d7efdee91e1ce2f8ae22f42f43b

mstephenson6 avatar Jan 20 '25 18:01 mstephenson6

Found a workaround inspired by the github workflow build step.

cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=native
cmake --build build --config Release

That configured itself and built with zero warnings. Then it worked for the sample, reporting NEON = 1 in system_info and transcribing:

./build/bin/whisper-cli -m models/ggml-medium.en.bin samples/jfk.wav

mstephenson6 avatar Jan 20 '25 18:01 mstephenson6

Thank you! Now it works perfectly

carlonigiulio avatar Jan 21 '25 23:01 carlonigiulio

Same issue here, trying to build it on Termux The cmake flags solution makes the compilation crash on a different error: build log

Plat-G avatar Jan 30 '25 14:01 Plat-G

For Termux issues I install proot-distro to install fedora in termux and now use this for development within termux. I logged into proot: proot-distro login --user yourusername fedora

Edited the .bash_profile file to remove the termux path in $PATH then logged out/in again. (I added this line to the end of bash_profile: export PATH=/home/johnel/.local/bin:/home/johnel/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/system/bin:/system/xbin )

Proot-distro is now isolated from termux.

I then followed the instructions to compile and it worked after adding the above cmake flags.

I've found that using termux this way makes developent way more reliable than using termux "natively". It's the only way I use it now.

jelleebean avatar Jan 30 '25 15:01 jelleebean