From: Kirill A. Korinsky Subject: devel/libggml: use GGML_CPU_ALL_VARIANTS for amd64 To: OpenBSD ports Date: Wed, 05 Nov 2025 01:05:40 +0100 ports@, I'd like to enable GGML_CPU_ALL_VARIANTS optimization in devel/libggml at amd64. Idea is prebuild .so for difference CPU instead of libggml-cpu.so. llama-bench is improved from 31.86 to 34.86 t/s at parsing promt. Ok? Index: Makefile =================================================================== RCS file: /cvs/ports/devel/libggml/Makefile,v diff -u -p -r1.3 Makefile --- Makefile 4 Nov 2025 15:05:00 -0000 1.3 +++ Makefile 5 Nov 2025 00:01:37 -0000 @@ -3,12 +3,13 @@ COMMENT= tensor library for machine lea GH_ACCOUNT= ggml-org GH_PROJECT= ggml GH_COMMIT= 09aa758381718f7731c148238574a7e169001f13 +REVISION= 0 DISTNAME= ggml-0.9.4pl20251101 PKGNAME= lib${DISTNAME} SHARED_LIBS += ggml 3.0 SHARED_LIBS += ggml-base 3.0 -SHARED_LIBS += ggml-cpu 3.0 +SHARED_LIBS += ggml-cpu 3.1 SHARED_LIBS += ggml-vulkan 3.0 CATEGORIES= devel @@ -33,15 +34,25 @@ CONFIGURE_ARGS= -DGGML_CCACHE=off \ -DGGML_BACKEND_DL=on \ -DGGML_BACKEND_DIR=${PREFIX}/lib +.if ${MACHINE_ARCH:Mamd64} +CONFIGURE_ARGS+= -DGGML_CPU_ALL_VARIANTS=on +PKG_ARGS+= -Damd64=1 +PKG_ARGS+= -Dcpu=0 +.else +CONFIGURE_ARGS+= -DGGML_CPU_ALL_VARIANTS=off +PKG_ARGS+= -Damd64=0 +PKG_ARGS+= -Dcpu=1 +.endif + .if ${MACHINE_ARCH:Mamd64} || ${MACHINE_ARCH:Maarch64} CONFIGURE_ARGS+= -DGGML_VULKAN=on BUILD_DEPENDS= graphics/shaderc LIB_DEPENDS= graphics/vulkan-loader WANTLIB+= vulkan -PKG_ARGS= -Dvulkan=1 +PKG_ARGS+= -Dvulkan=1 .else CONFIGURE_ARGS+= -DGGML_VULKAN=off -PKG_ARGS= -Dvulkan=0 +PKG_ARGS+= -Dvulkan=0 .endif .include Index: pkg/PFRAG.amd64 =================================================================== RCS file: pkg/PFRAG.amd64 diff -N pkg/PFRAG.amd64 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pkg/PFRAG.amd64 5 Nov 2025 00:01:37 -0000 @@ -0,0 +1,8 @@ +@so lib/libggml-cpu-alderlake.so +@so lib/libggml-cpu-haswell.so +@so lib/libggml-cpu-icelake.so +@so lib/libggml-cpu-sandybridge.so +@so lib/libggml-cpu-sapphirerapids.so +@so lib/libggml-cpu-skylakex.so +@so lib/libggml-cpu-sse42.so +@so lib/libggml-cpu-x64.so Index: pkg/PFRAG.cpu =================================================================== RCS file: pkg/PFRAG.cpu diff -N pkg/PFRAG.cpu --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pkg/PFRAG.cpu 5 Nov 2025 00:01:37 -0000 @@ -0,0 +1 @@ +@so lib/libggml-cpu.so Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/devel/libggml/pkg/PLIST,v diff -u -p -r1.1.1.1 PLIST --- pkg/PLIST 1 Oct 2025 19:42:10 -0000 1.1.1.1 +++ pkg/PLIST 5 Nov 2025 00:01:37 -0000 @@ -19,6 +19,7 @@ lib/cmake/ggml/ lib/cmake/ggml/ggml-config.cmake lib/cmake/ggml/ggml-version.cmake @lib lib/libggml-base.so.${LIBggml-base_VERSION} -@so lib/libggml-cpu.so +%%cpu%% +%%amd64%% @lib lib/libggml.so.${LIBggml_VERSION} share/pkgconfig/ggml.pc -- wbr, Kirill