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
>