Package Details: whisper.cpp-vulkan 1.7.1-4

Git Clone URL: https://aur.archlinux.org/whisper.cpp.git (read-only, click to copy)
Package Base: whisper.cpp
Description: Port of OpenAI's Whisper model in C/C++ (with Vulkan optimizations)
Upstream URL: https://github.com/ggerganov/whisper.cpp
Licenses: MIT
Conflicts: whisper.cpp
Provides: whisper.cpp
Submitter: robertfoster
Maintainer: robertfoster
Last Packager: robertfoster
Votes: 11
Popularity: 0.90
First Submitted: 2023-03-10 17:32 (UTC)
Last Updated: 2024-11-04 13:56 (UTC)

Latest Comments

1 2 3 Next › Last »

Marzal commented on 2024-11-04 13:37 (UTC) (edited on 2024-11-04 13:44 (UTC) by Marzal)

Hi, there is copy/paste errata on package_whisper.cpp-vulkan()

cd "${pkgbase}-openvino"

Also did you check -DCMAKE_SKIP_RPATH=YES ? fixes a lot of warnings on my compilations.

My /etc/makepkg.conf looks like upstream https://gitlab.archlinux.org/archlinux/packaging/packages/pacman/-/blob/main/makepkg.conf?ref_type=heads#L98 I think Arch enabled debug a while ago (1 year) https://gitlab.archlinux.org/archlinux/packaging/packages/pacman/-/commit/90bf367e61b4f77f8351d0412be3d0c4ddadb85a

robertfoster commented on 2024-11-04 11:58 (UTC) (edited on 2024-11-04 12:12 (UTC) by robertfoster)

@Marzal clblas removed and vulkan added. (!debug) option is already the default (check /etc/makepkg.conf).

@sixtyfive, here there are no models, it's up to you.

@BrainDamage. I don't agree with you. You can always manually edit the PKGBUILD, skip the makedepends or use the chaotic aur repo to fetch binaries. AUR is not a personal repo, is public

BrainDamage commented on 2024-10-23 09:02 (UTC) (edited on 2024-10-23 09:02 (UTC) by BrainDamage)

I'd strongly suggest to split the package into separate files, there's nothing in their compilation steps in common apart from downloading <1MB sources and in order to do that, you're making impossible to programmatically select the packages and forcing everyone to either:

  • install the 5GB/10GB of cuda/openvino make dependencies irregardless if they need the relevant packages

  • edit the pkbuild every update cutting out the unneeded packages, operation further complicated by the unnecessary pkgbuild splitting functionality plastering the sections all around the code

Official arch packages always build with all variants because they end up in a public repository, so it doesn't make sense for them to even consider selecting a single one so they often adopt a split system for maintainer's ease. Here we're talking about personal repos and I'd argue that being able to save downloading 5/10/15 GB of useless makedeps would be a worthy feature

You'd have to edit the version number/hash in 3 files instead of one, but in exchange the pkgbuild themselves would be much cleaner

sixtyfive commented on 2024-10-21 16:09 (UTC) (edited on 2024-10-21 16:10 (UTC) by sixtyfive)

With this package, (1) how does one access "command"? (as in ./command -m ./models/ggml-small.en.bin -t 8) and (2) where in the filesystem are the models stored? Thank you kindly!

homocomputeris commented on 2024-10-11 16:59 (UTC) (edited on 2024-10-11 17:05 (UTC) by homocomputeris)

The flag for openblas has changed:

make clean
GGML_OPENBLAS=1 make -j
ifdef GGML_OPENBLAS
    MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas)
    MK_CFLAGS   += $(shell pkg-config --cflags-only-other openblas)
    MK_LDFLAGS  += $(shell pkg-config --libs openblas)
    OBJ_GGML    += ggml/src/ggml-blas.o
endif # GGML_OPENBLAS

ifdef GGML_OPENBLAS64
    MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas64)
    MK_CFLAGS   += $(shell pkg-config --cflags-only-other openblas64)
    MK_LDFLAGS  += $(shell pkg-config --libs openblas64)
    OBJ_GGML    += ggml/src/ggml-blas.o
endif # GGML_OPENBLAS64

Marzal commented on 2024-10-11 16:38 (UTC) (edited on 2024-10-19 22:17 (UTC) by Marzal)

CLBLAST it's no longer supported on 1.7 https://github.com/ggerganov/whisper.cpp/issues/2292

But Vulkan it's faster on my RX580

makedepends=(
  'vulkan-icd-loader'
  'cmake'
  'git'
)

  local _cmake_vulkan_args=(
    "${_cmake_args[@]}"
    -DGGML_VULKAN=ON
  )

package_whisper.cpp-vulkan() {
  pkgdesc="$pkgdesc (with vulkan optimizations)"
  depends+=('vulkan-icd-loader vulkan-driver')
  provides=("${pkgbase}=${pkgver}")
  conflicts=("${pkgbase}")

  cd "${pkgbase}-vulkan"
  DESTDIR="${pkgdir}" cmake --install build
  _package
}

I would also add: OPTIONS+=(!debug) after makdepends or source

and -DCMAKE_SKIP_RPATH=YES in build()

PD: +1 to NOT have this packages as a split package, compiling cuda + openvino is overkill for my computer. But thanks for your work in any case. https://bbs.archlinux.org/viewtopic.php?id=223171

homocomputeris commented on 2024-10-10 23:12 (UTC)

Where are models supposed to be placed?

dreieck commented on 2024-10-10 11:12 (UTC) (edited on 2024-10-13 10:12 (UTC) by dreieck)

Your packages llama.cpp-vulkan-git and whisper.cpp-clblas do conflict which each other, which is not reflected in the conflicts array.

Please add the corresponding conflicts entry, or, to ensure compatibility, think of stripping out the libggml stuff and depend on libggml:

error: failed to commit transaction (conflicting files)
/usr/include/ggml-alloc.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-backend.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-blas.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-cann.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-cuda.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-kompute.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-metal.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-rpc.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-sycl.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/include/ggml-vulkan.h exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
/usr/lib/libggml.so exists in both 'llama.cpp-vulkan-git' and 'whisper.cpp-clblas'
Errors occurred, no packages were upgraded.

Regards!

dreieck commented on 2024-10-10 11:06 (UTC)

You need to install the license file:

whisper.cpp-clblas E: Uncommon license identifiers such as 'MIT' require license files below /usr/share/licenses/whisper.cpp-clblas/ or switching to common license identifiers. Found 0/1 required license files.

Regards and thanks for maintaining!

homocomputeris commented on 2024-10-07 22:17 (UTC)

Can the CUDA dependency be dropped somehow for Intel?