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 <bsd.port.mk>
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