Skip to content

Commit 2042010

Browse files
Merge pull request #178 from menloresearch/update-dev-from-master-2025-07-25-00-12
Sync master with upstream release b5985
2 parents fa1602d + 3f4fc97 commit 2042010

File tree

25 files changed

+217
-113
lines changed

25 files changed

+217
-113
lines changed

.devops/musa.Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
ARG UBUNTU_VERSION=22.04
22
# This needs to generally match the container host's environment.
3-
ARG MUSA_VERSION=rc4.0.1
3+
ARG MUSA_VERSION=rc4.2.0
44
# Target the MUSA build image
5-
ARG BASE_MUSA_DEV_CONTAINER=mthreads/musa:${MUSA_VERSION}-mudnn-devel-ubuntu${UBUNTU_VERSION}
5+
ARG BASE_MUSA_DEV_CONTAINER=mthreads/musa:${MUSA_VERSION}-devel-ubuntu${UBUNTU_VERSION}-amd64
66

7-
ARG BASE_MUSA_RUN_CONTAINER=mthreads/musa:${MUSA_VERSION}-mudnn-runtime-ubuntu${UBUNTU_VERSION}
7+
ARG BASE_MUSA_RUN_CONTAINER=mthreads/musa:${MUSA_VERSION}-runtime-ubuntu${UBUNTU_VERSION}-amd64
88

99
FROM ${BASE_MUSA_DEV_CONTAINER} AS build
1010

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ jobs:
515515
516516
ubuntu-22-cmake-musa:
517517
runs-on: ubuntu-22.04
518-
container: mthreads/musa:rc4.0.1-mudnn-devel-ubuntu22.04
518+
container: mthreads/musa:rc4.2.0-devel-ubuntu22.04-amd64
519519

520520
steps:
521521
- name: Clone

ci/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ docker run --privileged -it \
5454
-v $HOME/llama.cpp/ci-cache:/ci-cache \
5555
-v $HOME/llama.cpp/ci-results:/ci-results \
5656
-v $PWD:/ws -w /ws \
57-
mthreads/musa:rc4.0.1-mudnn-devel-ubuntu22.04
57+
mthreads/musa:rc4.2.0-devel-ubuntu22.04-amd64
5858
```
5959

6060
Inside the container, execute the following commands:

convert_hf_to_gguf.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6486,7 +6486,7 @@ def prepare_tensors(self):
64866486
self.gguf_writer.add_max_alibi_bias(self.max_alibi_bias)
64876487

64886488

6489-
@ModelBase.register("Glm4ForCausalLM")
6489+
@ModelBase.register("Glm4ForCausalLM", "Glm4vForConditionalGeneration")
64906490
class Glm4Model(TextModel):
64916491
model_arch = gguf.MODEL_ARCH.GLM4
64926492

@@ -6508,14 +6508,22 @@ def set_vocab(self):
65086508

65096509
def set_gguf_parameters(self):
65106510
super().set_gguf_parameters()
6511-
rope_dim = self.hparams["head_dim"]
6511+
if (rope_dim := self.hparams.get("head_dim")) is None:
6512+
rope_dim = self.hparams["hidden_size"] // self.hparams["num_attention_heads"]
65126513
self.gguf_writer.add_rope_dimension_count(int(rope_dim * self.hparams.get("partial_rotary_factor", 0.5)))
65136514
rope_scaling = self.hparams.get("rope_scaling") or {}
65146515
if rope_scaling.get("rope_type", rope_scaling.get("type")) == "yarn" and "factor" in rope_scaling:
65156516
self.gguf_writer.add_rope_scaling_type(gguf.RopeScalingType.YARN)
65166517
self.gguf_writer.add_rope_scaling_factor(rope_scaling["factor"])
65176518
self.gguf_writer.add_rope_scaling_orig_ctx_len(rope_scaling["original_max_position_embeddings"])
65186519

6520+
def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]:
6521+
if name.startswith("model.visual."): # ignore visual part of Glm4v
6522+
return []
6523+
elif name.startswith("model.language_model."):
6524+
name = name.replace("language_model.", "") # for Glm4v
6525+
return super().modify_tensors(data_torch, name, bid)
6526+
65196527

65206528
@ModelBase.register("GlmForCausalLM", "ChatGLMModel", "ChatGLMForConditionalGeneration")
65216529
class ChatGLMModel(TextModel):

docs/build.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ cmake --build build --config Release
6868
cmake --build build-x64-windows-llvm-release
6969
```
7070
- Curl usage is enabled by default and can be turned off with `-DLLAMA_CURL=OFF`. Otherwise you need to install development libraries for libcurl.
71+
- **Debian / Ubuntu:** `sudo apt-get install libcurl4-openssl-dev` # (or `libcurl4-gnutls-dev` if you prefer GnuTLS)
72+
- **Fedora / RHEL / Rocky / Alma:** `sudo dnf install libcurl-devel`
73+
- **Arch / Manjaro:** `sudo pacman -S curl` # includes libcurl headers
7174
7275
## BLAS Build
7376

