Skip to content

Commit 0cea039

Browse files
Merge branch 'ggml-org:master' into quant_types
2 parents c2e1454 + 2b13162 commit 0cea039

40 files changed

+1166
-498
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ charset = unset
4949
trim_trailing_whitespace = unset
5050
insert_final_newline = unset
5151

52-
[tools/mtmd/miniaudio.h]
52+
[tools/mtmd/vendor/miniaudio.h]
5353
trim_trailing_whitespace = unset
5454
insert_final_newline = unset

.github/workflows/build-linux-cross.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ jobs:
2626
sudo apt-get install -y --no-install-recommends \
2727
build-essential \
2828
gcc-14-riscv64-linux-gnu \
29-
g++-14-riscv64-linux-gnu \
30-
libcurl4-openssl-dev:riscv64
29+
g++-14-riscv64-linux-gnu
3130
3231
- name: Build
3332
run: |
34-
cmake -B build -DCMAKE_BUILD_TYPE=Release \
33+
cmake -B build -DLLAMA_CURL=OFF \
34+
-DCMAKE_BUILD_TYPE=Release \
3535
-DGGML_OPENMP=OFF \
3636
-DLLAMA_BUILD_EXAMPLES=ON \
3737
-DLLAMA_BUILD_TOOLS=ON \
@@ -72,12 +72,12 @@ jobs:
7272
glslc \
7373
gcc-14-riscv64-linux-gnu \
7474
g++-14-riscv64-linux-gnu \
75-
libvulkan-dev:riscv64 \
76-
libcurl4-openssl-dev:riscv64
75+
libvulkan-dev:riscv64
7776
7877
- name: Build
7978
run: |
80-
cmake -B build -DCMAKE_BUILD_TYPE=Release \
79+
cmake -B build -DLLAMA_CURL=OFF \
80+
-DCMAKE_BUILD_TYPE=Release \
8181
-DGGML_VULKAN=ON \
8282
-DGGML_OPENMP=OFF \
8383
-DLLAMA_BUILD_EXAMPLES=ON \
@@ -118,12 +118,12 @@ jobs:
118118
build-essential \
119119
glslc \
120120
crossbuild-essential-arm64 \
121-
libvulkan-dev:arm64 \
122-
libcurl4-openssl-dev:arm64
121+
libvulkan-dev:arm64
123122
124123
- name: Build
125124
run: |
126-
cmake -B build -DCMAKE_BUILD_TYPE=Release \
125+
cmake -B build -DLLAMA_CURL=OFF \
126+
-DCMAKE_BUILD_TYPE=Release \
127127
-DGGML_VULKAN=ON \
128128
-DGGML_OPENMP=OFF \
129129
-DLLAMA_BUILD_EXAMPLES=ON \
@@ -163,12 +163,12 @@ jobs:
163163
sudo apt-get install -y --no-install-recommends \
164164
build-essential \
165165
gcc-14-powerpc64le-linux-gnu \
166-
g++-14-powerpc64le-linux-gnu \
167-
libcurl4-openssl-dev:ppc64el
166+
g++-14-powerpc64le-linux-gnu
168167
169168
- name: Build
170169
run: |
171-
cmake -B build -DCMAKE_BUILD_TYPE=Release \
170+
cmake -B build -DLLAMA_CURL=OFF \
171+
-DCMAKE_BUILD_TYPE=Release \
172172
-DGGML_OPENMP=OFF \
173173
-DLLAMA_BUILD_EXAMPLES=ON \
174174
-DLLAMA_BUILD_TOOLS=ON \
@@ -209,12 +209,12 @@ jobs:
209209
glslc \
210210
gcc-14-powerpc64le-linux-gnu \
211211
g++-14-powerpc64le-linux-gnu \
212-
libvulkan-dev:ppc64el \
213-
libcurl4-openssl-dev:ppc64el
212+
libvulkan-dev:ppc64el
214213
215214
- name: Build
216215
run: |
217-
cmake -B build -DCMAKE_BUILD_TYPE=Release \
216+
cmake -B build -DLLAMA_CURL=OFF \
217+
-DCMAKE_BUILD_TYPE=Release \
218218
-DGGML_VULKAN=ON \
219219
-DGGML_OPENMP=OFF \
220220
-DLLAMA_BUILD_EXAMPLES=ON \

