]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/log
pkg/ggml/sources/whisper.cpp
7 months agokompute: add backend registry / device interfaces (llama/10045)
Sergio López [Wed, 30 Oct 2024 16:01:52 +0000 (17:01 +0100)]
kompute: add backend registry / device interfaces (llama/10045)

Get in line with the other backends by supporting the newer
backend/device registry interfaces.

Signed-off-by: Sergio Lopez <redacted>
7 months agoggml : fix memory leaks when loading invalid gguf files (llama/10094)
Diego Devesa [Wed, 30 Oct 2024 13:51:21 +0000 (14:51 +0100)]
ggml : fix memory leaks when loading invalid gguf files (llama/10094)

* ggml : fix gguf string leak when reading kv pairs fails

* ggml : avoid crashing with GGML_ABORT when the KV has an invalid type

* ggml : avoid crashing on failed memory allocations when loading a gguf file

7 months agoggml : add Q4_0_8_8 RISC-V GEMV and GEMM kernels (llama/10029)
xctan [Wed, 30 Oct 2024 07:00:40 +0000 (15:00 +0800)]
ggml : add Q4_0_8_8 RISC-V GEMV and GEMM kernels (llama/10029)

* ggml : RISC-V vector gemv for q4_0_8x8

* ggml : Added WIP rvv q4_0_8x8 gemm

* ggml : Added initial implementation of rvv gemm

* ggml : optimize gemm to avoid register spillover

* ggml : Fix GCC rvv load alignment issue

* ggml : Format gemm rvv code

* ggml : Fix a typo in RVV q4_0_8_8 GEMM

7 months agollama : refactor model loader with backend registry (llama/10026)
Diego Devesa [Wed, 30 Oct 2024 01:01:23 +0000 (02:01 +0100)]
llama : refactor model loader with backend registry (llama/10026)

7 months agoggml: Add POOL2D OP for GPU acceleration to the Vulkan backend in the MobileVLM model...
Changyeon Kim [Tue, 29 Oct 2024 08:52:56 +0000 (17:52 +0900)]
ggml: Add POOL2D OP for GPU acceleration to the Vulkan backend in the MobileVLM model. (llama/9763)

* ggml: Add POOL2D OP for GPU ACC to the Vulkan.

- The MobileVLM model now supports inference acceleration through GPU by utilizing the Vulkan backend.
- A GGML_OP_POOL_2D shader has been added. (Pooling)
- The encoding performance of the CLIP model improved from 2.8s on the CPU to 0.7s on the GPU.

Signed-off-by: Changyeon Kim <redacted>
* [fix] Correct the incorrect order of the parameters.

fix casting to int.

Signed-off-by: Changyeon Kim <redacted>
---------

Signed-off-by: Changyeon Kim <redacted>
7 months agomusa: workaround for Guilty Lockup in cleaning src0 (llama/10042)
R0CKSTAR [Mon, 28 Oct 2024 09:02:48 +0000 (17:02 +0800)]
musa: workaround for Guilty Lockup in cleaning src0 (llama/10042)

Signed-off-by: Xiaodong Ye <redacted>
7 months agocmake : make it possible linking ggml as external lib (ggml/1003)
Yuri Khrustalev [Sat, 2 Nov 2024 09:09:12 +0000 (05:09 -0400)]
cmake : make it possible linking ggml as external lib (ggml/1003)

7 months agometal : fix minor string leaks (ggml/1004)
Plamen Minev [Fri, 1 Nov 2024 14:55:10 +0000 (16:55 +0200)]
metal : fix minor string leaks (ggml/1004)

7 months agoscripts : update sync
Georgi Gerganov [Fri, 15 Nov 2024 06:34:49 +0000 (08:34 +0200)]
scripts : update sync