docs/docker.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ You may want to pass in some different `ARGS`, depending on the MUSA environment
110110

111111
The defaults are:
112112

113-
- `MUSA_VERSION` set to `rc4.0.1`
113+
- `MUSA_VERSION` set to `rc4.2.0`
114114

115115
The resulting images, are essentially the same as the non-MUSA images:
116116

ggml/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,8 @@ option(GGML_HIP_GRAPHS "ggml: use HIP graph, experimental,
174174
option(GGML_HIP_NO_VMM "ggml: do not try to use HIP VMM" ON)
175175
option(GGML_HIP_ROCWMMA_FATTN "ggml: enable rocWMMA for FlashAttention" OFF)
176176
option(GGML_HIP_FORCE_ROCWMMA_FATTN_GFX12 "ggml: enable rocWMMA FlashAttention on GFX12" OFF)
177+
option(GGML_MUSA_GRAPHS "ggml: use MUSA graph, experimental, unstable" OFF)
178+
option(GGML_MUSA_MUDNN_COPY "ggml: enable muDNN for accelerated copy" OFF)
177179
option(GGML_VULKAN "ggml: use Vulkan" OFF)
178180
option(GGML_VULKAN_CHECK_RESULTS "ggml: run Vulkan op checks" OFF)
179181
option(GGML_VULKAN_DEBUG "ggml: enable Vulkan debug output" OFF)

ggml/cmake/ggml-config.cmake.in

Lines changed: 85 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,130 @@
1-
2-
@GGML_VARIABLES_EXPANDED@
3-
41
@PACKAGE_INIT@
52

6-
set_and_check(GGML_INCLUDE_DIR "@PACKAGE_GGML_INCLUDE_INSTALL_DIR@")
7-
set_and_check(GGML_LIB_DIR "@PACKAGE_GGML_LIB_INSTALL_DIR@")
8-
#set_and_check(GGML_BIN_DIR "@PACKAGE_GGML_BIN_INSTALL_DIR@")
9-
10-
find_package(Threads REQUIRED)
11-
12-
find_library(GGML_LIBRARY ggml
13-
REQUIRED
14-
HINTS ${GGML_LIB_DIR}
15-
NO_CMAKE_FIND_ROOT_PATH)
16-
17-
add_library(ggml::ggml UNKNOWN IMPORTED)
18-
set_target_properties(ggml::ggml
19-
PROPERTIES
20-
IMPORTED_LOCATION "${GGML_LIBRARY}")
21-
22-
find_library(GGML_BASE_LIBRARY ggml-base
23-
REQUIRED
24-
HINTS ${GGML_LIB_DIR}
25-
NO_CMAKE_FIND_ROOT_PATH)
26-
27-
add_library(ggml::ggml-base UNKNOWN IMPORTED)
28-
set_target_properties(ggml::ggml-base
29-
PROPERTIES
30-
IMPORTED_LOCATION "${GGML_BASE_LIBRARY}")
3+
@GGML_VARIABLES_EXPANDED@
314

5+
# Find all dependencies before creating any target.
6+
include(CMakeFindDependencyMacro)
7+
find_dependency(Threads)
328
if (NOT GGML_SHARED_LIB)
9+
set(GGML_CPU_INTERFACE_LINK_LIBRARIES "")
10+
set(GGML_CPU_INTERFACE_LINK_OPTIONS "")
11+
3312
if (APPLE AND GGML_ACCELERATE)
34-
find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED)
13+
find_library(ACCELERATE_FRAMEWORK Accelerate)
14+
if(NOT ACCELERATE_FRAMEWORK)
15+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND 0)
16+
return()
17+
endif()
3518
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES ${ACCELERATE_FRAMEWORK})
3619
endif()
3720