convert_hf_to_gguf.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3690,11 +3690,21 @@ def __init__(self, *args, **kwargs):
36903690
super().__init__(*args, **kwargs)
36913691
self.vocab_size = None
36923692

3693+
if cls_out_labels := self.hparams.get("id2label"):
3694+
if len(cls_out_labels) == 2 and cls_out_labels[0] == "LABEL_0":
3695+
# Remove dummy labels added by AutoConfig
3696+
cls_out_labels = None
3697+
self.cls_out_labels = cls_out_labels
3698+
36933699
def set_gguf_parameters(self):
36943700
super().set_gguf_parameters()
36953701
self.gguf_writer.add_causal_attention(False)
36963702
self._try_set_pooling_type()
36973703

3704+
if self.cls_out_labels:
3705+
key_name = gguf.Keys.Classifier.OUTPUT_LABELS.format(arch = gguf.MODEL_ARCH_NAMES[self.model_arch])
3706+
self.gguf_writer.add_array(key_name, [v for k, v in sorted(self.cls_out_labels.items())])
3707+
36983708
def set_vocab(self):
36993709
tokens, toktypes, tokpre = self.get_vocab_base()
37003710
self.vocab_size = len(tokens)
@@ -3745,12 +3755,13 @@ def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iter
37453755
if name.startswith("cls.seq_relationship"):
37463756
return []
37473757

3748-
# For BertForSequenceClassification (direct projection layer)
3749-
if name == "classifier.weight":
3750-
name = "classifier.out_proj.weight"
3758+
if self.cls_out_labels:
3759+
# For BertForSequenceClassification (direct projection layer)
3760+
if name == "classifier.weight":
3761+
name = "classifier.out_proj.weight"
37513762

3752-
if name == "classifier.bias":
3753-
name = "classifier.out_proj.bias"
3763+
if name == "classifier.bias":
3764+
name = "classifier.out_proj.bias"
37543765

37553766
return [(self.map_tensor_name(name), data_torch)]
37563767

@@ -3846,7 +3857,7 @@ def _xlmroberta_set_vocab(self) -> None:
38463857
self.gguf_writer.add_add_eos_token(True)
38473858

38483859

3849-
@ModelBase.register("RobertaModel")
3860+
@ModelBase.register("RobertaModel", "RobertaForSequenceClassification")
38503861
class RobertaModel(BertModel):
38513862
model_arch = gguf.MODEL_ARCH.BERT
38523863

ggml/cmake/common.cmake

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,28 @@ function(ggml_get_flags CCID CCVER)
2424
set(GF_C_FLAGS ${C_FLAGS} PARENT_SCOPE)
2525
set(GF_CXX_FLAGS ${CXX_FLAGS} PARENT_SCOPE)
2626
endfunction()
27+
28+
function(ggml_get_system_arch)
29+
if (CMAKE_OSX_ARCHITECTURES STREQUAL "arm64" OR
30+
CMAKE_GENERATOR_PLATFORM_LWR STREQUAL "arm64" OR
31+
(NOT CMAKE_OSX_ARCHITECTURES AND NOT CMAKE_GENERATOR_PLATFORM_LWR AND
32+
CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm.*|ARM64)$"))
33+
set(GGML_SYSTEM_ARCH "ARM" PARENT_SCOPE)
34+
elseif (CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64" OR
35+
CMAKE_GENERATOR_PLATFORM_LWR MATCHES "^(x86_64|i686|amd64|x64|win32)$" OR
36+
(NOT CMAKE_OSX_ARCHITECTURES AND NOT CMAKE_GENERATOR_PLATFORM_LWR AND
37+
CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|i686|AMD64|amd64)$"))
38+
set(GGML_SYSTEM_ARCH "x86" PARENT_SCOPE)
39+
elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "ppc64le " OR
40+
"${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "powerpc ")
41+
set(GGML_SYSTEM_ARCH "PowerPC" PARENT_SCOPE)
42+
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "loongarch64")
43+
set(GGML_SYSTEM_ARCH "loongarch64" PARENT_SCOPE)
44+
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "riscv64")
45+
set(GGML_SYSTEM_ARCH "riscv64" PARENT_SCOPE)
46+
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "s390x")
47+
set(GGML_SYSTEM_ARCH "s390x" PARENT_SCOPE)
48+
else()
49+
set(GGML_SYSTEM_ARCH "UNKNOWN" PARENT_SCOPE)
50+
endif()
51+
endfunction()

