mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-09 23:23:00 -04:00
sci-ml/ollama: 9999 refactor blas handling
Use code for potential `blas-utils.eclass`. Correctly forwarding the flexiblas dep to virtual/blas should fix failing `BLAS=Generic` case. Closes: https://bugs.gentoo.org/969379 Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
This commit is contained in:
@@ -6,8 +6,11 @@
|
|||||||
<name>Paul Zander</name>
|
<name>Paul Zander</name>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
<use>
|
<use>
|
||||||
|
<flag name="blis">Use <pkg>sci-libs/blis</pkg> as blas provider</flag>
|
||||||
<flag name="cuda">Enable NVIDIA CUDA support</flag>
|
<flag name="cuda">Enable NVIDIA CUDA support</flag>
|
||||||
|
<flag name="flexiblas">Use <pkg>sci-libs/flexiblas</pkg> as blas provider</flag>
|
||||||
<flag name="mkl">Use <pkg>sci-libs/mkl</pkg> for blas, lapack and sparse blas routines</flag>
|
<flag name="mkl">Use <pkg>sci-libs/mkl</pkg> for blas, lapack and sparse blas routines</flag>
|
||||||
|
<flag name="openblas">Use <pkg>sci-libs/openblas</pkg> as blas provider</flag>
|
||||||
<flag name="rocm">Enable ROCm gpu computing support</flag>
|
<flag name="rocm">Enable ROCm gpu computing support</flag>
|
||||||
</use>
|
</use>
|
||||||
<upstream>
|
<upstream>
|
||||||
|
|||||||
@@ -26,9 +26,15 @@ fi
|
|||||||
LICENSE="MIT"
|
LICENSE="MIT"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
|
|
||||||
IUSE="blas cuda rocm mkl vulkan"
|
IUSE="cuda rocm vulkan"
|
||||||
# IUSE+=" opencl"
|
# IUSE+=" opencl"
|
||||||
|
|
||||||
|
BLAS_BACKENDS="blis mkl openblas"
|
||||||
|
BLAS_REQUIRED_USE="blas? ( ?? ( ${BLAS_BACKENDS} ) )"
|
||||||
|
|
||||||
|
IUSE+=" blas flexiblas ${BLAS_BACKENDS}"
|
||||||
|
REQUIRED_USE+=" ${BLAS_REQUIRED_USE}"
|
||||||
|
|
||||||
declare -rgA CPU_FEATURES=(
|
declare -rgA CPU_FEATURES=(
|
||||||
[AVX2]="x86"
|
[AVX2]="x86"
|
||||||
[AVX512F]="x86"
|
[AVX512F]="x86"
|
||||||
@@ -51,14 +57,24 @@ add_cpu_features_use
|
|||||||
|
|
||||||
RESTRICT="mirror test"
|
RESTRICT="mirror test"
|
||||||
|
|
||||||
|
# FindBLAS.cmake
|
||||||
|
# If Fortran is an enabled compiler it sets BLAS_mkl_THREADING to gnu. -> sci-libs/mkl[gnu-openmp]
|
||||||
|
# If Fortran is not an enabled compiler it sets BLAS_mkl_THREADING to intel. -> sci-libs/mkl[llvm-openmp]
|
||||||
COMMON_DEPEND="
|
COMMON_DEPEND="
|
||||||
blas? (
|
blas? (
|
||||||
!mkl? (
|
blis? (
|
||||||
virtual/blas
|
sci-libs/blis:=
|
||||||
|
)
|
||||||
|
flexiblas? (
|
||||||
|
sci-libs/flexiblas[blis?,mkl?,openblas?]
|
||||||
)
|
)
|
||||||
mkl? (
|
mkl? (
|
||||||
sci-libs/mkl[llvm-openmp]
|
sci-libs/mkl[llvm-openmp]
|
||||||
)
|
)
|
||||||
|
openblas? (
|
||||||
|
sci-libs/openblas
|
||||||
|
)
|
||||||
|
virtual/blas[flexiblas=]
|
||||||
)
|
)
|
||||||
cuda? (
|
cuda? (
|
||||||
dev-util/nvidia-cuda-toolkit:=
|
dev-util/nvidia-cuda-toolkit:=
|
||||||
@@ -264,10 +280,26 @@ src_configure() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
if use blas; then
|
if use blas; then
|
||||||
if use mkl; then
|
if use flexiblas ; then
|
||||||
|
mycmakeargs+=(
|
||||||
|
-DGGML_BLAS_VENDOR="FlexiBLAS"
|
||||||
|
)
|
||||||
|
elif use blis ; then
|
||||||
|
mycmakeargs+=(
|
||||||
|
-DGGML_BLAS_VENDOR="FLAME"
|
||||||
|
)
|
||||||
|
elif use mkl ; then
|
||||||
mycmakeargs+=(
|
mycmakeargs+=(
|
||||||
-DGGML_BLAS_VENDOR="Intel10_64lp"
|
-DGGML_BLAS_VENDOR="Intel10_64lp"
|
||||||
)
|
)
|
||||||
|
# elif use nvhpc ; then
|
||||||
|
# mycmakeargs+=(
|
||||||
|
# -DGGML_BLAS_VENDOR="NVHPC"
|
||||||
|
# )
|
||||||
|
elif use openblas ; then
|
||||||
|
mycmakeargs+=(
|
||||||
|
-DGGML_BLAS_VENDOR="OpenBLAS"
|
||||||
|
)
|
||||||
else
|
else
|
||||||
mycmakeargs+=(
|
mycmakeargs+=(
|
||||||
-DGGML_BLAS_VENDOR="Generic"
|
-DGGML_BLAS_VENDOR="Generic"
|
||||||
|
|||||||
Reference in New Issue
Block a user