From: Stuart Henderson Subject: Re: devel/libggml: use GGML_CPU_ALL_VARIANTS for amd64 To: ports@openbsd.org Date: Wed, 5 Nov 2025 01:22:32 +0000 On 2025/11/05 01:05, Kirill A. Korinsky wrote: > 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 oh, when I converted to BACKEND_DL I should have dropped some SHARED_LIBS, can you kill the entries for ggml-cpu and ggml-vulkan please? > 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 ok > > -- > wbr, Kirill >