ggml/src/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ if (MSVC)
109109
else ()
110110
set(CMAKE_GENERATOR_PLATFORM_LWR "")
111111
endif ()
112+
ggml_get_system_arch()
113+
message(STATUS "GGML_SYSTEM_ARCH: ${GGML_SYSTEM_ARCH}")
112114

113115
if (NOT MSVC)
114116
if (GGML_STATIC)

ggml/src/ggml-cpu/CMakeLists.txt

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,8 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
8282
target_link_libraries(${GGML_CPU_NAME} PUBLIC memkind)
8383
endif()
8484

85-
if (CMAKE_OSX_ARCHITECTURES STREQUAL "arm64" OR
86-
CMAKE_GENERATOR_PLATFORM_LWR STREQUAL "arm64" OR
87-
(NOT CMAKE_OSX_ARCHITECTURES AND NOT CMAKE_GENERATOR_PLATFORM_LWR AND
88-
CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm.*|ARM64)$"))
89-
85+
if (GGML_SYSTEM_ARCH STREQUAL "ARM")
9086
message(STATUS "ARM detected")
91-
9287
if (MSVC AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
9388
message(FATAL_ERROR "MSVC is not supported for ARM, use clang")
9489
else()
@@ -170,12 +165,8 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
170165
endforeach()
171166
endif()
172167
endif()
173-
elseif (CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64" OR CMAKE_GENERATOR_PLATFORM_LWR MATCHES "^(x86_64|i686|amd64|x64|win32)$" OR
174-
(NOT CMAKE_OSX_ARCHITECTURES AND NOT CMAKE_GENERATOR_PLATFORM_LWR AND
175-
CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|i686|AMD64|amd64)$"))
176-
168+
elseif (GGML_SYSTEM_ARCH STREQUAL "x86")
177169
message(STATUS "x86 detected")
178-
179170
if (MSVC)
180171
# instruction set detection for MSVC only
181172
if (GGML_NATIVE)
@@ -318,7 +309,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
318309
set_target_properties(${GGML_CPU_FEATS_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
319310
target_link_libraries(${GGML_CPU_NAME} PRIVATE ${GGML_CPU_FEATS_NAME})
320311
endif()
321-
elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "ppc64le " OR "${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "powerpc ")
312+
elseif (GGML_SYSTEM_ARCH STREQUAL "PowerPC")
322313
message(STATUS "PowerPC detected")
323314
if (GGML_NATIVE)
324315
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64")
@@ -344,18 +335,17 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
344335
list(APPEND ARCH_FLAGS -mcpu=${GGML_CPU_POWERPC_CPUTYPE})
345336
endif()
346337
endif()
347-
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "loongarch64")
338+
elseif (GGML_SYSTEM_ARCH STREQUAL "loongarch64")
348339
message(STATUS "loongarch64 detected")
349-
350340
list(APPEND ARCH_FLAGS -march=loongarch64)
351341
if (GGML_LASX)
352342
list(APPEND ARCH_FLAGS -mlasx)
353343
endif()
354344
if (GGML_LSX)
355345
list(APPEND ARCH_FLAGS -mlsx)
356346
endif()
357-
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "riscv64")
358-
message(STATUS "RISC-V detected")
347+
elseif (GGML_SYSTEM_ARCH STREQUAL "riscv64")
348+
message(STATUS "riscv64 detected")
359349
if (GGML_RVV)
360350
if (GGML_XTHEADVECTOR)
361351
list(APPEND ARCH_FLAGS -march=rv64gc_xtheadvector -mabi=lp64d)
@@ -365,7 +355,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
365355
list(APPEND ARCH_FLAGS -march=rv64gcv -mabi=lp64d)
366356
endif()
367357
endif()
368-
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "s390x")
358+
elseif (GGML_SYSTEM_ARCH STREQUAL "s390x")
369359
message(STATUS "s390x detected")
370360
file(READ "/proc/cpuinfo" CPUINFO_CONTENTS)
371361
string(REGEX REPLACE "machine[ \t\r\n]*=[ \t\r\n]*([0-9]+)" "\\1" S390X_M ${CPUINFO_CONTENTS})

0 commit comments

Comments
 (0)