Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: devel/libggml: use GGML_CPU_ALL_VARIANTS for amd64
To:
ports@openbsd.org
Date:
Wed, 5 Nov 2025 01:22:32 +0000

Download raw body.

Thread
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 <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

ok

> 
> -- 
> wbr, Kirill
>