Source: ggml
Section: science
Priority: optional
Maintainer: Mathieu Baudier <mbaudier@argeo.org>
Build-Depends: debhelper-compat (= 13), pkgconf,
	cmake-data, cmake,
	libopenblas-openmp-dev, libopenblas64-openmp-dev [amd64 arm64],
	libvulkan-dev, glslc,
Standards-Version: 4.7.0
Vcs-Git: https://git.djapps.eu/pkg/ggml/sources/ggml
Vcs-Browser: https://git.djapps.eu/?p=pkg/ggml/sources/ggml;a=summary
Homepage: https://github.com/ggml-org/
Rules-Requires-Root: binary-targets

Package: ggml
Architecture: any
Depends: ${misc:Depends},
 libggml0, libggml-cpu
Description: Tensor library for machine learning (metapackage)
 ggml is a pure C/C++ library implementing tensor computations
 used by neural networks. It is the basis for llama.cpp (large language models)
 and whisper.cpp (speech recognition) but can be used indepedently.
 This metapackage provides the minimal set of dependencies
 so that the library can actually be usable, since the dynamically-loaded
 CPU backend is required for most usages. Additional backends can be
 installed additionally, typically to support specific computing hardware
 such as GPUs.

Package: libggml-base0
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Tensor library for machine learning (base)
 The ggml base library provides the backend-independent API
 upon which specialized libraries or applications can be built.

Package: libggml0
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends},
 libggml-base0
Description: Tensor library for machine learning (loader)
 The ggml library is a thin high-level layer mostly
 responsible for loading the various ggml backends,
 and connect them to the API provided by the ggml base library.

Package: libggml-cpu
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends},
 libggml0
Description: Tensor library for machine learning (CPU backend)
 The ggml CPU backend provides computations based solely
 on plain CPU, without software or hardware acceleration.
 It is available as a set of dynamically loaded libraries optimized
 for various CPU families, depending on their specific capabilities.
 The ggml library will automatically select the most appropriate one,
 allowing one to run computations on older CPU while still benefiting from
 the capabilities of recent ones.

Package: libggml-blas
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends},
 libggml0,
# GGML shows warning that it uses OpenMP if default OpenBLAS (pthread) is used.
 libopenblas0-openmp, libopenblas64-0-openmp [amd64 arm64],
Description: Tensor library for machine learning (OpenBLAS backend)
 The ggml BLAS backend provides software acceleration of the computations
 based on OpenBLAS.

Package: libggml-rpc
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Depends}, ${misc:Pre-Depends}
Depends: ${shlibs:Depends},
 libggml0
Description: Tensor library for machine learning (RPC backend)
 The ggml RPC backend allows one to distribute computations over
 the network on remote ggml backends.

Package: libggml-vulkan
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends},
 libggml0,
 libvulkan1
Description: Tensor library for machine learning (Vulkan backend)
 The ggml Vulkan backend provides hardware acceleration of the
 computations based on the Vulkan API. This is typically used
 to leverage GPU parallel computations capabilities.

Package: ggml-dev
Architecture: any
Section: libdevel
Depends: ${misc:Depends},
 libggml0 (= ${binary:Version}), libggml-base0 (= ${binary:Version}),
Description: Tensor library for machine learning (development files)
 This developments package provides the files required to build
 software based on ggml.