38-
if (GGML_OPENMP)
39-
find_package(OpenMP REQUIRED)
21+
if (GGML_OPENMP_ENABLED)
22+
find_dependency(OpenMP)
4023
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES OpenMP::OpenMP_C OpenMP::OpenMP_CXX)
4124
endif()
4225

4326
if (GGML_CPU_HBM)
44-
find_library(memkind memkind REQUIRED)
27+
find_library(memkind memkind)
28+
if(NOT memkind)
29+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND 0)
30+
return()
31+
endif()
4532
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES memkind)
4633
endif()
4734

4835
if (GGML_BLAS)
49-
find_package(BLAS REQUIRED)
36+
find_dependency(BLAS)
5037
list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES ${BLAS_LIBRARIES})
5138
list(APPEND GGML_CPU_INTERFACE_LINK_OPTIONS ${BLAS_LINKER_FLAGS})
5239
endif()
5340

5441
if (GGML_CUDA)
55-
find_package(CUDAToolkit REQUIRED)
42+
set(GGML_CUDA_INTERFACE_LINK_LIBRARIES "")
43+
find_dependency(CUDAToolkit)
44+
if (GGML_STATIC)
45+
list(APPEND GGML_CUDA_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:CUDA::cudart_static>)
46+
if (WIN32)
47+
list(APPEND GGML_CUDA_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:CUDA::cublas> $<LINK_ONLY:CUDA::cublasLt>)
48+
else()
49+
list(APPEND GGML_CUDA_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:CUDA::cublas_static> $<LINK_ONLY:CUDA::cublasLt_static>)
50+
endif()
51+
endif()
52+
if (NOT GGML_CUDA_NO_VMM)
53+
list(APPEND GGML_CUDA_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:CUDA::cuda_driver>)
54+
endif()
5655
endif()
5756

5857
if (GGML_METAL)
59-
find_library(FOUNDATION_LIBRARY Foundation REQUIRED)
60-
find_library(METAL_FRAMEWORK Metal REQUIRED)
61-
find_library(METALKIT_FRAMEWORK MetalKit REQUIRED)
58+
find_library(FOUNDATION_LIBRARY Foundation)
59+
find_library(METAL_FRAMEWORK Metal)
60+
find_library(METALKIT_FRAMEWORK MetalKit)
61+
if(NOT FOUNDATION_LIBRARY OR NOT METAL_FRAMEWORK OR NOT METALKIT_FRAMEWORK)
62+
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND 0)
63+
return()
64+
endif()
65+
set(GGML_METAL_INTERFACE_LINK_LIBRARIES
66+
${FOUNDATION_LIBRARY} ${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK})
67+
endif()
6268

63-
list(APPEND GGML_METAL_INTERFACE_LINK_LIBRARIES
64-
${FOUNDATION_LIBRARY} ${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK})
69+
if (GGML_OPENCL)
70+
find_dependency(OpenCL)
71+
set(GGML_OPENCL_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:OpenCL::OpenCL>)
6572
endif()
6673

6774
if (GGML_VULKAN)
68-
find_package(Vulkan REQUIRED)
69-
list(APPEND GGML_VULKAN_INTERFACE_LINK_LIBRARIES Vulkan::Vulkan)
75+
find_dependency(Vulkan)
76+
set(GGML_VULKAN_INTERFACE_LINK_LIBRARIES $<LINK_ONLY:Vulkan::Vulkan>)
7077
endif()
7178

