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

Reply via email to