summaryrefslogtreecommitdiff
path: root/sci-misc
diff options
context:
space:
mode:
authorCrucible <crucible@localhost>2026-09-22 18:47:35 -0500
committerCrucible <crucible@localhost>2026-09-22 18:47:35 -0500
commitcde96c5ea0c81397fd3214d455a374f76179a7aa (patch)
tree12c86d59eb88887c244b1145411db084ae5a6c1f /sci-misc
parent47516b9667518dacb1efd6d257f7b3e6a481ec93 (diff)
downloadbaldeagleos-repo-cde96c5ea0c81397fd3214d455a374f76179a7aa.tar.gz
baldeagleos-repo-cde96c5ea0c81397fd3214d455a374f76179a7aa.tar.xz
baldeagleos-repo-cde96c5ea0c81397fd3214d455a374f76179a7aa.zip
Publish baldeagleos-repo candidate 0000000325-20260922-184323
Diffstat (limited to 'sci-misc')
-rw-r--r--sci-misc/llama-cpp/Manifest10
-rw-r--r--sci-misc/llama-cpp/llama-cpp-0.3.0.ebuild237
-rw-r--r--sci-misc/llama-cpp/llama-cpp-0.3.0_p10780.ebuild237
-rw-r--r--sci-misc/llama-cpp/llama-cpp-0.4.0.ebuild10
-rw-r--r--sci-misc/llama-cpp/llama-cpp-0.4.0_p10905.ebuild237
-rw-r--r--sci-misc/llama-cpp/llama-cpp-0.4.1.ebuild (renamed from sci-misc/llama-cpp/llama-cpp-0.4.0_p10927.ebuild)79
-rw-r--r--sci-misc/llama-cpp/llama-cpp-9999.ebuild79
-rw-r--r--sci-misc/llama-cpp/metadata.xml3
-rw-r--r--sci-misc/stable-diffusion-cpp/metadata.xml3
-rw-r--r--sci-misc/stable-diffusion-cpp/stable-diffusion-cpp-9999.ebuild123
10 files changed, 170 insertions, 848 deletions
diff --git a/sci-misc/llama-cpp/Manifest b/sci-misc/llama-cpp/Manifest
index 208091b75edc..79e6274de3ad 100644
--- a/sci-misc/llama-cpp/Manifest
+++ b/sci-misc/llama-cpp/Manifest
@@ -1,11 +1,5 @@
DIST ggml-org_models_tinyllamas_stories15M-q4_0-99dd1a73db5a37100bd4ae633f4cfce6560e1567.gguf 19077344 BLAKE2B 16e65adf9785e3091c51f1de59e5580f93fb47f79961513aeb3dbb8a0f5930f7120f0304f0f293a006170805e2b70ee1fcff0496b63356323d32c2caa55be8a8 SHA512 f9944886089958e0d97b1906cfd45020e0821c65429346e76fae29136c634ae5d039dffbae5933a95b0674f4acd87b656feb9f9e1b16dd434c5c9b5886f4f617
-DIST llama-b10621-ui.tar.gz 3082196 BLAKE2B 92a794b6c971737cb85d5aafadf59a07faf7d78d77d8fd8eb86412add84317be0f38d1fab540f4c1786269b399b575c61518e80bb4b98b6e2792ead3d49ae833 SHA512 76d1c53d84a2588055ce2066fee5a8f2ea8df37384a1d16456d90a09f38a290df860b3a18910b1b512ea6fdba5842ce0b2513bbc3cb6de70cb856584fabfe209
-DIST llama-b10780-ui.tar.gz 3084093 BLAKE2B 92caf7e64a1f40367687ec6e48a2eb2ac90e44983ec7a169397e1b7d085bafa52d37788a2f98707ac10ffd2b5b85e28cad3ab929b119a73f05cb1a6c64eb1dfd SHA512 89d15d3bbfad6b26d68896fc19ec6e05d947e61be8b1c836a2e187ff9dc54595abc8b74532d002cbf6d6ee1c89ac4c08e2261233e51924a35621662278755341
DIST llama-b10809-ui.tar.gz 3084118 BLAKE2B 3cd4e0bd708fb673507b1480e7e814bcb25b84ca096c22d491fbb02ea28523f28517ad0cbf15a7c689801599206963b1268239eba6d028a9343956710c39d07c SHA512 485b4331f547bcf53fa40691e43ca97de90301f656b8176c2ae5091bb2c6d0dcee57439f12a02a06fa5a397f5aba2481e8614c2a06da1396fa8efa58b704c973
-DIST llama-b10905-ui.tar.gz 3083354 BLAKE2B 6fe9ee8e53e6d2c70f57e076fa3b75ea1e81c351612d95ec5e4bcb8e87fa8d77516cf635eac783eeefd6013d64137f05dc8676e5539539dcb8c6cbd9cc087dfa SHA512 f6a49e3da8cca1036e4669ce9bdd69bfd8e112bbf462ac0ea0ac28266834ac3525ec779c0ff2c16a3e4e2f1d9d9dd49ce1cd1a9132cf5f5f80a22ba0d0362b86
-DIST llama-b10927-ui.tar.gz 3083767 BLAKE2B 3a1968b3bb80b7503f33c0fdb020eed1253bae94a8137d22eef1eac58bf8629d5552ed07cf3301899c2ea9da762fc76e8aedbf54fcda3a04955cc9d50f9be70d SHA512 bd75227fa207eaa3cdaad087d4da6fbaa6a1c2343d14388b25a6e4fcc9767115c478c21749f9c6ab7203788e2fcdb16efc40ca5da201eb407196f3ff7c95e5db
-DIST llama-cpp-0.3.0.tar.gz 36951021 BLAKE2B fa59feff83100b137710aeed91ffe721d057f891749aff8c0f5758c86dd22760d0456f808137aad7ee2faf8e14956f603dd6d0bbb44a0767f026c61a94ad2d30 SHA512 c92095a186920110cf9f542d00b004236d92f1ab3f22267bb6ed8fc4b65dc1c32b2705efab202849756d464ed2213c6ee4d5613482f56dad26ae6eb3ba16a91d
-DIST llama-cpp-0.3.0_p10780.tar.gz 37148504 BLAKE2B c65bbbe9c15e79cb80fec728246e0e16b0fe52bd8523e3f948f5eea7e02b0d8762eb02dfc86cc44bf38180398ca8860786b637b7139e3afd9367160467bbade5 SHA512 26392bc161594dccfd74287e5664cc56c14222f7281e10129e7980f48275368ff003dffb36b8b7d742c4aabcec2562c9aaa78d1abc533f618fc5aab8d66c8575
+DIST llama-b10964-ui.tar.gz 3084524 BLAKE2B b53a3fdcb8a0dd132c125409ec145b927493d929a1a4e1f266f2f6ea08aae684dbaecadf039b7f6bab05aa93890ee9e5a5e926ccc1f0f32d7b1a74e1ba77c1b7 SHA512 3524c4ff43bf334cc1ee75e03bf5a33dba884a20489ac8ee6bd5d5d27060bc183f8939d301295576c3dbf9263dd9a55022c3e683e2e88b2686c1fe81311d4d02
DIST llama-cpp-0.4.0.tar.gz 37288249 BLAKE2B a0cd0c8251b4dc32681426e323e52b03c9a733a3d29d8e733334702c2082b2aff664906811dee0298ea950a28fec40771e5c27aa5a2c32b7f7b9b9cab512249d SHA512 12592516c0ac70ed53d64fc0c9f82bbb156defa507c7364f1a753eb29f3498e0e13a282e139c2eff7d2eb00921b4ef107b2fa90a5b66f8a3c45409d4fcb0834f
-DIST llama-cpp-0.4.0_p10905.tar.gz 37373261 BLAKE2B e966b0a9abee8486b197a35958c2a4adaaffc4911595c9372da46d59e75ee70f1609e63bd79078ea32b61d54d763eeab6a05e65f7d8cd0cf6916708fe97cb717 SHA512 c2f33fdc62c9e43e643d35128688b75c9227416cb99fc4796b992f759e340ddd16ad7a8ca43b31d3214536e2b9bf1f24f0cdbc4eef39793f2b951c99775a40e5
-DIST llama-cpp-0.4.0_p10927.tar.gz 37418777 BLAKE2B 3f3c829183b4738b4b13801c872c95361473831085f4f193e4d263ebebdc4e2e9fee1137dc7262926db4f24770bb1122b9e5db8dc8e33e8c35fcb0d93d181fba SHA512 d49ba6692e0c19a395a82b2030d06c247baea8269f382ec01359e08f8a5c8f5653b71b468093a068c90a1151e8efbfab6d13abf0ebf8a9d1af61356a1096cda3
+DIST llama-cpp-0.4.1.tar.gz 37422659 BLAKE2B beefc257a01a11c8ecac25d963d37b05679715bece94d2f64c391c6158c7f81179873b66c36661159ae0fc126c89b4df6d47e8fe853b7e052d2f1297de13155f SHA512 b82f755c40897d273ec3784f4f22b02f6a5f5f7b3c2a4240495d13a4617575c9aa69597de6a4f0b9a6568f51cc976e0b72ac847d83c2f953ed7fa52365e71d9a
diff --git a/sci-misc/llama-cpp/llama-cpp-0.3.0.ebuild b/sci-misc/llama-cpp/llama-cpp-0.3.0.ebuild
deleted file mode 100644
index 2e2a30086062..000000000000
--- a/sci-misc/llama-cpp/llama-cpp-0.3.0.ebuild
+++ /dev/null
@@ -1,237 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-ROCM_VERSION="7.1"
-
-inherit cmake cuda rocm linux-info toolchain-funcs
-
-TINY_LLAMAS_COMMIT="99dd1a73db5a37100bd4ae633f4cfce6560e1567"
-
-DESCRIPTION="Port of Facebook's LLaMA model in C/C++"
-HOMEPAGE="https://github.com/ggml-org/llama.cpp"
-
-if [[ ${PV} == *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/ggml-org/llama.cpp.git"
- LLAMA_BUILD_IS_DEV=ON
- LLAMA_BUILD_NUMBER="b0000"
- LLAMA_UI_VERSION="b10621"
- MY_PV="${PV}"
-else
- if [[ $(ver_cut 4) == "p" ]]; then
- LLAMA_BUILD_IS_DEV=ON
- LLAMA_BUILD_NUMBER="b$(ver_cut 5)"
- MY_PV="${LLAMA_BUILD_NUMBER}"
- S="${WORKDIR}/llama.cpp-${MY_PV}"
- else
- LLAMA_BUILD_IS_DEV=OFF
- # Set from https://github.com/ggml-org/llama.cpp/releases/download/v${PV}/nightly-tag.txt
- LLAMA_BUILD_NUMBER="b10621"
- MY_PV="v${PV}"
- S="${WORKDIR}/llama.cpp-${PV}"
- fi
- LLAMA_UI_VERSION="${LLAMA_BUILD_NUMBER}"
- SRC_URI="https://github.com/ggml-org/llama.cpp/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64"
-fi
-
-SRC_URI+="
- https://github.com/ggml-org/llama.cpp/releases/download/${LLAMA_UI_VERSION}/llama-${LLAMA_UI_VERSION}-ui.tar.gz
- examples? (
- https://huggingface.co/ggml-org/tiny-llamas/resolve/${TINY_LLAMAS_COMMIT}/stories15M-q4_0.gguf
- -> ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf
- )
-"
-
-LICENSE="MIT"
-SLOT="0"
-X86_CPU_FLAGS=(
- amx_bf16
- amx_int8
- amx_tile
- avx
- avx2
- avx512_bf16
- avx512_vnni
- avx512f
- avx512vbmi
- avx_vnni
- bmi2
- f16c
- fma3
- sse4_2
-)
-CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" )
-
-# wwma USE explained here: https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md#hip
-IUSE="${CPU_FLAGS[*]} curl openblas +openmp blis rocm cuda opencl openssl vulkan flexiblas wmma examples"
-
-REQUIRED_USE="
- ?? (
- openblas
- blis
- flexiblas
- )
- rocm? ( ${ROCM_REQUIRED_USE} )
- wmma? (
- rocm
- )
-"
-
-# curl is needed for pulling models from huggingface
-# numpy is used by convert_hf_to_gguf.py
-CDEPEND="
- curl? ( net-misc/curl:= )
- openblas? ( sci-libs/openblas:= )
- openmp? ( llvm-runtimes/openmp:= )
- blis? ( sci-libs/blis:= )
- flexiblas? ( sci-libs/flexiblas:= )
- rocm? (
- >=dev-util/hip-${ROCM_VERSION}:=
- >=sci-libs/hipBLAS-${ROCM_VERSION}:=[${ROCM_USEDEP}]
- wmma? (
- >=sci-libs/rocWMMA-${ROCM_VERSION}:=[${ROCM_USEDEP}]
- )
- )
- cuda? ( dev-util/nvidia-cuda-toolkit:= )
- openssl? ( dev-libs/openssl:= )
-"
-DEPEND="${CDEPEND}
- opencl? ( dev-util/opencl-headers )
- vulkan? (
- dev-util/spirv-headers
- dev-util/vulkan-headers
- )
-"
-RDEPEND="${CDEPEND}
- dev-python/numpy
- opencl? ( dev-libs/opencl-icd-loader )
- vulkan? ( media-libs/vulkan-loader )
-"
-BDEPEND="media-libs/shaderc"
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- if use rocm; then
- linux-info_pkg_setup
- if linux-info_get_any_version && linux_config_exists; then
- if ! linux_chkconfig_present HSA_AMD_SVM; then
- ewarn "To use ROCm/HIP, you need to have HSA_AMD_SVM option enabled in your kernel."
- fi
- fi
- fi
-
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-src_unpack() {
- [[ ${PV} == *9999* ]] && git-r3_src_unpack
- default
-}
-
-src_prepare() {
- use cuda && cuda_src_prepare
- cmake_src_prepare
- if use examples; then
- mkdir -p "${BUILD_DIR}/tinyllamas" || die
- cp "${DISTDIR}/ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf" \
- "${BUILD_DIR}/tinyllamas/stories15M-q4_0.gguf" || die
- fi
-
- # Move web UI assets where they belong, bug #979245
- mkdir -p "${S}"/tools/ui || die
- cp -a "${WORKDIR}"/llama-${LLAMA_UI_VERSION} "${S}"/tools/ui/dist || die
-}
-
-src_configure() {
- local mycmakeargs=(
- -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
- -DLLAMA_BUILD_IS_DEV=${LLAMA_BUILD_IS_DEV}
- -DLLAMA_BUILD_TESTS=OFF
- -DLLAMA_BUILD_EXAMPLES=$(usex examples)
- -DLLAMA_BUILD_SERVER=ON
- -DBUILD_NUMBER="${LLAMA_BUILD_NUMBER}"
- -DLLAMA_CURL=$(usex curl)
- -DLLAMA_OPENSSL=$(usex openssl)
-
- # avoid clashing with whisper.cpp
- -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
- -DCMAKE_INSTALL_RPATH="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
- )
-
- # GGML backends
- mycmakeargs+=(
- -DGGML_NATIVE=OFF # don't set march
-
- # CPU Flags
- -DGGML_SSE42=$(usex cpu_flags_x86_sse4_2)
- -DGGML_AVX=$(usex cpu_flags_x86_avx)
- -DGGML_AVX_VNNI=$(usex cpu_flags_x86_avx_vnni)
- -DGGML_AVX2=$(usex cpu_flags_x86_avx2)
- -DGGML_BMI2=$(usex cpu_flags_x86_bmi2)
- -DGGML_AVX512=$(usex cpu_flags_x86_avx512f)
- -DGGML_AVX512_VBMI=$(usex cpu_flags_x86_avx512vbmi)
- -DGGML_AVX512_VNNI=$(usex cpu_flags_x86_avx512_vnni)
- -DGGML_AVX512_BF16=$(usex cpu_flags_x86_avx512_bf16)
- -DGGML_FMA=$(usex cpu_flags_x86_fma3)
- -DGGML_F16C=$(usex cpu_flags_x86_f16c)
- -DGGML_AMX_TILE=$(usex cpu_flags_x86_amx_tile)
- -DGGML_AMX_INT8=$(usex cpu_flags_x86_amx_int8)
- -DGGML_AMX_BF16=$(usex cpu_flags_x86_amx_bf16)
-
- -DGGML_CUDA=$(usex cuda)
- -DGGML_VULKAN=$(usex vulkan)
- -DGGML_OPENMP=$(usex openmp)
- -DGGML_RPC=ON
- -DGGML_OPENCL=$(usex opencl)
- )
-
- if use openblas ; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS
- )
- fi
-
- if use blis ; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=FLAME
- )
- fi
-
- if use flexiblas; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=FlexiBLAS
- )
- fi
-
- if use cuda; then
- local -x CUDAHOSTCXX="$(cuda_gccdir)"
- # tries to recreate dev symlinks
- cuda_add_sandbox
- addpredict "/dev/char/"
- fi
-
- if use rocm; then
- rocm_use_hipcc
- mycmakeargs+=(
- -DGGML_HIP=ON
- -DAMDGPU_TARGETS=$(get_amdgpu_flags)
- -DGGML_HIP_ROCWMMA_FATTN=$(usex wmma)
- )
- fi
-
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
- dobin "${BUILD_DIR}/bin/ggml-rpc-server"
-
- # avoid clashing with whisper.cpp
- rm -r "${ED}/usr/include" || die
-}
diff --git a/sci-misc/llama-cpp/llama-cpp-0.3.0_p10780.ebuild b/sci-misc/llama-cpp/llama-cpp-0.3.0_p10780.ebuild
deleted file mode 100644
index 582c77f94fee..000000000000
--- a/sci-misc/llama-cpp/llama-cpp-0.3.0_p10780.ebuild
+++ /dev/null
@@ -1,237 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-ROCM_VERSION="7.1"
-
-inherit cmake cuda rocm linux-info toolchain-funcs
-
-TINY_LLAMAS_COMMIT="99dd1a73db5a37100bd4ae633f4cfce6560e1567"
-
-DESCRIPTION="Port of Facebook's LLaMA model in C/C++"
-HOMEPAGE="https://github.com/ggml-org/llama.cpp"
-
-if [[ ${PV} == *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/ggml-org/llama.cpp.git"
- LLAMA_BUILD_IS_DEV=ON
- LLAMA_BUILD_NUMBER="b0000"
- LLAMA_UI_VERSION="b10780"
- MY_PV="${PV}"
-else
- if [[ $(ver_cut 4) == "p" ]]; then
- LLAMA_BUILD_IS_DEV=ON
- LLAMA_BUILD_NUMBER="b$(ver_cut 5)"
- MY_PV="${LLAMA_BUILD_NUMBER}"
- S="${WORKDIR}/llama.cpp-${MY_PV}"
- else
- LLAMA_BUILD_IS_DEV=OFF
- # Set from https://github.com/ggml-org/llama.cpp/releases/download/v${PV}/nightly-tag.txt
- LLAMA_BUILD_NUMBER="b10780"
- MY_PV="v${PV}"
- S="${WORKDIR}/llama.cpp-${PV}"
- fi
- LLAMA_UI_VERSION="${LLAMA_BUILD_NUMBER}"
- SRC_URI="https://github.com/ggml-org/llama.cpp/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64"
-fi
-
-SRC_URI+="
- https://github.com/ggml-org/llama.cpp/releases/download/${LLAMA_UI_VERSION}/llama-${LLAMA_UI_VERSION}-ui.tar.gz
- examples? (
- https://huggingface.co/ggml-org/tiny-llamas/resolve/${TINY_LLAMAS_COMMIT}/stories15M-q4_0.gguf
- -> ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf
- )
-"
-
-LICENSE="MIT"
-SLOT="0"
-X86_CPU_FLAGS=(
- amx_bf16
- amx_int8
- amx_tile
- avx
- avx2
- avx512_bf16
- avx512_vnni
- avx512f
- avx512vbmi
- avx_vnni
- bmi2
- f16c
- fma3
- sse4_2
-)
-CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" )
-
-# wwma USE explained here: https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md#hip
-IUSE="${CPU_FLAGS[*]} curl openblas +openmp blis rocm cuda opencl openssl vulkan flexiblas wmma examples"
-
-REQUIRED_USE="
- ?? (
- openblas
- blis
- flexiblas
- )
- rocm? ( ${ROCM_REQUIRED_USE} )
- wmma? (
- rocm
- )
-"
-
-# curl is needed for pulling models from huggingface
-# numpy is used by convert_hf_to_gguf.py
-CDEPEND="
- curl? ( net-misc/curl:= )
- openblas? ( sci-libs/openblas:= )
- openmp? ( llvm-runtimes/openmp:= )
- blis? ( sci-libs/blis:= )
- flexiblas? ( sci-libs/flexiblas:= )
- rocm? (
- >=dev-util/hip-${ROCM_VERSION}:=
- >=sci-libs/hipBLAS-${ROCM_VERSION}:=[${ROCM_USEDEP}]
- wmma? (
- >=sci-libs/rocWMMA-${ROCM_VERSION}:=[${ROCM_USEDEP}]
- )
- )
- cuda? ( dev-util/nvidia-cuda-toolkit:= )
- openssl? ( dev-libs/openssl:= )
-"
-DEPEND="${CDEPEND}
- opencl? ( dev-util/opencl-headers )
- vulkan? (
- dev-util/spirv-headers
- dev-util/vulkan-headers
- )
-"
-RDEPEND="${CDEPEND}
- dev-python/numpy
- opencl? ( dev-libs/opencl-icd-loader )
- vulkan? ( media-libs/vulkan-loader )
-"
-BDEPEND="media-libs/shaderc"
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- if use rocm; then
- linux-info_pkg_setup
- if linux-info_get_any_version && linux_config_exists; then
- if ! linux_chkconfig_present HSA_AMD_SVM; then
- ewarn "To use ROCm/HIP, you need to have HSA_AMD_SVM option enabled in your kernel."
- fi
- fi
- fi
-
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-src_unpack() {
- [[ ${PV} == *9999* ]] && git-r3_src_unpack
- default
-}
-
-src_prepare() {
- use cuda && cuda_src_prepare
- cmake_src_prepare
- if use examples; then
- mkdir -p "${BUILD_DIR}/tinyllamas" || die
- cp "${DISTDIR}/ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf" \
- "${BUILD_DIR}/tinyllamas/stories15M-q4_0.gguf" || die
- fi
-
- # Move web UI assets where they belong, bug #979245
- mkdir -p "${S}"/tools/ui || die
- cp -a "${WORKDIR}"/llama-${LLAMA_UI_VERSION} "${S}"/tools/ui/dist || die
-}
-
-src_configure() {
- local mycmakeargs=(
- -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
- -DLLAMA_BUILD_IS_DEV=${LLAMA_BUILD_IS_DEV}
- -DLLAMA_BUILD_TESTS=OFF
- -DLLAMA_BUILD_EXAMPLES=$(usex examples)
- -DLLAMA_BUILD_SERVER=ON
- -DBUILD_NUMBER="${LLAMA_BUILD_NUMBER}"
- -DLLAMA_CURL=$(usex curl)
- -DLLAMA_OPENSSL=$(usex openssl)
-
- # avoid clashing with whisper.cpp
- -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
- -DCMAKE_INSTALL_RPATH="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
- )
-
- # GGML backends
- mycmakeargs+=(
- -DGGML_NATIVE=OFF # don't set march
-
- # CPU Flags
- -DGGML_SSE42=$(usex cpu_flags_x86_sse4_2)
- -DGGML_AVX=$(usex cpu_flags_x86_avx)
- -DGGML_AVX_VNNI=$(usex cpu_flags_x86_avx_vnni)
- -DGGML_AVX2=$(usex cpu_flags_x86_avx2)
- -DGGML_BMI2=$(usex cpu_flags_x86_bmi2)
- -DGGML_AVX512=$(usex cpu_flags_x86_avx512f)
- -DGGML_AVX512_VBMI=$(usex cpu_flags_x86_avx512vbmi)
- -DGGML_AVX512_VNNI=$(usex cpu_flags_x86_avx512_vnni)
- -DGGML_AVX512_BF16=$(usex cpu_flags_x86_avx512_bf16)
- -DGGML_FMA=$(usex cpu_flags_x86_fma3)
- -DGGML_F16C=$(usex cpu_flags_x86_f16c)
- -DGGML_AMX_TILE=$(usex cpu_flags_x86_amx_tile)
- -DGGML_AMX_INT8=$(usex cpu_flags_x86_amx_int8)
- -DGGML_AMX_BF16=$(usex cpu_flags_x86_amx_bf16)
-
- -DGGML_CUDA=$(usex cuda)
- -DGGML_VULKAN=$(usex vulkan)
- -DGGML_OPENMP=$(usex openmp)
- -DGGML_RPC=ON
- -DGGML_OPENCL=$(usex opencl)
- )
-
- if use openblas ; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS
- )
- fi
-
- if use blis ; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=FLAME
- )
- fi
-
- if use flexiblas; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=FlexiBLAS
- )
- fi
-
- if use cuda; then
- local -x CUDAHOSTCXX="$(cuda_gccdir)"
- # tries to recreate dev symlinks
- cuda_add_sandbox
- addpredict "/dev/char/"
- fi
-
- if use rocm; then
- rocm_use_hipcc
- mycmakeargs+=(
- -DGGML_HIP=ON
- -DAMDGPU_TARGETS=$(get_amdgpu_flags)
- -DGGML_HIP_ROCWMMA_FATTN=$(usex wmma)
- )
- fi
-
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
- dobin "${BUILD_DIR}/bin/ggml-rpc-server"
-
- # avoid clashing with whisper.cpp
- rm -r "${ED}/usr/include" || die
-}
diff --git a/sci-misc/llama-cpp/llama-cpp-0.4.0.ebuild b/sci-misc/llama-cpp/llama-cpp-0.4.0.ebuild
index 85605decaa68..4e19ea927bf3 100644
--- a/sci-misc/llama-cpp/llama-cpp-0.4.0.ebuild
+++ b/sci-misc/llama-cpp/llama-cpp-0.4.0.ebuild
@@ -65,8 +65,7 @@ X86_CPU_FLAGS=(
)
CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" )
-# wwma USE explained here: https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md#hip
-IUSE="${CPU_FLAGS[*]} curl openblas +openmp blis rocm cuda opencl openssl vulkan flexiblas wmma examples"
+IUSE="${CPU_FLAGS[*]} blis cuda curl examples flexiblas openblas opencl +openmp openssl rocm vulkan"
REQUIRED_USE="
?? (
@@ -75,9 +74,6 @@ REQUIRED_USE="
flexiblas
)
rocm? ( ${ROCM_REQUIRED_USE} )
- wmma? (
- rocm
- )
"
# curl is needed for pulling models from huggingface
@@ -91,9 +87,6 @@ CDEPEND="
rocm? (
>=dev-util/hip-${ROCM_VERSION}:=
>=sci-libs/hipBLAS-${ROCM_VERSION}:=[${ROCM_USEDEP}]
- wmma? (
- >=sci-libs/rocWMMA-${ROCM_VERSION}:=[${ROCM_USEDEP}]
- )
)
cuda? ( dev-util/nvidia-cuda-toolkit:= )
openssl? ( dev-libs/openssl:= )
@@ -221,7 +214,6 @@ src_configure() {
mycmakeargs+=(
-DGGML_HIP=ON
-DAMDGPU_TARGETS=$(get_amdgpu_flags)
- -DGGML_HIP_ROCWMMA_FATTN=$(usex wmma)
)
fi
diff --git a/sci-misc/llama-cpp/llama-cpp-0.4.0_p10905.ebuild b/sci-misc/llama-cpp/llama-cpp-0.4.0_p10905.ebuild
deleted file mode 100644
index ee764cbaf82b..000000000000
--- a/sci-misc/llama-cpp/llama-cpp-0.4.0_p10905.ebuild
+++ /dev/null
@@ -1,237 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-ROCM_VERSION="7.1"
-
-inherit cmake cuda rocm linux-info toolchain-funcs
-
-TINY_LLAMAS_COMMIT="99dd1a73db5a37100bd4ae633f4cfce6560e1567"
-
-DESCRIPTION="Port of Facebook's LLaMA model in C/C++"
-HOMEPAGE="https://github.com/ggml-org/llama.cpp"
-
-if [[ ${PV} == *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/ggml-org/llama.cpp.git"
- LLAMA_BUILD_IS_DEV=ON
- LLAMA_BUILD_NUMBER="b0000"
- LLAMA_UI_VERSION="b10905"
- MY_PV="${PV}"
-else
- if [[ $(ver_cut 4) == "p" ]]; then
- LLAMA_BUILD_IS_DEV=ON
- LLAMA_BUILD_NUMBER="b$(ver_cut 5)"
- MY_PV="${LLAMA_BUILD_NUMBER}"
- S="${WORKDIR}/llama.cpp-${MY_PV}"
- else
- LLAMA_BUILD_IS_DEV=OFF
- # Set from https://github.com/ggml-org/llama.cpp/releases/download/v${PV}/nightly-tag.txt
- LLAMA_BUILD_NUMBER="b10905"
- MY_PV="v${PV}"
- S="${WORKDIR}/llama.cpp-${PV}"
- fi
- LLAMA_UI_VERSION="${LLAMA_BUILD_NUMBER}"
- SRC_URI="https://github.com/ggml-org/llama.cpp/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64"
-fi
-
-SRC_URI+="
- https://github.com/ggml-org/llama.cpp/releases/download/${LLAMA_UI_VERSION}/llama-${LLAMA_UI_VERSION}-ui.tar.gz
- examples? (
- https://huggingface.co/ggml-org/tiny-llamas/resolve/${TINY_LLAMAS_COMMIT}/stories15M-q4_0.gguf
- -> ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf
- )
-"
-
-LICENSE="MIT"
-SLOT="0"
-X86_CPU_FLAGS=(
- amx_bf16
- amx_int8
- amx_tile
- avx
- avx2
- avx512_bf16
- avx512_vnni
- avx512f
- avx512vbmi
- avx_vnni
- bmi2
- f16c
- fma3
- sse4_2
-)
-CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" )
-
-# wwma USE explained here: https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md#hip
-IUSE="${CPU_FLAGS[*]} curl openblas +openmp blis rocm cuda opencl openssl vulkan flexiblas wmma examples"
-
-REQUIRED_USE="
- ?? (
- openblas
- blis
- flexiblas
- )
- rocm? ( ${ROCM_REQUIRED_USE} )
- wmma? (
- rocm
- )
-"
-
-# curl is needed for pulling models from huggingface
-# numpy is used by convert_hf_to_gguf.py
-CDEPEND="
- curl? ( net-misc/curl:= )
- openblas? ( sci-libs/openblas:= )
- openmp? ( llvm-runtimes/openmp:= )
- blis? ( sci-libs/blis:= )
- flexiblas? ( sci-libs/flexiblas:= )
- rocm? (
- >=dev-util/hip-${ROCM_VERSION}:=
- >=sci-libs/hipBLAS-${ROCM_VERSION}:=[${ROCM_USEDEP}]
- wmma? (
- >=sci-libs/rocWMMA-${ROCM_VERSION}:=[${ROCM_USEDEP}]
- )
- )
- cuda? ( dev-util/nvidia-cuda-toolkit:= )
- openssl? ( dev-libs/openssl:= )
-"
-DEPEND="${CDEPEND}
- opencl? ( dev-util/opencl-headers )
- vulkan? (
- dev-util/spirv-headers
- dev-util/vulkan-headers
- )
-"
-RDEPEND="${CDEPEND}
- dev-python/numpy
- opencl? ( dev-libs/opencl-icd-loader )
- vulkan? ( media-libs/vulkan-loader )
-"
-BDEPEND="media-libs/shaderc"
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- if use rocm; then
- linux-info_pkg_setup
- if linux-info_get_any_version && linux_config_exists; then
- if ! linux_chkconfig_present HSA_AMD_SVM; then
- ewarn "To use ROCm/HIP, you need to have HSA_AMD_SVM option enabled in your kernel."
- fi
- fi
- fi
-
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-src_unpack() {
- [[ ${PV} == *9999* ]] && git-r3_src_unpack
- default
-}
-
-src_prepare() {
- use cuda && cuda_src_prepare
- cmake_src_prepare
- if use examples; then
- mkdir -p "${BUILD_DIR}/tinyllamas" || die
- cp "${DISTDIR}/ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf" \
- "${BUILD_DIR}/tinyllamas/stories15M-q4_0.gguf" || die
- fi
-
- # Move web UI assets where they belong, bug #979245
- mkdir -p "${S}"/tools/ui || die
- cp -a "${WORKDIR}"/llama-${LLAMA_UI_VERSION} "${S}"/tools/ui/dist || die
-}
-
-src_configure() {
- local mycmakeargs=(
- -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
- -DLLAMA_BUILD_IS_DEV=${LLAMA_BUILD_IS_DEV}
- -DLLAMA_BUILD_TESTS=OFF
- -DLLAMA_BUILD_EXAMPLES=$(usex examples)
- -DLLAMA_BUILD_SERVER=ON
- -DBUILD_NUMBER="${LLAMA_BUILD_NUMBER}"
- -DLLAMA_CURL=$(usex curl)
- -DLLAMA_OPENSSL=$(usex openssl)
-
- # avoid clashing with whisper.cpp
- -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
- -DCMAKE_INSTALL_RPATH="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
- )
-
- # GGML backends
- mycmakeargs+=(
- -DGGML_NATIVE=OFF # don't set march
-
- # CPU Flags
- -DGGML_SSE42=$(usex cpu_flags_x86_sse4_2)
- -DGGML_AVX=$(usex cpu_flags_x86_avx)
- -DGGML_AVX_VNNI=$(usex cpu_flags_x86_avx_vnni)
- -DGGML_AVX2=$(usex cpu_flags_x86_avx2)
- -DGGML_BMI2=$(usex cpu_flags_x86_bmi2)
- -DGGML_AVX512=$(usex cpu_flags_x86_avx512f)
- -DGGML_AVX512_VBMI=$(usex cpu_flags_x86_avx512vbmi)
- -DGGML_AVX512_VNNI=$(usex cpu_flags_x86_avx512_vnni)
- -DGGML_AVX512_BF16=$(usex cpu_flags_x86_avx512_bf16)
- -DGGML_FMA=$(usex cpu_flags_x86_fma3)
- -DGGML_F16C=$(usex cpu_flags_x86_f16c)
- -DGGML_AMX_TILE=$(usex cpu_flags_x86_amx_tile)
- -DGGML_AMX_INT8=$(usex cpu_flags_x86_amx_int8)
- -DGGML_AMX_BF16=$(usex cpu_flags_x86_amx_bf16)
-
- -DGGML_CUDA=$(usex cuda)
- -DGGML_VULKAN=$(usex vulkan)
- -DGGML_OPENMP=$(usex openmp)
- -DGGML_RPC=ON
- -DGGML_OPENCL=$(usex opencl)
- )
-
- if use openblas ; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS
- )
- fi
-
- if use blis ; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=FLAME
- )
- fi
-
- if use flexiblas; then
- mycmakeargs+=(
- -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=FlexiBLAS
- )
- fi
-
- if use cuda; then
- local -x CUDAHOSTCXX="$(cuda_gccdir)"
- # tries to recreate dev symlinks
- cuda_add_sandbox
- addpredict "/dev/char/"
- fi
-
- if use rocm; then
- rocm_use_hipcc
- mycmakeargs+=(
- -DGGML_HIP=ON
- -DAMDGPU_TARGETS=$(get_amdgpu_flags)
- -DGGML_HIP_ROCWMMA_FATTN=$(usex wmma)
- )
- fi
-
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
- dobin "${BUILD_DIR}/bin/ggml-rpc-server"
-
- # avoid clashing with whisper.cpp
- rm -r "${ED}/usr/include" || die
-}
diff --git a/sci-misc/llama-cpp/llama-cpp-0.4.0_p10927.ebuild b/sci-misc/llama-cpp/llama-cpp-0.4.1.ebuild
index 1c090da42e27..02e81f139f77 100644
--- a/sci-misc/llama-cpp/llama-cpp-0.4.0_p10927.ebuild
+++ b/sci-misc/llama-cpp/llama-cpp-0.4.1.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-ROCM_VERSION="7.1"
+ROCM_VERSION="6.1"
inherit cmake cuda rocm linux-info toolchain-funcs
+MY_PN="${PN/-/.}"
TINY_LLAMAS_COMMIT="99dd1a73db5a37100bd4ae633f4cfce6560e1567"
DESCRIPTION="Port of Facebook's LLaMA model in C/C++"
@@ -17,36 +18,41 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/ggml-org/llama.cpp.git"
LLAMA_BUILD_IS_DEV=ON
LLAMA_BUILD_NUMBER="b0000"
- LLAMA_UI_VERSION="b10927"
+ LLAMA_UI_VERSION="b10964"
MY_PV="${PV}"
else
if [[ $(ver_cut 4) == "p" ]]; then
LLAMA_BUILD_IS_DEV=ON
LLAMA_BUILD_NUMBER="b$(ver_cut 5)"
MY_PV="${LLAMA_BUILD_NUMBER}"
- S="${WORKDIR}/llama.cpp-${MY_PV}"
+ S="${WORKDIR}/${MY_PN}-${MY_PV}"
else
LLAMA_BUILD_IS_DEV=OFF
# Set from https://github.com/ggml-org/llama.cpp/releases/download/v${PV}/nightly-tag.txt
- LLAMA_BUILD_NUMBER="b10927"
+ LLAMA_BUILD_NUMBER="b10964"
MY_PV="v${PV}"
- S="${WORKDIR}/llama.cpp-${PV}"
+ S="${WORKDIR}/${MY_PN}-${PV}"
fi
LLAMA_UI_VERSION="${LLAMA_BUILD_NUMBER}"
SRC_URI="https://github.com/ggml-org/llama.cpp/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
fi
+MODEL_STORIES15M_URI="
+ https://huggingface.co/ggml-org/tiny-llamas/resolve/${TINY_LLAMAS_COMMIT}/stories15M-q4_0.gguf
+ -> ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf
+"
+
SRC_URI+="
https://github.com/ggml-org/llama.cpp/releases/download/${LLAMA_UI_VERSION}/llama-${LLAMA_UI_VERSION}-ui.tar.gz
- examples? (
- https://huggingface.co/ggml-org/tiny-llamas/resolve/${TINY_LLAMAS_COMMIT}/stories15M-q4_0.gguf
- -> ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf
- )
+ examples? ( ${MODEL_STORIES15M_URI} )
+ test? ( ${MODEL_STORIES15M_URI} )
"
LICENSE="MIT"
SLOT="0"
+
+# GGML CPU flags
X86_CPU_FLAGS=(
amx_bf16
amx_int8
@@ -64,10 +70,11 @@ X86_CPU_FLAGS=(
sse4_2
)
CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" )
+GGML_IUSE="${CPU_FLAGS[*]} blis cuda flexiblas openblas opencl +openmp rocm vulkan"
+unset X86_CPU_FLAGS CPU_FLAGS
-# wwma USE explained here: https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md#hip
-IUSE="${CPU_FLAGS[*]} curl openblas +openmp blis rocm cuda opencl openssl vulkan flexiblas wmma examples"
-
+IUSE="${GGML_IUSE} curl examples openssl test"
+unset GGML_IUSE
REQUIRED_USE="
?? (
openblas
@@ -75,14 +82,12 @@ REQUIRED_USE="
flexiblas
)
rocm? ( ${ROCM_REQUIRED_USE} )
- wmma? (
- rocm
- )
"
+RESTRICT="!test? ( test )"
# curl is needed for pulling models from huggingface
# numpy is used by convert_hf_to_gguf.py
-CDEPEND="
+COMMON_DEPEND="
curl? ( net-misc/curl:= )
openblas? ( sci-libs/openblas:= )
openmp? ( llvm-runtimes/openmp:= )
@@ -91,26 +96,23 @@ CDEPEND="
rocm? (
>=dev-util/hip-${ROCM_VERSION}:=
>=sci-libs/hipBLAS-${ROCM_VERSION}:=
- wmma? (
- >=sci-libs/rocWMMA-${ROCM_VERSION}:=
- )
)
cuda? ( dev-util/nvidia-cuda-toolkit:= )
openssl? ( dev-libs/openssl:= )
"
-DEPEND="${CDEPEND}
+DEPEND="${COMMON_DEPEND}
opencl? ( dev-util/opencl-headers )
vulkan? (
dev-util/spirv-headers
dev-util/vulkan-headers
)
"
-RDEPEND="${CDEPEND}
- dev-python/numpy
+RDEPEND="${COMMON_DEPEND}
+ >=dev-python/numpy-2.2.6
opencl? ( dev-libs/opencl-icd-loader )
vulkan? ( media-libs/vulkan-loader )
"
-BDEPEND="media-libs/shaderc"
+BDEPEND="vulkan? ( media-libs/shaderc )"
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
@@ -137,7 +139,7 @@ src_unpack() {
src_prepare() {
use cuda && cuda_src_prepare
cmake_src_prepare
- if use examples; then
+ if use examples || use test; then
mkdir -p "${BUILD_DIR}/tinyllamas" || die
cp "${DISTDIR}/ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf" \
"${BUILD_DIR}/tinyllamas/stories15M-q4_0.gguf" || die
@@ -150,18 +152,19 @@ src_prepare() {
src_configure() {
local mycmakeargs=(
- -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
-DLLAMA_BUILD_IS_DEV=${LLAMA_BUILD_IS_DEV}
- -DLLAMA_BUILD_TESTS=OFF
+ -DLLAMA_BUILD_TESTS=$(usex test)
-DLLAMA_BUILD_EXAMPLES=$(usex examples)
-DLLAMA_BUILD_SERVER=ON
+ -DLLAMA_TESTS_INSTALL=OFF
-DBUILD_NUMBER="${LLAMA_BUILD_NUMBER}"
-DLLAMA_CURL=$(usex curl)
-DLLAMA_OPENSSL=$(usex openssl)
- # avoid clashing with whisper.cpp
- -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
- -DCMAKE_INSTALL_RPATH="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
+ # avoid clashing with sci-ml/ggml
+ -DCMAKE_INSTALL_INCLUDEDIR="include/${MY_PN}"
+ -DCMAKE_INSTALL_LIBDIR="$(get_libdir)/${MY_PN}"
+ -DCMAKE_INSTALL_RPATH="\$ORIGIN/../$(get_libdir)/${MY_PN};\$ORIGIN"
)
# GGML backends
@@ -217,21 +220,21 @@ src_configure() {
fi
if use rocm; then
- rocm_use_hipcc
+ # See ${S}/docs/build.md#hip
+ export HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -p)"
mycmakeargs+=(
-DGGML_HIP=ON
- -DAMDGPU_TARGETS=$(get_amdgpu_flags)
- -DGGML_HIP_ROCWMMA_FATTN=$(usex wmma)
+ -DGPU_TARGETS=$(get_amdgpu_flags)
)
fi
cmake_src_configure
}
-src_install() {
- cmake_src_install
- dobin "${BUILD_DIR}/bin/ggml-rpc-server"
-
- # avoid clashing with whisper.cpp
- rm -r "${ED}/usr/include" || die
+src_test() {
+ local CMAKE_SKIP_TESTS=(
+ test-download-model # due to network sandbox
+ test-arg-parser # due to network sandbox in download functions test
+ )
+ cmake_src_test
}
diff --git a/sci-misc/llama-cpp/llama-cpp-9999.ebuild b/sci-misc/llama-cpp/llama-cpp-9999.ebuild
index ea84bbe3b346..02e81f139f77 100644
--- a/sci-misc/llama-cpp/llama-cpp-9999.ebuild
+++ b/sci-misc/llama-cpp/llama-cpp-9999.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-ROCM_VERSION="7.1"
+ROCM_VERSION="6.1"
inherit cmake cuda rocm linux-info toolchain-funcs
+MY_PN="${PN/-/.}"
TINY_LLAMAS_COMMIT="99dd1a73db5a37100bd4ae633f4cfce6560e1567"
DESCRIPTION="Port of Facebook's LLaMA model in C/C++"
@@ -17,36 +18,41 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/ggml-org/llama.cpp.git"
LLAMA_BUILD_IS_DEV=ON
LLAMA_BUILD_NUMBER="b0000"
- LLAMA_UI_VERSION="b10780"
+ LLAMA_UI_VERSION="b10964"
MY_PV="${PV}"
else
if [[ $(ver_cut 4) == "p" ]]; then
LLAMA_BUILD_IS_DEV=ON
LLAMA_BUILD_NUMBER="b$(ver_cut 5)"
MY_PV="${LLAMA_BUILD_NUMBER}"
- S="${WORKDIR}/llama.cpp-${MY_PV}"
+ S="${WORKDIR}/${MY_PN}-${MY_PV}"
else
LLAMA_BUILD_IS_DEV=OFF
# Set from https://github.com/ggml-org/llama.cpp/releases/download/v${PV}/nightly-tag.txt
- LLAMA_BUILD_NUMBER="b10780"
+ LLAMA_BUILD_NUMBER="b10964"
MY_PV="v${PV}"
- S="${WORKDIR}/llama.cpp-${PV}"
+ S="${WORKDIR}/${MY_PN}-${PV}"
fi
LLAMA_UI_VERSION="${LLAMA_BUILD_NUMBER}"
SRC_URI="https://github.com/ggml-org/llama.cpp/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
fi
+MODEL_STORIES15M_URI="
+ https://huggingface.co/ggml-org/tiny-llamas/resolve/${TINY_LLAMAS_COMMIT}/stories15M-q4_0.gguf
+ -> ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf
+"
+
SRC_URI+="
https://github.com/ggml-org/llama.cpp/releases/download/${LLAMA_UI_VERSION}/llama-${LLAMA_UI_VERSION}-ui.tar.gz
- examples? (
- https://huggingface.co/ggml-org/tiny-llamas/resolve/${TINY_LLAMAS_COMMIT}/stories15M-q4_0.gguf
- -> ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf
- )
+ examples? ( ${MODEL_STORIES15M_URI} )
+ test? ( ${MODEL_STORIES15M_URI} )
"
LICENSE="MIT"
SLOT="0"
+
+# GGML CPU flags
X86_CPU_FLAGS=(
amx_bf16
amx_int8
@@ -64,10 +70,11 @@ X86_CPU_FLAGS=(
sse4_2
)
CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" )
+GGML_IUSE="${CPU_FLAGS[*]} blis cuda flexiblas openblas opencl +openmp rocm vulkan"
+unset X86_CPU_FLAGS CPU_FLAGS
-# wwma USE explained here: https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md#hip
-IUSE="${CPU_FLAGS[*]} curl openblas +openmp blis rocm cuda opencl openssl vulkan flexiblas wmma examples"
-
+IUSE="${GGML_IUSE} curl examples openssl test"
+unset GGML_IUSE
REQUIRED_USE="
?? (
openblas
@@ -75,14 +82,12 @@ REQUIRED_USE="
flexiblas
)
rocm? ( ${ROCM_REQUIRED_USE} )
- wmma? (
- rocm
- )
"
+RESTRICT="!test? ( test )"
# curl is needed for pulling models from huggingface
# numpy is used by convert_hf_to_gguf.py
-CDEPEND="
+COMMON_DEPEND="
curl? ( net-misc/curl:= )
openblas? ( sci-libs/openblas:= )
openmp? ( llvm-runtimes/openmp:= )
@@ -91,26 +96,23 @@ CDEPEND="
rocm? (
>=dev-util/hip-${ROCM_VERSION}:=
>=sci-libs/hipBLAS-${ROCM_VERSION}:=
- wmma? (
- >=sci-libs/rocWMMA-${ROCM_VERSION}:=
- )
)
cuda? ( dev-util/nvidia-cuda-toolkit:= )
openssl? ( dev-libs/openssl:= )
"
-DEPEND="${CDEPEND}
+DEPEND="${COMMON_DEPEND}
opencl? ( dev-util/opencl-headers )
vulkan? (
dev-util/spirv-headers
dev-util/vulkan-headers
)
"
-RDEPEND="${CDEPEND}
- dev-python/numpy
+RDEPEND="${COMMON_DEPEND}
+ >=dev-python/numpy-2.2.6
opencl? ( dev-libs/opencl-icd-loader )
vulkan? ( media-libs/vulkan-loader )
"
-BDEPEND="media-libs/shaderc"
+BDEPEND="vulkan? ( media-libs/shaderc )"
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
@@ -137,7 +139,7 @@ src_unpack() {
src_prepare() {
use cuda && cuda_src_prepare
cmake_src_prepare
- if use examples; then
+ if use examples || use test; then
mkdir -p "${BUILD_DIR}/tinyllamas" || die
cp "${DISTDIR}/ggml-org_models_tinyllamas_stories15M-q4_0-${TINY_LLAMAS_COMMIT}.gguf" \
"${BUILD_DIR}/tinyllamas/stories15M-q4_0.gguf" || die
@@ -150,18 +152,19 @@ src_prepare() {
src_configure() {
local mycmakeargs=(
- -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
-DLLAMA_BUILD_IS_DEV=${LLAMA_BUILD_IS_DEV}
- -DLLAMA_BUILD_TESTS=OFF
+ -DLLAMA_BUILD_TESTS=$(usex test)
-DLLAMA_BUILD_EXAMPLES=$(usex examples)
-DLLAMA_BUILD_SERVER=ON
+ -DLLAMA_TESTS_INSTALL=OFF
-DBUILD_NUMBER="${LLAMA_BUILD_NUMBER}"
-DLLAMA_CURL=$(usex curl)
-DLLAMA_OPENSSL=$(usex openssl)
- # avoid clashing with whisper.cpp
- -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
- -DCMAKE_INSTALL_RPATH="${EPREFIX}/usr/$(get_libdir)/llama.cpp"
+ # avoid clashing with sci-ml/ggml
+ -DCMAKE_INSTALL_INCLUDEDIR="include/${MY_PN}"
+ -DCMAKE_INSTALL_LIBDIR="$(get_libdir)/${MY_PN}"
+ -DCMAKE_INSTALL_RPATH="\$ORIGIN/../$(get_libdir)/${MY_PN};\$ORIGIN"
)
# GGML backends
@@ -217,21 +220,21 @@ src_configure() {
fi
if use rocm; then
- rocm_use_hipcc
+ # See ${S}/docs/build.md#hip
+ export HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -p)"
mycmakeargs+=(
-DGGML_HIP=ON
- -DAMDGPU_TARGETS=$(get_amdgpu_flags)
- -DGGML_HIP_ROCWMMA_FATTN=$(usex wmma)
+ -DGPU_TARGETS=$(get_amdgpu_flags)
)
fi
cmake_src_configure
}
-src_install() {
- cmake_src_install
- dobin "${BUILD_DIR}/bin/ggml-rpc-server"
-
- # avoid clashing with whisper.cpp
- rm -r "${ED}/usr/include" || die
+src_test() {
+ local CMAKE_SKIP_TESTS=(
+ test-download-model # due to network sandbox
+ test-arg-parser # due to network sandbox in download functions test
+ )
+ cmake_src_test
}
diff --git a/sci-misc/llama-cpp/metadata.xml b/sci-misc/llama-cpp/metadata.xml
index 0beeec129d7e..8ec70e90bb52 100644
--- a/sci-misc/llama-cpp/metadata.xml
+++ b/sci-misc/llama-cpp/metadata.xml
@@ -16,11 +16,10 @@
<use>
<flag name="blis">Build a BLIS backend</flag>
<flag name="flexiblas">Build a FlexiBLAS backend</flag>
- <flag name="rocm">Build a HIP (ROCm) backend</flag>
- <flag name="wmma">Use rocWMMA to enhance flash attention performance</flag>
<flag name="openblas">Build an OpenBLAS backend</flag>
<flag name="opencl">Build an OpenCL backend, so far only works on Adreno and Intel GPUs</flag>
<flag name="openssl">Use openssl to support HTTPS</flag>
+ <flag name="rocm">Build a HIP (ROCm) backend</flag>
</use>
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/sci-misc/stable-diffusion-cpp/metadata.xml b/sci-misc/stable-diffusion-cpp/metadata.xml
index 20d59b04b13d..183e58bc59ff 100644
--- a/sci-misc/stable-diffusion-cpp/metadata.xml
+++ b/sci-misc/stable-diffusion-cpp/metadata.xml
@@ -4,9 +4,8 @@
<use>
<flag name="blis">Build a BLIS backend</flag>
<flag name="flexiblas">Build a FlexiBLAS backend</flag>
- <flag name="rocm">Build a HIP (ROCm) backend</flag>
- <flag name="wmma">Use rocWMMA to enhance flash attention performance</flag>
<flag name="openblas">Build an OpenBLAS backend</flag>
+ <flag name="rocm">Build a HIP (ROCm) backend</flag>
<flag name="webm">Support the webm audiovisual media file format</flag>
</use>
<maintainer type="person">
diff --git a/sci-misc/stable-diffusion-cpp/stable-diffusion-cpp-9999.ebuild b/sci-misc/stable-diffusion-cpp/stable-diffusion-cpp-9999.ebuild
index e301a0baf3bd..62ff471d23d0 100644
--- a/sci-misc/stable-diffusion-cpp/stable-diffusion-cpp-9999.ebuild
+++ b/sci-misc/stable-diffusion-cpp/stable-diffusion-cpp-9999.ebuild
@@ -3,9 +3,12 @@
EAPI=8
-ROCM_VERSION="6.3"
+ROCM_VERSION="6.1"
-inherit cmake cuda rocm linux-info
+inherit cmake cuda rocm linux-info toolchain-funcs
+
+MY_PN="${PN/-/.}"
+MY_P="${MY_PN}-${PV}"
DESCRIPTION="Diffusion model(SD,Flux,Wan,Qwen Image,Z-Image,...) inference in pure C/C++"
HOMEPAGE="https://github.com/leejet/stable-diffusion.cpp"
@@ -16,55 +19,77 @@ if [[ ${PV} == *9999* ]]; then
else
MY_PV="b${PV#0_pre}"
SRC_URI="https://github.com/leejet/stable-diffusion.cpp/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
- S="${WORKDIR}/stable-diffusion-cpp-${MY_PV}"
+ S="${WORKDIR}/${MY_P}"
KEYWORDS="~amd64"
fi
LICENSE="MIT"
SLOT="0"
-CPU_FLAGS_X86=( avx avx2 f16c )
-IUSE="openblas blis rocm cuda opencl vulkan flexiblas webm webp wmma"
+# GGML CPU flags
+X86_CPU_FLAGS=(
+ amx_bf16
+ amx_int8
+ amx_tile
+ avx
+ avx2
+ avx512_bf16
+ avx512_vnni
+ avx512f
+ avx512vbmi
+ avx_vnni
+ bmi2
+ f16c
+ fma3
+ sse4_2
+)
+CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" )
+GGML_IUSE="${CPU_FLAGS[*]} blis cuda flexiblas openblas opencl +openmp rocm vulkan"
+unset X86_CPU_FLAGS CPU_FLAGS
+IUSE="${GGML_IUSE} webm webp"
+unset GGML_IUSE
REQUIRED_USE="
?? (
openblas
blis
flexiblas
)
+ rocm? ( ${ROCM_REQUIRED_USE} )
webm? (
webp
)
- wmma? (
- rocm
- )
"
-CDEPEND="
+COMMON_DEPEND="
openblas? ( sci-libs/openblas:= )
+ openmp? ( llvm-runtimes/openmp:= )
blis? ( sci-libs/blis:= )
flexiblas? ( sci-libs/flexiblas:= )
rocm? (
>=dev-util/hip-${ROCM_VERSION}:=
>=sci-libs/hipBLAS-${ROCM_VERSION}:=
- wmma? (
- >=sci-libs/rocWMMA-${ROCM_VERSION}:=
- )
)
cuda? ( dev-util/nvidia-cuda-toolkit:= )
webp? ( media-libs/libwebp )
webm? ( media-libs/libwebm )
"
-DEPEND="${CDEPEND}
+DEPEND="${COMMON_DEPEND}
opencl? ( dev-util/opencl-headers )
- vulkan? ( dev-util/vulkan-headers )
+ vulkan? (
+ dev-util/spirv-headers
+ dev-util/vulkan-headers
+ )
"
-RDEPEND="${CDEPEND}
- dev-python/numpy
+RDEPEND="${COMMON_DEPEND}
opencl? ( dev-libs/opencl-icd-loader )
vulkan? ( media-libs/vulkan-loader )
"
-BDEPEND="media-libs/shaderc"
+BDEPEND="vulkan? ( media-libs/shaderc )"
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
pkg_setup() {
if use rocm; then
@@ -75,6 +100,8 @@ pkg_setup() {
fi
fi
fi
+
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
src_prepare() {
@@ -84,23 +111,48 @@ src_prepare() {
src_configure() {
local mycmakeargs=(
- -DCMAKE_SKIP_BUILD_RPATH=ON
- -DSD_BUILD_SHARED_LIBS=OFF
- -DSD_SERVER_BUILD_FRONTEND=OFF # requires pnpm and network access
- -DGGML_NATIVE=0 # don't set march
- -DGGML_RPC=ON
- -DGENTOO_REMOVE_CMAKE_BLAS_HACK=ON
- -DSD_CUDA=$(usex cuda)
- -DSD_OPENCL=$(usex opencl)
+ -DSD_BUILD_EXAMPLES=ON
-DSD_WEBP=$(usex webp)
-DSD_USE_SYSTEM_WEBP=$(usex webp)
-DSD_WEBM=$(usex webm)
-DSD_USE_SYSTEM_WEBM=$(usex webm)
+
+ # GGML features controls
+ -DSD_CUDA=$(usex cuda)
-DSD_VULKAN=$(usex vulkan)
+ -DSD_OPENCL=$(usex opencl)
+ -DSD_RPC=ON
+
+ -DSD_BUILD_SHARED_LIBS=OFF
+ -DSD_SERVER_BUILD_FRONTEND=OFF # requires pnpm and network access
+
+ # avoid clashing with sci-ml/ggml
+ -DCMAKE_INSTALL_INCLUDEDIR="include/${MY_PN}"
+ -DCMAKE_INSTALL_LIBDIR="$(get_libdir)/${MY_PN}"
+ -DCMAKE_INSTALL_RPATH="\$ORIGIN/../$(get_libdir)/${MY_PN};\$ORIGIN"
+ )
- # avoid clashing with whisper.cpp
- -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)/stable-diffusion.cpp"
- -DCMAKE_INSTALL_RPATH="${EPREFIX}/usr/$(get_libdir)/stable-diffusion.cpp"
+ # GGML backends
+ mycmakeargs+=(
+ -DGGML_NATIVE=OFF # don't set march
+
+ # CPU Flags
+ -DGGML_SSE42=$(usex cpu_flags_x86_sse4_2)
+ -DGGML_AVX=$(usex cpu_flags_x86_avx)
+ -DGGML_AVX_VNNI=$(usex cpu_flags_x86_avx_vnni)
+ -DGGML_AVX2=$(usex cpu_flags_x86_avx2)
+ -DGGML_BMI2=$(usex cpu_flags_x86_bmi2)
+ -DGGML_AVX512=$(usex cpu_flags_x86_avx512f)
+ -DGGML_AVX512_VBMI=$(usex cpu_flags_x86_avx512vbmi)
+ -DGGML_AVX512_VNNI=$(usex cpu_flags_x86_avx512_vnni)
+ -DGGML_AVX512_BF16=$(usex cpu_flags_x86_avx512_bf16)
+ -DGGML_FMA=$(usex cpu_flags_x86_fma3)
+ -DGGML_F16C=$(usex cpu_flags_x86_f16c)
+ -DGGML_AMX_TILE=$(usex cpu_flags_x86_amx_tile)
+ -DGGML_AMX_INT8=$(usex cpu_flags_x86_amx_int8)
+ -DGGML_AMX_BF16=$(usex cpu_flags_x86_amx_bf16)
+
+ -DGGML_OPENMP=$(usex openmp)
)
if use openblas ; then
@@ -129,21 +181,12 @@ src_configure() {
fi
if use rocm; then
- rocm_use_hipcc
+ export HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -p)"
mycmakeargs+=(
- -DSD_HIPBLAS=ON -DAMDGPU_TARGETS=$(get_amdgpu_flags) -DGPU_TARGETS=$(get_amdgpu_flags)
- -DGGML_HIP_ROCWMMA_FATTN=$(usex wmma)
+ -DSD_HIPBLAS=ON
+ -DGPU_TARGETS=$(get_amdgpu_flags)
)
fi
cmake_src_configure
}
-
-src_install() {
- cmake_src_install
-
- # avoid clashing with whisper.cpp
- rm -rf "${ED}/usr/include"
-
- find "${ED}" -name "*.a" -delete || die
-}