# Debian hardening flags are applied,
# so it seems a false positive
-libggml0: hardening-no-fortify-functions
+argeo-libggml0: hardening-no-fortify-functions
# According to https://wiki.debian.org/UsingSymbolsFiles
# "For C++ libraries it is often better not to ship symbols files."
-libggml0: no-symbols-control-file
+argeo-libggml0: no-symbols-control-file
Vcs-Browser: https://git.djapps.eu/?p=pkg/ggml/sources/ggml;a=summary
Vcs-Git: https://git.djapps.eu/pkg/ggml/sources/ggml
Homepage: https://github.com/ggml-org/ggml
-Build-Depends: cmake,
+Build-Depends: debhelper-compat (= 13),
lsb-release,
- debhelper-compat (= 13),
+ cmake,
pkgconf,
+ clang,
+ lld,
+ llvm,
+ libc++-dev,
+ libomp-dev,
libvulkan-dev <!pkg.ggml.novulkan>,
glslc <!pkg.ggml.novulkan>,
cuda-nvcc-13-2 <!pkg.ggml.nocuda>,
Section: libdevel
Architecture: any
Multi-Arch: same
-Depends: libggml0 (= ${binary:Version}),
- libggml-base0 (= ${binary:Version}),
+Depends: argeo-libggml0 (= ${binary:Version}),
+ argeo-libggml-base0 (= ${binary:Version}),
${misc:Depends},
Description: Tensor library for machine learning (development files)
This developments package provides the files required to build
#!/usr/bin/make -f
#export DH_VERBOSE = 1
+# clang build
+export CC = clang
+export CXX = clang++
+export LD = ld.lld
+
export DEB_BUILD_MAINT_OPTIONS = hardening=-all
# Derivative
-DGGML_BACKEND_DL=ON \
-DGGML_BACKEND_DIR=/usr/lib/${DEB_HOST_MULTIARCH}/ggml/backends0 \
+# clang build
+CMAKE_OPTS += -DCMAKE_C_COMPILER=clang \
+ -DCMAKE_CXX_COMPILER=clang++ \
+ -DCMAKE_CXX_FLAGS=-stdlib=libc++ \
+ -DCMAKE_LINKER_TYPE=LLD \
+
+# OpenMP seems to work better with clang than with gcc
+CMAKE_OPTS += -DGGML_OPENMP=ON
+
# Common backends
CMAKE_OPTS += -DGGML_RPC=ON \
ifeq ($(DEB_TARGET_ARCH),arm64)
-CMAKE_OPTS += -DGGML_CPU_ALL_VARIANTS=OFF
-CMAKE_OPTS += -DGGML_CPU_ARM_ARCH=armv8.4-a
+CMAKE_OPTS += -DGGML_CPU_ALL_VARIANTS=ON
+#CMAKE_OPTS += -DGGML_CPU_ARM_ARCH=armv8.4-a
else # amd64
endif # arm64
+##
+## VULKAN
+##
ifeq ($(filter pkg.ggml.novulkan,$(DEB_BUILD_PROFILES)),)
CMAKE_OPTS += -DGGML_VULKAN=ON
endif
+##
+## CUDA
+##
ifeq ($(filter pkg.ggml.nocuda,$(DEB_BUILD_PROFILES)),)
CMAKE_OPTS += -DGGML_CUDA=ON \
-DCMAKE_CUDA_FLAGS_RELWITHDEBINFO="$(FLAGS_ARGEO)" \
-DCMAKE_CUDA_COMPILER=/usr/local/cuda-13/bin/nvcc
+# Compute capabilities supported by Argeo
+# cf. https://developer.nvidia.com/cuda/gpus
+CMAKE_OPTS += -DCMAKE_CUDA_ARCHITECTURES="121;120;89;86"
+# All K/V cache combinations
+CMAKE_OPTS += -DGGML_CUDA_FA_ALL_QUANTS=ON
endif
+# Add Argeo optimization flags
CMAKE_OPTS += -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(FLAGS_ARGEO)" \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(FLAGS_ARGEO)" \
override_dh_installexamples:
dh_installexamples --exclude=.gitignore
+
+override_dh_dwz:
+ # Skip dwz optimization when using clang
+
\ No newline at end of file