7279
if (GGML_HIP)
73-
find_package(hip REQUIRED)
74-
find_package(hipblas REQUIRED)
75-
find_package(rocblas REQUIRED)
76-
list(APPEND GGML_HIP_INTERFACE_LINK_LIBRARIES hip::host roc::rocblas roc::hipblas)
80+
find_dependency(hip)
81+
find_dependency(hipblas)
82+
find_dependency(rocblas)
83+
set(GGML_HIP_INTERFACE_LINK_LIBRARIES hip::host roc::rocblas roc::hipblas)
7784
endif()
7885

7986
if (GGML_SYCL)
87+
set(GGML_SYCL_INTERFACE_LINK_LIBRARIES "")
8088
find_package(DNNL)
8189
if (${DNNL_FOUND} AND GGML_SYCL_TARGET STREQUAL "INTEL")
8290
list(APPEND GGML_SYCL_INTERFACE_LINK_LIBRARIES DNNL::dnnl)
8391
endif()
8492
if (WIN32)
85-
find_package(IntelSYCL REQUIRED)
86-
find_package(MKL REQUIRED)
93+
find_dependency(IntelSYCL)
94+
find_dependency(MKL)
8795
list(APPEND GGML_SYCL_INTERFACE_LINK_LIBRARIES IntelSYCL::SYCL_CXX MKL::MKL MKL::MKL_SYCL)
8896
endif()
8997
endif()
9098
endif()
9199

100+
set_and_check(GGML_INCLUDE_DIR "@PACKAGE_GGML_INCLUDE_INSTALL_DIR@")
101+
set_and_check(GGML_LIB_DIR "@PACKAGE_GGML_LIB_INSTALL_DIR@")
102+
#set_and_check(GGML_BIN_DIR "@PACKAGE_GGML_BIN_INSTALL_DIR@")
103+
104+
if(NOT TARGET ggml::ggml)
105+
106+
find_package(Threads REQUIRED)
107+
108+
find_library(GGML_LIBRARY ggml
109+
REQUIRED
110+
HINTS ${GGML_LIB_DIR}
111+
NO_CMAKE_FIND_ROOT_PATH)
112+
113+
add_library(ggml::ggml UNKNOWN IMPORTED)
114+
set_target_properties(ggml::ggml
115+
PROPERTIES
116+
IMPORTED_LOCATION "${GGML_LIBRARY}")
117+
118+
find_library(GGML_BASE_LIBRARY ggml-base
119+
REQUIRED
120+
HINTS ${GGML_LIB_DIR}
121+
NO_CMAKE_FIND_ROOT_PATH)
122+
123+
add_library(ggml::ggml-base UNKNOWN IMPORTED)
124+
set_target_properties(ggml::ggml-base
125+
PROPERTIES
126+
IMPORTED_LOCATION "${GGML_BASE_LIBRARY}")
127+
92128
set(_ggml_all_targets "")
93129
foreach(_ggml_backend ${GGML_AVAILABLE_BACKENDS})
94130
string(REPLACE "-" "_" _ggml_backend_pfx "${_ggml_backend}")
@@ -149,4 +185,6 @@ set_target_properties(ggml::all
149185
PROPERTIES
150186
INTERFACE_LINK_LIBRARIES "${_ggml_all_targets}")
151187

188+
endif() # TARGET ggml::ggml
189+
152190
check_required_components(ggml)

ggml/src/ggml-cpu/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,12 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
7070
if (GGML_OPENMP)
7171
find_package(OpenMP)
7272
if (OpenMP_FOUND)
73+
set(GGML_OPENMP_ENABLED "ON" CACHE INTERNAL "")
7374
target_compile_definitions(${GGML_CPU_NAME} PRIVATE GGML_USE_OPENMP)
7475

7576
target_link_libraries(${GGML_CPU_NAME} PRIVATE OpenMP::OpenMP_C OpenMP::OpenMP_CXX)
7677
else()
78+
set(GGML_OPENMP_ENABLED "OFF" CACHE INTERNAL "")
7779
message(WARNING "OpenMP not found")
7880
endif()
7981
endif()

ggml/src/ggml-cpu/repack.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#include <cmath>
1515
#include <cstring>
1616
#include <cassert>
17-
#include <cstdlib> // for qsort
1817
#include <cstdio> // for GGML_ASSERT
1918

2019
#include "repack.h"

0 commit comments

Comments
 (0)