]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
build: add armv{6,7,8} support to cmake (#1251)
authorPavol Rusnak <redacted>
Sun, 30 Apr 2023 18:48:38 +0000 (20:48 +0200)
committerGitHub <redacted>
Sun, 30 Apr 2023 18:48:38 +0000 (20:48 +0200)
- flags copied from Makefile
- updated comments in both CMakeLists.txt and Makefile to match reality

CMakeLists.txt
Makefile

index bbf5995599934dfb3a98afaeafbcefd7e15df305..0983061261d6422a01022d06d152a444b24cc236 100644 (file)
@@ -258,9 +258,22 @@ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES
         # TODO: arm msvc?
     else()
         if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
+            # Apple M1, M2, etc.
+            # Raspberry Pi 3, 4, Zero 2 (64-bit)
             add_compile_options(-mcpu=native)
         endif()
-        # TODO: armv6,7,8 version specific flags
+        if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv6")
+            # Raspberry Pi 1, Zero
+            add_compile_options(-mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access)
+        endif()
+        if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7")
+            # Raspberry Pi 2
+            add_compile_options(-mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access -funsafe-math-optimizations)
+        endif()
+        if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv8")
+            # Raspberry Pi 3, 4, Zero 2 (32-bit)
+            add_compile_options(-mfp16-format=ieee -mno-unaligned-access)
+        endif()
     endif()
 elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86_64|i686|AMD64)$")
     message(STATUS "x86 detected")
index 6d89401c8a76efade098b02933b43f1719ddda8c..1d62a44383ef78fcfefc08a373a6fd73ab79d73c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -135,19 +135,21 @@ ifdef LLAMA_PERF
        CXXFLAGS += -DGGML_PERF
 endif
 ifneq ($(filter aarch64%,$(UNAME_M)),)
+       # Apple M1, M2, etc.
+       # Raspberry Pi 3, 4, Zero 2 (64-bit)
        CFLAGS   += -mcpu=native
        CXXFLAGS += -mcpu=native
 endif
 ifneq ($(filter armv6%,$(UNAME_M)),)
-       # Raspberry Pi 1, 2, 3
+       # Raspberry Pi 1, Zero
        CFLAGS += -mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access
 endif
 ifneq ($(filter armv7%,$(UNAME_M)),)
-       # Raspberry Pi 4
+       # Raspberry Pi 2
        CFLAGS += -mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access -funsafe-math-optimizations
 endif
 ifneq ($(filter armv8%,$(UNAME_M)),)
-       # Raspberry Pi 4
+       # Raspberry Pi 3, 4, Zero 2 (32-bit)
        CFLAGS += -mfp16-format=ieee -mno-unaligned-access
 endif