From 9d37b8692d4a587aa699f80805a9579777e18c8c Mon Sep 17 00:00:00 2001 From: Goran Jelic-Cizmek Date: Fri, 25 Oct 2024 16:03:18 +0200 Subject: [PATCH 1/3] Add GCC to compiler check --- src/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9cead70ff..bac845961 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,7 @@ set(GGML_SOURCES_BITNET ggml-bitnet-lut.cpp) include_directories(3rdparty/llama.cpp/ggml/include) -if ((NOT ${CMAKE_C_COMPILER_ID} MATCHES "Clang") OR -(NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")) - message(FATAL_ERROR "Clang is required for Bitnet.cpp compilation") -endif() \ No newline at end of file +if (NOT (CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "GNU") OR + NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) + message(FATAL_ERROR "Clang or GCC is required for Bitnet.cpp compilation") +endif() From 141ddfd4fe067e0f5e1d74e4eeabca2e2ab260fe Mon Sep 17 00:00:00 2001 From: Goran Jelic-Cizmek Date: Fri, 25 Oct 2024 16:03:18 +0200 Subject: [PATCH 2/3] Fix compiler errors on GCC --- setup_env.py | 1 - utils/codegen_tl2.py | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/setup_env.py b/setup_env.py index b9bf5fc53..8a9c4b467 100644 --- a/setup_env.py +++ b/setup_env.py @@ -34,7 +34,6 @@ OS_EXTRA_ARGS = { "Windows":["-T", "ClangCL"], - "Linux": ["-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++"] } ARCH_ALIAS = { diff --git a/utils/codegen_tl2.py b/utils/codegen_tl2.py index 44d241879..4d9408123 100644 --- a/utils/codegen_tl2.py +++ b/utils/codegen_tl2.py @@ -105,7 +105,7 @@ def gen_ctor_code(): template\n\ inline int32_t three_lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_type* lut_scales) {\n\ #if defined __AVX2__\n\ - __m256 vec_lut[16];\n\ + __m256i vec_lut[16];\n\ const __m256i vec_bi = _mm256_set_epi32(84, 72, 60, 48, 36, 24, 12, 0);\n\ float scales = *lut_scales;\n\ __m256i shuffle_mask = _mm256_set_epi8(\n\ @@ -191,7 +191,7 @@ def gen_ctor_code(): template\n\ inline int32_t two_lut_ctor(int8_t* qlut, bitnet_float_type* b, bitnet_float_type* lut_scales) {\n\ #if defined __AVX2__\n\ - __m256 vec_lut[16];\n\ + __m256i vec_lut[16];\n\ const __m256i vec_bi = _mm256_set_epi32(56, 48, 40, 32, 24, 16, 8, 0);\n\ float scales = *lut_scales;\n\ __m256i shuffle_mask = _mm256_set_epi8(\n\ From 489b7c5abf251894a25c0d8e4f3341b5a6bfc662 Mon Sep 17 00:00:00 2001 From: Goran Jelic-Cizmek Date: Sat, 26 Oct 2024 17:10:54 +0200 Subject: [PATCH 3/3] Add `-fpermissive` if using GCC --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b7a0c994e..6ddaa51f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,10 @@ if (GGML_BITNET_X86_TL2) add_compile_definitions(GGML_BITNET_X86_TL2) endif() +if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + add_compile_options(-fpermissive) +endif() + find_package(Threads REQUIRED) add_subdirectory(src)