7 months agoci : fix building workflow for linux/arm64 container (#2555)
Raiya Araki [Fri, 15 Nov 2024 09:07:17 +0000 (18:07 +0900)]
ci : fix building workflow for linux/arm64 container (#2555)

7 months agoruby : extend API (#2551)
KITAITI Makoto [Wed, 13 Nov 2024 19:52:56 +0000 (04:52 +0900)]
ruby : extend API (#2551)

* Handle objs in Ruby code

* Add task to make Makefile

* Share commont constance in test suites

* Add model-related APIs

* Add Whisper::Model class

* Add tests for Whisper::Model

* Add missing LDFLAG -lstdc++

* Add tests for Whisper.log_set

* Add Whisper.set_log

* Define log level

* Add document on logging

* Add license section to README

* Add document on Whisper::Model

* Fix examples in README

* Add test for Model with GC

* Make dependency on Makefile more accurate

* Fix bug about Whisper::Model and GC

7 months agowhisper.swiftui : add model download list & bench methods (#2546)
Jhen-Jie Hong [Wed, 13 Nov 2024 19:51:34 +0000 (03:51 +0800)]
whisper.swiftui : add model download list & bench methods (#2546)

* swift : fix resources & exclude build

* whisper : impl whisper_timings struct & api

* whisper.swiftui : model list & bench methods

* whisper : return ptr for whisper_get_timings

* revert unnecessary change

* whisper : avoid designated initializer

* whisper.swiftui: code style changes

* whisper.swiftui : get device name / os from UIDevice

* whisper.swiftui : fix UIDevice usage

* whisper.swiftui : add memcpy and ggml_mul_mat (commented)

7 months agoruby : fix the instructions (#2548)
Wilson Silva [Wed, 13 Nov 2024 19:47:42 +0000 (19:47 +0000)]
ruby : fix the instructions (#2548)

#prompt doesn't exist but #initial_prompt does

7 months agoggml : vulkan logs (#2547)
thewh1teagle [Wed, 13 Nov 2024 19:47:15 +0000 (21:47 +0200)]
ggml : vulkan logs (#2547)

7 months agoexamples : fix ffmpeg v5 build (#2543)
Stefan Sydow [Wed, 13 Nov 2024 19:41:52 +0000 (20:41 +0100)]
examples : fix ffmpeg v5 build (#2543)

remove call to 'av_register_all()' which does not exist in ffmpeg v5
anymore.

7 months agowhisper : fix extra memory usage (#2534)
Vin Misra [Wed, 6 Nov 2024 21:02:11 +0000 (13:02 -0800)]
whisper : fix extra memory usage (#2534)

* passing samples_padded by ref to the threads.

* passing samples_padded by ref to the threads.

---------

Co-authored-by: Vinith Misra <redacted>
7 months agowhisper : backend registry init before model load
Georgi Gerganov [Thu, 31 Oct 2024 20:53:46 +0000 (22:53 +0200)]
whisper : backend registry init before model load

7 months agotalk-llama : sync llama.cpp
Georgi Gerganov [Thu, 31 Oct 2024 20:29:22 +0000 (22:29 +0200)]
talk-llama : sync llama.cpp

7 months agosync : ggml
Georgi Gerganov [Thu, 31 Oct 2024 20:26:28 +0000 (22:26 +0200)]
sync : ggml

7 months agoggml : add AMX backend (llama/8998)
Ma Mingfei [Sat, 26 Oct 2024 06:43:40 +0000 (09:43 +0300)]
ggml : add AMX backend (llama/8998)

7 months agometal : support permuted matrix multiplicaions (llama/10033)
Georgi Gerganov [Fri, 25 Oct 2024 19:26:15 +0000 (22:26 +0300)]
metal : support permuted matrix multiplicaions (llama/10033)

* metal : support permuted matrix multiplicaions

ggml-ci

* cont : use nb01 directly for row steps

ggml-ci

* cont : add comments [no ci]

* metal : minor refactor

* metal : minor

7 months agoCUDA: fix insufficient buffer clearing for MMQ (llama/10032)
Johannes Gäßler [Thu, 24 Oct 2024 12:40:23 +0000 (14:40 +0200)]
CUDA: fix insufficient buffer clearing for MMQ (llama/10032)

7 months agoCUDA: fix MMQ for non-contiguous src0, add tests (llama/10021)
Johannes Gäßler [Thu, 24 Oct 2024 09:09:36 +0000 (11:09 +0200)]
CUDA: fix MMQ for non-contiguous src0, add tests (llama/10021)

* CUDA: fix MMQ for non-contiguous src0, add tests

* revise test code

7 months agoincrease cuda_cpy block size (ggml/996)
bssrdf [Wed, 23 Oct 2024 18:34:00 +0000 (14:34 -0400)]
increase cuda_cpy block size (ggml/996)

Co-authored-by: bssrdf <redacted>
7 months agometal : add POOL2D and fix IM2COL (llama/9943)
Jun Hee Yoo [Wed, 23 Oct 2024 10:33:45 +0000 (19:33 +0900)]
metal : add POOL2D and fix IM2COL (llama/9943)

* add pool_2d

Signed-off-by: Junhee Yoo <redacted>
* fix im2col and add unittest for N>=1024

Signed-off-by: Junhee Yoo <redacted>
* add tests for N % 1024 != 0

Signed-off-by: Junhee Yoo <redacted>
* remove trailing whitespaces

Signed-off-by: Junhee Yoo <redacted>
* apply suggestions

Signed-off-by: Junhee Yoo <redacted>
* apply more optimization

- original IM2COL kernel + _ext with MIN()

Signed-off-by: Junhee Yoo <redacted>
* apply review: change kernel name of pool_2d

Signed-off-by: Junhee Yoo <redacted>
* apply review

Signed-off-by: Junhee Yoo <redacted>
* fix more formatting and enhance readability

Signed-off-by: Junhee Yoo <redacted>
---------

Signed-off-by: Junhee Yoo <redacted>
7 months agoAdapt to dynamically loadable backends mechanism (llama/9970)
leo-pony [Tue, 22 Oct 2024 08:16:01 +0000 (16:16 +0800)]
Adapt to dynamically loadable backends mechanism (llama/9970)

* [CANN] Adapt to dynamically loadable backends mechanism

* Fix the Bug: inference running result is garbled in debug running model for LM models who's type is Q4_0 class

* Handle the review comments of this pull request

7 months agoggml : add asserts for type conversion in fattn kernels (llama/9971)
Georgi Gerganov [Mon, 21 Oct 2024 13:20:46 +0000 (16:20 +0300)]
ggml : add asserts for type conversion in fattn kernels (llama/9971)

ggml-ci

7 months agorpc : pack only RPC structs (llama/9959)
Radoslav Gerganov [Mon, 21 Oct 2024 10:35:40 +0000 (13:35 +0300)]
rpc : pack only RPC structs (llama/9959)

7 months agofix mul_mat_vec_q and *_vec_q error (llama/9939)
Neo Zhang Jianyu [Mon, 21 Oct 2024 06:26:09 +0000 (14:26 +0800)]
fix mul_mat_vec_q and *_vec_q error (llama/9939)

Co-authored-by: arthw <redacted>
7 months agorpc : backend refactoring (llama/9912)
Radoslav Gerganov [Fri, 18 Oct 2024 11:33:58 +0000 (14:33 +0300)]
rpc : backend refactoring (llama/9912)

* rpc : refactor backend

Use structs for RPC request/response messages

* rpc : refactor server

7 months agoAdd SYCL Backend registry, device and Event Interfaces (llama/9705)
Ouadie EL FAROUKI [Fri, 18 Oct 2024 05:46:16 +0000 (06:46 +0100)]
Add SYCL Backend registry, device and Event Interfaces (llama/9705)

* implemented missing SYCL event APIs

* sycl : Added device and backend reg interfaces

* Restructured ggml-sycl.cpp

7 months agoadd amx kernel for gemm (llama/8998)
Ma Mingfei [Fri, 18 Oct 2024 05:34:36 +0000 (13:34 +0800)]
add amx kernel for gemm (llama/8998)

add intel amx isa detection

add vnni kernel for gemv cases

add vnni and amx kernel support for block_q8_0

code cleanup

fix packing B issue

enable openmp

fine tune amx kernel

switch to aten parallel pattern

add error message for nested parallelism

code cleanup

add f16 support in ggml-amx

add amx kernels for QK_K quant formats: Q4_K, Q5_K, Q6_K and IQ4_XS

update CMakeList

update README

fix some compilation warning

fix compiler warning when amx is not enabled

minor change

ggml-ci

move ggml_amx_init from ggml.c to ggml-amx/mmq.cpp

ggml-ci

update CMakeLists with -mamx-tile, -mamx-int8 and -mamx-bf16

ggml-ci

add amx as an ggml-backend

update header file, the old path for immintrin.h has changed to ggml-cpu-impl.h

minor change

update CMakeLists.txt

minor change

apply weight prepacking in set_tensor method in ggml-backend

fix compile error

ggml-ci

minor change

ggml-ci

update CMakeLists.txt

ggml-ci

add march dependency

minor change

ggml-ci

change ggml_backend_buffer_is_host to return false for amx backend

ggml-ci

fix supports_op

use device reg for AMX backend

ggml-ci

minor change

ggml-ci

minor change

fix rebase

set .buffer_from_host_ptr to be false for AMX backend

7 months agovulkan : add backend registry / device interfaces (llama/9721)
Diego Devesa [Thu, 17 Oct 2024 00:46:58 +0000 (02:46 +0200)]
vulkan : add backend registry / device interfaces (llama/9721)

* vulkan : add backend registry / device interfaces

* llama : print devices used on model load

7 months agofix: allocating CPU buffer with size `0` (llama/9917)
Gilad S [Wed, 16 Oct 2024 23:34:22 +0000 (02:34 +0300)]
fix: allocating CPU buffer with size `0` (llama/9917)

7 months agofix: use `vm_allocate` to allocate CPU backend buffer on macOS (llama/9875)
Gilad S [Wed, 16 Oct 2024 22:36:51 +0000 (01:36 +0300)]
fix: use `vm_allocate` to allocate CPU backend buffer on macOS (llama/9875)

* fix: use `vm_allocate` to allocate CPU backend buffer on macOS

* fix: switch to `posix_memalign` to keep existing `free()` usages work

* feat: move `GGML_ALIGNED_MALLOC` to `ggml-backend-impl.h`, add support for `vm_allocate` on macOS

* style: formatting

* fix: move const outside of `#ifndef`

* style: formatting

* fix: unused var

* fix: transform `GGML_ALIGNED_MALLOC` and `GGML_ALIGNED_FREE` into functions and add them to `ggml-impl.h`

* fix: unused var

* fix: page align to `GGUF_DEFAULT_ALIGNMENT`

* fix: page align to `TENSOR_ALIGNMENT`

* fix: convert `TENSOR_ALIGNMENT` to a macro

* fix: increase page size to `32` on iOS

* fix: iOS page size

* fix: `hbw_posix_memalign` alignment

7 months agoCUDA: fix 1D im2col, add tests (ggml/993)
Johannes Gäßler [Fri, 18 Oct 2024 07:24:44 +0000 (09:24 +0200)]
CUDA: fix 1D im2col, add tests (ggml/993)

7 months agoFix cann compilation error (llama/9891)
leo-pony [Wed, 16 Oct 2024 00:51:46 +0000 (08:51 +0800)]
Fix cann compilation error (llama/9891)

Fix cann compilation error after merging llama.cpp supports dynamically loadable backends.

7 months agoVectorize load instructions in dmmv f16 CUDA kernel (llama/9816)
agray3 [Mon, 14 Oct 2024 00:49:08 +0000 (01:49 +0100)]
Vectorize load instructions in dmmv f16 CUDA kernel (llama/9816)

* Vectorize load instructions in dmmv f16 CUDA kernel

Replaces scalar with vector load instructions, which substantially
improves performance on NVIDIA HBM GPUs, e.g. gives a 1.27X overall
speedup for Meta-Llama-3-8B-Instruct-F16 BS1 inference evaluation on
H100 SXM 80GB HBM3. On GDDR GPUs, there is a slight (1.01X) speedup.

* addressed comment

* Update ggml/src/ggml-cuda/dmmv.cu

Co-authored-by: Johannes Gäßler <redacted>
---------

Co-authored-by: Johannes Gäßler <redacted>
7 months agoggml : move more prints to the ggml log system (llama/9839)
Diego Devesa [Fri, 11 Oct 2024 13:34:45 +0000 (15:34 +0200)]
ggml : move more prints to the ggml log system (llama/9839)

* ggml : move more prints to the ggml log system

* show BLAS OpenMP warnings in all builds using debug print

7 months agorpc : add backend registry / device interfaces (llama/9812)
Diego Devesa [Thu, 10 Oct 2024 18:14:55 +0000 (20:14 +0200)]
rpc : add backend registry / device interfaces (llama/9812)

* rpc : add backend registry / device interfaces

* llama : add llama_supports_rpc API

* ggml_backend_rpc_start_rpc_server -> ggml_backend_rpc_start_server

7 months agomusa: add docker image support (llama/9685)
R0CKSTAR [Thu, 10 Oct 2024 18:10:37 +0000 (02:10 +0800)]
musa: add docker image support (llama/9685)

* mtgpu: add docker image support

Signed-off-by: Xiaodong Ye <redacted>
* mtgpu: enable docker workflow

Signed-off-by: Xiaodong Ye <redacted>
---------

Signed-off-by: Xiaodong Ye <redacted>
7 months agoggml : fix BLAS with unsupported types (llama/9775)
Diego Devesa [Tue, 8 Oct 2024 12:21:43 +0000 (14:21 +0200)]
ggml : fix BLAS with unsupported types (llama/9775)

* ggml : do not use BLAS with types without to_float

* ggml : return pointer from ggml_internal_get_type_traits to avoid unnecessary copies

* ggml : rename ggml_internal_get_type_traits -> ggml_get_type_traits

it's not really internal if everybody uses it

7 months agoggml : add backend registry / device interfaces to BLAS backend (llama/9752)
Diego Devesa [Mon, 7 Oct 2024 19:55:08 +0000 (21:55 +0200)]
ggml : add backend registry / device interfaces to BLAS backend (llama/9752)

* ggml : add backend registry / device interfaces to BLAS backend

* fix mmap usage when using host buffers

7 months agoUpdate building for Android (llama/9672)
Andrew Minh Nguyen [Mon, 7 Oct 2024 16:37:31 +0000 (09:37 -0700)]
Update building for Android (llama/9672)

* docs : clarify building Android on Termux

* docs : update building Android on Termux

* docs : add cross-compiling for Android

* cmake : link dl explicitly for Android

7 months agoggml : add metal backend registry / device (llama/9713)
Georgi Gerganov [Mon, 7 Oct 2024 15:27:51 +0000 (18:27 +0300)]
ggml : add metal backend registry / device (llama/9713)

* ggml : add metal backend registry / device

ggml-ci

* metal : fix names [no ci]

* metal : global registry and device instances

ggml-ci

* cont : alternative initialization of global objects

ggml-ci

* llama : adapt to backend changes

ggml-ci

* fixes

* metal : fix indent

* metal : fix build when MTLGPUFamilyApple3 is not available

ggml-ci

* fix merge

* metal : avoid unnecessary singleton accesses

ggml-ci

* metal : minor fix [no ci]

* metal : g_state -> g_ggml_ctx_dev_main [no ci]

* metal : avoid reference of device context in the backend context

ggml-ci

* metal : minor [no ci]

* metal : fix maxTransferRate check

* metal : remove transfer rate stuff

---------

Co-authored-by: slaren <redacted>
7 months agometal : single allocation of encode_async block (llama/9747)
Paul Tsochantaris [Mon, 7 Oct 2024 12:26:31 +0000 (13:26 +0100)]
metal : single allocation of encode_async block (llama/9747)

* Single allocation of encode_async block with non-ARC capture in ggml-metal.m

* Moving Block_release to the deallocation code

* Release encode block when re-setting encoding buffer count if needed

* Update ggml/src/ggml-metal.m

---------

Co-authored-by: Georgi Gerganov <redacted>
7 months agoggml-alloc : remove buffer_id from leaf_alloc (ggml/987)
Daniel Bevenius [Wed, 9 Oct 2024 14:40:35 +0000 (16:40 +0200)]
ggml-alloc : remove buffer_id from leaf_alloc (ggml/987)

This commit removes the buffer_id field from the leaf_alloc struct.

The motivation for is that this field is only written to and never
read/used as far as I can tell. Each tensor_alloc has a buffer_id field
and this is what caused me to look into this more closely, to
understand what the buffer_id in leaf_alloc was used for.

7 months agoscripts : sync amx
Georgi Gerganov [Thu, 31 Oct 2024 20:13:24 +0000 (22:13 +0200)]
scripts : sync amx

7 months agoggml : alloc ggml_contexts on the heap (#2525)
Georgi Gerganov [Thu, 31 Oct 2024 20:00:09 +0000 (22:00 +0200)]
ggml : alloc ggml_contexts on the heap (#2525)

* whisper : reduce ggml_context usage

* ggml : allocate contexts on the heap (v2)

* ggml : aligned malloc -> malloc

7 months agoci : fix openblas build (#2511)
Georgi Gerganov [Wed, 30 Oct 2024 10:58:26 +0000 (12:58 +0200)]
ci : fix openblas build (#2511)

* ci : fix openblas build

* cont : would this work?

* ci : I'm sorry, windows

* cont : disabled wrong build

* ci : fix openblas build with pkgconfiglite (#2517)

- choco install pkgconfiglite (vcpkg-pkgconf doesn't contain pkg-config executable?)
- vcpkg install openblas (otherwise it is not detected now)

---------

Co-authored-by: Tamotsu Takahashi <redacted>
7 months agoscripts : add turbo-q8_0 to the benchmark
Georgi Gerganov [Tue, 29 Oct 2024 17:37:24 +0000 (19:37 +0200)]
scripts : add turbo-q8_0 to the benchmark

7 months agowhisper : minor compile warning
Georgi Gerganov [Tue, 29 Oct 2024 17:27:52 +0000 (19:27 +0200)]
whisper : minor compile warning

8 months agowhisper : move new-segment callback after DTW step (#2515)
jettoblack [Tue, 29 Oct 2024 06:47:21 +0000 (02:47 -0400)]
whisper : move new-segment callback after DTW step (#2515)

8 months agoruby : fix installation test (#2519)
KITAITI Makoto [Tue, 29 Oct 2024 06:45:37 +0000 (15:45 +0900)]
ruby : fix installation test (#2519)

8 months agoruby : add more APIs (#2518)
KITAITI Makoto [Mon, 28 Oct 2024 17:23:23 +0000 (02:23 +0900)]
ruby : add more APIs (#2518)

* Add test for built package existence

* Add more tests for Whisper::Params

* Add more Whisper::Params attributes

* Add tests for callbacks

* Add progress and abort callback features

* [skip ci] Add prompt usage in README

* Change prompt text in example

8 months agoruby : support new-segment callback (#2506)
KITAITI Makoto [Mon, 28 Oct 2024 13:43:27 +0000 (22:43 +0900)]
ruby : support new-segment callback (#2506)

* Add Params#new_segment_callback= method

* Add tests for Params#new_segment_callback=

* Group tests for #transcribe

* Don't use static for thread-safety

* Set new_segment_callback only when necessary

* Remove redundant check

* [skip ci] Add Ruby version README

* Revert "Group tests for #transcribe"

This reverts commit 71b65b00ccf1816c9ea8a247fb30f71bc09707d3.

* Revert "Add tests for Params#new_segment_callback="

This reverts commit 81e6df3bab7662da5379db51f28a989db7408c02.

* Add test for Context#full_n_segments

* Add Context#full_n_segments

* Add tests for lang API

* Add lang API

* Add tests for Context#full_lang_id API

* Add Context#full_lang_id

* Add abnormal test cases for lang

* Raise appropriate errors from lang APIs

* Add tests for Context#full_get_segment_t{0,1} API

* Add Context#full_get_segment_t{0,1}

* Add tests for Context#full_get_segment_speaker_turn_next API

* Add Context#full_get_segment_speaker_turn_next

* Add tests for Context#full_get_segment_text

* Add Context#full_get_setgment_text

* Add tests for Params#new_segment_callback=

* Run new segment callback

* Split tests to multiple files

* Use container struct for new segment callback

* Add tests for Params#new_segment_callback_user_data=

* Add Whisper::Params#new_user_callback_user_data=

* Add GC-related test for new segment callback

* Protect new segment callback related structs from GC

* Add meaningful test for build

* Rename: new_segment_callback_user_data -> new_segment_callback_container

* Add tests for Whisper::Segment

* Add Whisper::Segment and Whisper::Context#each_segment

* Extract c_ruby_whisper_callback_container_allocate()

* Add test for Whisper::Params#on_new_segment

* Add Whisper::Params#on_new_egment

* Assign symbol IDs to variables

* Make extsources.yaml simpler

* Update README

* Add document comments

* Add test for calling Whisper::Params#on_new_segment multiple times

* Add file dependencies to GitHub actions config and .gitignore

* Add more files to ext/.gitignore

8 months agoruby : add Metal support (#2516)
KITAITI Makoto [Mon, 28 Oct 2024 11:08:09 +0000 (20:08 +0900)]
ruby : add Metal support (#2516)

8 months agowhisper : fix index overflow in token-level timestamp logic (#2505)
Josscii [Wed, 23 Oct 2024 12:14:03 +0000 (20:14 +0800)]
whisper : fix index overflow in token-level timestamp logic (#2505)

8 months agoreadme : update links and make commands (#2489)
toboil-features [Thu, 17 Oct 2024 10:25:18 +0000 (13:25 +0300)]
readme : update links and make commands (#2489)

* Update links to headers in README.md

* Add link to Vulkan section in README.md

* Add "-j" for parallelism for "make" in README.md

* Update README.md

8 months agoruby : fix bindings (#2484)
KITAITI Makoto [Wed, 16 Oct 2024 15:44:04 +0000 (00:44 +0900)]
ruby : fix bindings (#2484)

* Improve Rakefile

* Remove intermediate files

* Remove unnecessary manipulations from extconf.rb

* Add README and LINCENSE to source files

* Manage ext source files using YAML file

* Use extsources.yaml to include files into gem package file

* Add git-managed source files to build dependency

* Add test task

* Download model for test if not exists

* Add test for build

* Ignore gem package directory

* Enable GitHub action for Ruby binding

* Fix model name

* Build lib file for test

* Use extension for each platform

* Use extension for each platform on testing

* Move built lib file rather than copy

* Add intermediate files to clean targets

8 months agoreadme : add Vulkan notice (#2488)
toboil-features [Wed, 16 Oct 2024 15:43:26 +0000 (18:43 +0300)]
readme : add Vulkan notice (#2488)

* Add Vulkan notice in README.md

* Fix formatting for Vulkan section in README.md

* Fix formatting in README.md

8 months agomake : fix GGML_VULKAN=1 build (#2485)
Georgi Gerganov [Wed, 16 Oct 2024 15:42:47 +0000 (18:42 +0300)]
make : fix GGML_VULKAN=1 build (#2485)

8 months agowhisper : add dtw preset for large-v3-turbo (#2481)
Rotem Dan [Tue, 15 Oct 2024 18:00:21 +0000 (21:00 +0300)]
whisper : add dtw preset for large-v3-turbo (#2481)

8 months agoconvert : handle max_target_positions (#2477)
CrispStrobe [Mon, 14 Oct 2024 07:46:33 +0000 (09:46 +0200)]
convert : handle max_target_positions (#2477)

as needed eg for
https://huggingface.co/primeline/whisper-large-v3-turbo-german/blob/main/config.json

8 months agoreadme : update the Quick Start section (#2475)
Salman Faroz [Mon, 14 Oct 2024 07:44:57 +0000 (13:14 +0530)]
readme : update the Quick Start section (#2475)

navigating into the directory

8 months agowhisper : add OpenVINO init with state (#2464)
Sandro Hanea [Tue, 8 Oct 2024 17:08:00 +0000 (19:08 +0200)]
whisper : add OpenVINO init with state (#2464)

* Fixed OpenVino init on state

* Removed an empty line

* Fixed typo

* Replaced tabs with spaces

---------

Co-authored-by: Sandro Hanea <redacted>
8 months agorelease : v1.7.1
Georgi Gerganov [Mon, 7 Oct 2024 10:06:48 +0000 (13:06 +0300)]
release : v1.7.1

8 months agovulkan : retry allocation with fallback flags (#2451)
SRHMorris [Sun, 6 Oct 2024 07:34:20 +0000 (08:34 +0100)]
vulkan : retry allocation with fallback flags (#2451)

Co-authored-by: Samuel Morris <redacted>
8 months agorelease : v1.7.0
Georgi Gerganov [Sat, 5 Oct 2024 13:43:26 +0000 (16:43 +0300)]
release : v1.7.0

8 months agoscripts : bench v3-turbo
Georgi Gerganov [Sat, 5 Oct 2024 13:22:53 +0000 (16:22 +0300)]
scripts : bench v3-turbo

8 months agowhisper : remove mel leftover constants (396089f)
Georgi Gerganov [Sat, 5 Oct 2024 13:13:03 +0000 (16:13 +0300)]
whisper : remove mel leftover constants (396089f)

8 months agowhisper : zero-out the KV cache upon clear (#2445)
Georgi Gerganov [Sat, 5 Oct 2024 12:22:17 +0000 (15:22 +0300)]
whisper : zero-out the KV cache upon clear (#2445)

8 months agoobjc : fix build
Georgi Gerganov [Sat, 5 Oct 2024 12:18:50 +0000 (15:18 +0300)]
objc : fix build

8 months agometal : zero-init buffer contexts (#0)
Georgi Gerganov [Sat, 5 Oct 2024 11:33:54 +0000 (14:33 +0300)]
metal : zero-init buffer contexts (#0)

8 months agowhisper : revert mel-related changes (#0)
Georgi Gerganov [Sat, 5 Oct 2024 11:29:45 +0000 (14:29 +0300)]
whisper : revert mel-related changes (#0)

too much extra logic and complexity for small benefit

8 months agowhisper : adapt to latest ggml (skip) (#0)
Georgi Gerganov [Sat, 5 Oct 2024 10:14:03 +0000 (13:14 +0300)]
whisper : adapt to latest ggml (skip) (#0)

8 months agoggml : fix typo in example usage ggml_gallocr_new (ggml/984)
Daniel Bevenius [Fri, 4 Oct 2024 13:46:18 +0000 (15:46 +0200)]
ggml : fix typo in example usage ggml_gallocr_new (ggml/984)

8 months agoggml : fixes after sync (ggml/983)
Diego Devesa [Fri, 4 Oct 2024 06:41:40 +0000 (08:41 +0200)]
ggml : fixes after sync (ggml/983)

ggml : remove test-backend-buffer

ggml : fix CUDA build warnings

8 months agoggml-backend : add device and backend reg interfaces (llama/9707)
Diego Devesa [Thu, 3 Oct 2024 18:25:11 +0000 (21:25 +0300)]
ggml-backend : add device and backend reg interfaces (llama/9707)

Also:

- metal : fix compute pass descriptor autorelease crash
- ggml-backend : add device description to CPU backend
- ggml: unify backend logging mechanism

8 months agoFixed dequant precision issues in Q4_1 and Q5_1 (llama/9711)
Ouadie EL FAROUKI [Thu, 3 Oct 2024 06:50:44 +0000 (07:50 +0100)]
Fixed dequant precision issues in Q4_1 and Q5_1 (llama/9711)

8 months agoggml-backend : add device and backend reg interfaces (llama/9707)
Diego Devesa [Wed, 2 Oct 2024 23:49:47 +0000 (01:49 +0200)]
ggml-backend : add device and backend reg interfaces (llama/9707)

Co-authored-by: Johannes Gäßler <redacted>
8 months agoInitial cmake support of SYCL for AMD GPUs (llama/9658)
Alberto Cabrera Pérez [Wed, 2 Oct 2024 12:57:18 +0000 (13:57 +0100)]
Initial cmake support of SYCL for AMD GPUs (llama/9658)

sycl: initial cmake support of SYCL for AMD GPUs

8 months agovulkan : do not use tensor->extra (llama/9407)
Radoslav Gerganov [Wed, 2 Oct 2024 10:49:16 +0000 (13:49 +0300)]
vulkan : do not use tensor->extra (llama/9407)

* vulkan : do not use tensor->extra

This patch allows using the Vulkan backend with the RPC backend as
tensor->extra is no longer used.

Ref: #8536

* Adapt GGML_VULKAN_CHECK_RESULTS to extra removal (llama/2)

---------

Co-authored-by: 0cc4m <redacted>
8 months agoggml/ex: calculate accuracy in graph, adapt MNIST (ggml/980)
Johannes Gäßler [Thu, 3 Oct 2024 15:29:59 +0000 (17:29 +0200)]
ggml/ex: calculate accuracy in graph, adapt MNIST (ggml/980)

8 months agoggml: refactor cross entropy loss CPU impl. (ggml/976)
Johannes Gäßler [Wed, 2 Oct 2024 13:32:39 +0000 (15:32 +0200)]
ggml: refactor cross entropy loss CPU impl. (ggml/976)

8 months agoscripts : sync ggml-backend.cpp
Georgi Gerganov [Sat, 5 Oct 2024 10:09:36 +0000 (13:09 +0300)]
scripts : sync ggml-backend.cpp

8 months agowhisper : fix excessive memory usage (#2443)
Georgi Gerganov [Sat, 5 Oct 2024 09:36:40 +0000 (12:36 +0300)]
whisper : fix excessive memory usage (#2443)

* whisper : fix KV cache allocation

* whisper : reduce memory overhead from unused input tensors

8 months agoexamples : update dr_wav.h to newer version (#2449)
Rahul Vadhyar [Fri, 4 Oct 2024 08:04:51 +0000 (13:34 +0530)]
examples : update dr_wav.h to newer version (#2449)

8 months agotalk-llama : sync llama.cpp
Georgi Gerganov [Wed, 2 Oct 2024 12:14:46 +0000 (15:14 +0300)]
talk-llama : sync llama.cpp

8 months agometal : reduce command encoding overhead (llama/9698)
Georgi Gerganov [Wed, 2 Oct 2024 12:12:16 +0000 (15:12 +0300)]
metal : reduce command encoding overhead (llama/9698)

8 months agosync : ggml
Georgi Gerganov [Wed, 2 Oct 2024 12:11:43 +0000 (15:11 +0300)]
sync : ggml

8 months agotest: fix OPT_STEP_ADAMW for test-backend-ops (ggml/974)
Johannes Gäßler [Mon, 30 Sep 2024 07:55:23 +0000 (09:55 +0200)]
test: fix OPT_STEP_ADAMW for test-backend-ops (ggml/974)

8 months agovulkan : mul_mat: fix UB with small warps (ggml/952)
Salvatore Mesoraca [Mon, 30 Sep 2024 07:14:09 +0000 (09:14 +0200)]
vulkan : mul_mat: fix UB with small warps (ggml/952)

When the device's warp size is less than 16,
it is possible for loadstride_a (mul_mm.comp:114)
and loadstride_b (mul_mm.comp:115) to be set to 0.
Because they are calculated as: the workgroup size,
multiplied by LOAD_VEC_* (which can be 1) and divided by 16.
And the workgroup size is set to be the same as the
warp/subgroup size.

The loadstride_* variables are used as increments in the
loops that populate the buffers used for the multiplication.

When they are 0 they cause an infinite loop.
But infinite loops without side-effects are UB and the
values of loadstride_* are known at compile time.
So, the compiler quietly optimizes all the loops away.
As a consequence, the buffers are not populated and
the multiplication result is just a matrix with all elements
set to 0.

We prevent the UB by making sure that the workgroup size
will never be less than 16, even if our device has a
smaller warp size (e.g. 8).

Signed-off-by: Salvatore Mesoraca <redacted>
8 months agoggml : fix ggml_cast (ggml/973)
Borislav Stanimirov [Mon, 30 Sep 2024 07:11:41 +0000 (10:11 +0300)]
ggml : fix ggml_cast (ggml/973)

8 months agoggml: fix gradient allocation logic (ggml/966)
Johannes Gäßler [Sun, 29 Sep 2024 21:18:02 +0000 (23:18 +0200)]
ggml: fix gradient allocation logic (ggml/966)

* ggml: fix gradient allocation logic

* gradient allocation in ggml_build_backward_expand

* fixup

* fix test-backend-ops grad

* suggestions by slaren

* fix test1.c

* fix legacy opt API

* fix test-grad0

* remove keep arg

8 months agoggml : define missing HWCAP flags (llama/9684)
Georgi Gerganov [Sun, 29 Sep 2024 18:18:23 +0000 (21:18 +0300)]
ggml : define missing HWCAP flags (llama/9684)

ggml-ci

Co-authored-by: Willy Tarreau <redacted>
8 months agoggml : add run-time detection of neon, i8mm and sve (llama/9331)
Dan Johansson [Sat, 28 Sep 2024 12:06:16 +0000 (14:06 +0200)]
ggml : add run-time detection of neon, i8mm and sve (llama/9331)

* ggml: Added run-time detection of neon, i8mm and sve

Adds run-time detection of the Arm instructions set features
neon, i8mm and sve for Linux and Apple build targets.

* ggml: Extend feature detection to include non aarch64 Arm arch

* ggml: Move definition of ggml_arm_arch_features to the global data section

8 months agoEnable use to the rebar feature to upload buffers to the device. (llama/9251)
Markus Tavenrath [Sat, 28 Sep 2024 10:05:05 +0000 (12:05 +0200)]
Enable use to the rebar feature to upload buffers to the device. (llama/9251)

8 months agomtgpu: enable VMM (llama/9597)
R0CKSTAR [Thu, 26 Sep 2024 01:27:40 +0000 (09:27 +0800)]
mtgpu: enable VMM (llama/9597)

Signed-off-by: Xiaodong Ye <redacted>
8 months agoggml : remove assert for AArch64 GEMV and GEMM Q4 kernels (llama/9217)
Charles Xu [Wed, 25 Sep 2024 13:12:20 +0000 (15:12 +0200)]
ggml : remove assert for AArch64 GEMV and GEMM Q4 kernels (llama/9217)

* ggml : remove assert for AArch64 GEMV and GEMM Q4 kernels

* added fallback mechanism when the offline re-quantized model is not
optimized for the underlying target.

* fix for build errors

* remove prints from the low-level code

* Rebase to the latest upstream