]>
git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/log
Georgi Gerganov [Wed, 18 Dec 2024 17:27:21 +0000 (19:27 +0200)]
tts : add OuteTTS support (llama/10784)
* server : add "tokens" output
ggml-ci
* server : output embeddings for all tokens when pooling = none
ggml-ci
* server : be explicit about the pooling type in the tests
ggml-ci
* server : do not normalize embeddings when there is no pooling
ggml-ci
* llama : add OuteTTS support (wip)
* wip
* extract features
* first conv
* group norm
* resnet conv
* resnet
* attn
* pos net
* layer norm
* convnext
* head
* hann window
* fix n_embd + remove llama.cpp hacks
* compute hann window
* fft
* spectrum processing
* clean-up
* tts : receive input text and generate codes
* clip : fix new conv name
* tts : minor fix
* tts : add header + minor fixes
ggml-ci
* tts : add matchematical constant
ggml-ci
* tts : fix sampling + cut initial noise
* tts : fixes
* tts : update default samplers
ggml-ci
* tts : text pre-processing
* tts : outetts-voc -> wavtokenizer-dec
* tts : remove hardcoded constants
ggml-ci
* tts : fix tensor shapes
* llama : refactor wavtokenizer tensors
ggml-ci
* cont
ggml-ci
* cont [no ci]
* llama : update WavTokenizer to non-causal attn
* llama : handle no-vocab detokenization
* tts : add Python example for OuteTTS (wip)
* tts : extend python example to generate spectrogram
ggml-ci
* server : fix rebase artifacts
* tts : enable "return_tokens" in Python example
ggml-ci
* tts : minor fixes
* common : support HF download for vocoder
Johannes Gäßler [Tue, 17 Dec 2024 18:09:35 +0000 (19:09 +0100)]
tests: add tests for GGUF (llama/10830)
Daniel Bevenius [Thu, 19 Dec 2024 02:50:12 +0000 (03:50 +0100)]
ggml : improve inputs log sched_print_assignments (ggml/1053)
This commit attempts to improve the log message for the inputs of the
splits in the sched_print_assignments function.
The motivation for this change is that currently even if there are no
inputs a colon is displayed at the end of the line, which can make it a
little confusing when reading the output as it could be interpreted as
the line below are inputs when they are in fact nodes. With this change
the colon will only be printed if there actually are inputs.
Samuel Durante [Thu, 2 Jan 2025 10:05:38 +0000 (07:05 -0300)]
readme : fix real-time audio input example build instructions (#2692)
Alter [Thu, 2 Jan 2025 10:05:09 +0000 (10:05 +0000)]
objc : rename ggml-cpu-aarch64.c to .cpp (#2687)
Konosuke Sakai [Thu, 2 Jan 2025 10:03:02 +0000 (19:03 +0900)]
docs : replace Core ML with OpenVINO (#2686)
Georgi Gerganov [Tue, 31 Dec 2024 09:46:17 +0000 (11:46 +0200)]
make : fix "main" -> "whisper-cli"
Nikolaj Olsson [Tue, 31 Dec 2024 09:11:42 +0000 (10:11 +0100)]
ci : re-enable Windows cublas build (#2676)
* Enable Windows cublas build
* Re-add v12 cuda
KITAITI Makoto [Mon, 30 Dec 2024 12:26:35 +0000 (21:26 +0900)]
ruby : Fix of C++ header guard name, model URI support, type signature and more (#2683)
* Add test to make Whisper::Context.new accept URI string
* Add test to make Whisper::Context.new accept URI
* Make Whisper::Context.new accept URI string and URI
* Update README
Revert "Fix argument of rb_undefine_finalizer"
* Fix typos
* Add type signature file
* Assign literarl to const variable
* Load Whisper::Model::URI from Init_whisper
* Simplify .gitignore
* Don't load whisper.so from whisper/model/uri.rb
* Use each_with_object instead of each
* Add Development section to README
* Rename header guard to conform to C++ naming convention
Georgi Gerganov [Mon, 30 Dec 2024 11:00:18 +0000 (13:00 +0200)]
examples : handle "main.exe" deprecation
Andreas Lubbe [Tue, 24 Dec 2024 07:30:07 +0000 (08:30 +0100)]
cli : add --suppress_nst support (#2664)
Andreas Lubbe [Tue, 24 Dec 2024 07:29:19 +0000 (08:29 +0100)]
cli : add no_speech_thold (#2663)
Georgi Gerganov [Mon, 23 Dec 2024 19:22:10 +0000 (21:22 +0200)]
cmake : remove hardcoded install rpath
Georgi Gerganov [Sun, 22 Dec 2024 13:32:05 +0000 (15:32 +0200)]
server : fix help print
KITAITI Makoto [Sat, 21 Dec 2024 19:52:06 +0000 (04:52 +0900)]
ruby : bug fix on callbacks and no_speech_prob (#2656)
* Don't generate documentation on test
* Move .startup to TestBase class
* Extract new_segment_callback as a function
* Extract progress_callback as a function
* Extract abort_callback as a function
* Extract register_callbacks as a function
* Call callbacks in Whiser::Context#full and #full_parallel
* Fix README
* Care about the cases content-size is nil and TTY is not available
* Add tests for no_speech_prob
* Add Whisper::Context#full_get_segment_no_speech_prob and Whisper::Segment#no_speech_prob
Sacha Arbonel [Sat, 21 Dec 2024 15:00:08 +0000 (16:00 +0100)]
server : add no-speech threshold parameter and functionality (#2654)
Georgi Gerganov [Sat, 21 Dec 2024 10:54:35 +0000 (12:54 +0200)]
whisper : rename suppress_non_speech_tokens to suppress_nst (#2653)
Sacha Arbonel [Sat, 21 Dec 2024 10:05:05 +0000 (11:05 +0100)]
server : add option to suppress non-speech tokens (#2649)
* The parameter will suppress non-speech tokens like [LAUGH], [SIGH], etc. from the output when enabled.
* add to whisper_params_parse
* add missing param
Georgi Gerganov [Sat, 21 Dec 2024 07:43:49 +0000 (09:43 +0200)]
whisper : rename binaries + fix install (#2648)
* whisper : rename binaries + fix install
* cont : try to fix ci
* cont : fix emscripten builds
Georgi Gerganov [Fri, 20 Dec 2024 09:53:27 +0000 (11:53 +0200)]
ruby : update gem version to v1.3.1
Georgi Gerganov [Wed, 18 Dec 2024 16:12:40 +0000 (18:12 +0200)]
release : v1.7.3
Georgi Gerganov [Wed, 18 Dec 2024 10:52:41 +0000 (12:52 +0200)]
ci : msys enable SDL2 build (#2635)
KITAITI Makoto [Wed, 18 Dec 2024 10:51:48 +0000 (19:51 +0900)]
ruby : sync ggml (#2643)
Georgi Gerganov [Wed, 18 Dec 2024 07:54:23 +0000 (09:54 +0200)]
android : try to fix build
Georgi Gerganov [Wed, 18 Dec 2024 06:39:39 +0000 (08:39 +0200)]
files : remove old sources
Georgi Gerganov [Wed, 18 Dec 2024 06:38:56 +0000 (08:38 +0200)]
sync : ggml
Georgi Gerganov [Tue, 17 Dec 2024 19:19:28 +0000 (21:19 +0200)]
talk-llama : sync llama.cpp
Georgi Gerganov [Tue, 17 Dec 2024 17:25:44 +0000 (19:25 +0200)]
sync : ggml
Georgi Gerganov [Tue, 17 Dec 2024 16:35:42 +0000 (18:35 +0200)]
ggml : update ggml_backend_cpu_device_supports_op (llama/10867)
* ggml : fix cpy op for IQ-quants to use reference impl
ggml-ci
* ggml : disable tests involving i-matrix quantization
* ggml : update ggml_backend_cpu_device_supports_op
ggml-ci
Eve [Tue, 17 Dec 2024 05:52:55 +0000 (05:52 +0000)]
vulkan: bugfixes for small subgroup size systems + llvmpipe test (llama/10809)
* ensure mul mat shaders work on systems with subgroup size less than 32
more fixes
add test
* only s_warptile_mmq needs to be run with 32 threads or more
Zhiyuan Li [Mon, 16 Dec 2024 21:00:46 +0000 (05:00 +0800)]
rwkv6: add wkv6 support for Vulkan backend (llama/10829)
* rwkv_wkv6 vulkan shader
* RWKV_WKV6 Vulkan op tests passed
Signed-off-by: Molly Sophia <redacted>
* Apply code format changes
Signed-off-by: Molly Sophia <redacted>
* add [[unroll]] and remove unnecessary conditions
* add uma support
* fix erros in EditorConfig Checker
---------
Signed-off-by: Molly Sophia <redacted>
Co-authored-by: Molly Sophia <redacted>
HimariO [Sat, 14 Dec 2024 12:43:46 +0000 (20:43 +0800)]
llama : add Qwen2VL support + multimodal RoPE (llama/10361)
* Barebone Qwen2VL LLM convertor
* Add Qwen2VL cli entrypoint
* [WIP] add qwen2vl arch
* Verify m-rope output
* Add vl-rope/2d-rope support for qwen2vl ViT
* update qwen2vl cli tool
* update 5D tensor op workaround
* [WIP] qwen2vl vision model
* make batch and clip utils compatible with qwen2vl
* [WIP] create inference workflow, gguf convert script but fix
* correcting vision-rope behavior, add the missing last layer back to ViT
* add arg parser to qwen2vl_surgery
* replace variable size array with vector
* cuda-gdb cmake preset
* add fp32 mrope, vision rope kernel
* add fp16 support for qwen2vl and m-rope
* add `GGML_ROPE_TYPE_MROPE`, `GGML_ROPE_TYPE_VISION`
* fix rope op mode switching, out dated func args
* update `llama_hparams`
* update to keep up stream changes
* resolve linter, test errors
* add makefile entry, update speical image padding token
* add mrope unit test, fix few compiler warnings
* rename `mrope` related function, params
* minor updates on debug util, bug fixs
* add `m-rope` testcase to `test-backend-ops`
* Apply suggestions from code review
Co-authored-by: Georgi Gerganov <redacted>
* fix traililng whitespce
* store `llama_hparams.rope_sections` with fixed size array
* update position id tensor size check in GGML_OP_ROPE
* minor updates
* update `ggml_backend_*_supports_op` of unsupported backends
* remote old `rope_section` compare operator
---------
Co-authored-by: Georgi Gerganov <redacted>
lhez [Fri, 13 Dec 2024 20:23:52 +0000 (12:23 -0800)]
Introducing experimental OpenCL backend with support for Qualcomm Adreno GPUs (llama/10693)
* [cl][adreno] Add Adreno GPU support
Add new OpenCL backend to support Adreno GPUs
---------
Co-authored-by: Skyler Szot <redacted>
Co-authored-by: Shangqing Gu <redacted>
Co-authored-by: Alexander Angus <redacted>
Co-authored-by: Hongqiang Wang <redacted>
Co-authored-by: Max Krasnyansky <redacted>
* [cl][ci] Add workflow for CL
* [cl][adreno] Fix memory leak for non SMALL_ALLOC path
* opencl: integrate backend dyn.load interface and fix compiler and format warnings
* opencl: remove small-alloc support and fix build errors for non-opencl platforms
* opencl: fixed merge conflict (MUSA added twice in cmake)
* opencl-ci: use RUNNER_TEMP instead of github.workspace
* opencl: fix embed tool invocation with python3
* opencl: CI workflow fixes
* opencl: Clean up small-alloc in CMake files
* opencl: cleanup ggml-opencl2 header file
* opencl: use ulong for offsets and strides in ADD kernel
* opencl: use cl_ulong for all offsets
* opencl: use cl_ulong for sizes and strides
* opencl: use `GGML_LOG_xxx` instead of `fprintf(stderr, ...)`
* opencl: rename backend `opencl2` -> `opencl`
* opencl: rename kernel files `ggml-opencl2` -> `ggml-opencl`
* opencl: make OpenCL required, remove redundant lib and inc directories
* `ggml-base`, `..` and `.` are added by `ggml_add_backend_library`
* opencl: rename backend - funcs, structs, etc `opencl2` -> `opencl`
* opencl: remove copyright marker since main license already covers
* opencl: replace some more OPENCL2 leftovers
* opencl: remove limits on `tensor_extra`
* opencl: use pools for `tensor_extra`
* opencl: fix compiler warnings with GCC and Clang
Still getting the warning about clCreateCmdQueue being obsolete.
Will fix that separately.
* opencl: fail gracefully if opencl devices are not available
Also for unsupported GPUs.
* opencl: fix MSVC builds (string length error)
* opencl: check for various requirements, allow deprecated API
* opencl: update log message for unsupported GPUs
---------
Co-authored-by: Skyler Szot <redacted>
Co-authored-by: Shangqing Gu <redacted>
Co-authored-by: Alexander Angus <redacted>
Co-authored-by: Hongqiang Wang <redacted>
Co-authored-by: Max Krasnyansky <redacted>
谢乃闻 [Fri, 13 Dec 2024 12:56:07 +0000 (12:56 +0000)]
Fix crash caused by ggml_backend_load_all when launching on Android Activity (llama/10812)
* Fix crash caused by ggml_backend_load_all when launching on AndroidActivity.
Details:
Calling ggml_backend_load_all during initialization in the AndroidActivity project leads to a crash with the error:
terminating with uncaught exception of type std::__ndk1::__fs::filesystem::filesystem_error: filesystem error: in directory_iterator::directory_iterator(...): Permission denied [./].
This issue occurs because AndroidActivity restricts file access due to sandboxing.
Reproduction:
In the example folder, the LlamaAndroid project can reproduce the crash by calling ggml_backend_load_all first in Java_android_llama_cpp_LLamaAndroid_backend_1init.
* Update ggml/src/ggml-backend-reg.cpp
---------
Co-authored-by: Diego Devesa <redacted>
Eve [Fri, 13 Dec 2024 08:42:04 +0000 (08:42 +0000)]
vulkan: small mul_mat_vec optimizations (llama/10665)
* double the number of rows per workgroup
* Update ggml-vulkan.cpp
* Vulkan: Add VK_EXT_subgroup_size_control support to ensure full subgroups for coopmats
* only increase the number of rows for amd and subgroup size 64
* fix missing NUM_ROWS for mul_mat_vec_iq4_nl_f16_f32, untested
* use subgroup min and max to check for gcn (requires https://github.com/ggerganov/llama.cpp/pull/10721)
* manual merge ggml-vulkan.cpp
* set min and max subgroup size in any case
* Also double the number of rows for Intel GPUs
Akarshan Biswas [Fri, 13 Dec 2024 06:42:15 +0000 (12:12 +0530)]
SYCL: Reduce most of the compiler warnings (llama/10748)
* Try to reduce some unused and typecast warnings
* Reduce compiler warnings step 2
* add a newline at the end of the file
* Initialize nreduce as size_t
* [SYCL] Remove pragma directives from mmq.cpp
* SYCL: mmq add condition to prevent blocks_per_tile_x_row variable from becoming 0
* SYCL softmax: Initialize nreduce as size_t
* ggml-sycl.cpp: fix some trailing whitespaces
* SYCL: remove the unused variables instead of commenting it out
* SYCL poo2d kernel: set NAN for invalid pooling op
* SYCL gemm.hpp: remove pragma directives
* SYCL gemm.hpp: use const cast to properly support dnnl::memory
* SYCL: wkv6 remove a comment
* SYCL: clean comments step 2
* SYCL: clean comments and variables step 3
* SYCL: Use GGML_UNUSED for unused variables
* SYCL: remove extra empty lines and a comment
* Remove TODO
* cleanup spaces
* add a stdout for unsupported op
* use sycl printf over fprintf
* remove prints for CI
* SYCL ggml-sycl: pool2D use sycl::nan and remove if-else block
---------
Co-authored-by: Abhilash Majumder <redacted>
Karol Kontny [Fri, 13 Dec 2024 00:04:19 +0000 (01:04 +0100)]
ggml : Fix compilation issues on ARM platform when building without fp16 (llama/10811)
a3sh [Thu, 12 Dec 2024 18:09:50 +0000 (02:09 +0800)]
CUDA: faster non-contiguous concat (llama/10760)
* faster uncontiguous concat
* Use a lambda to avoid code duplication
Co-authored-by: Diego Devesa <redacted>
* Update ggml/src/ggml-cuda/concat.cu
* add constexpr and static assert
---------
Co-authored-by: Diego Devesa <redacted>
Diego Devesa [Thu, 12 Dec 2024 18:02:49 +0000 (19:02 +0100)]
remove CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS (llama/10797)
other windows build fixes
0cc4m [Thu, 12 Dec 2024 17:36:00 +0000 (18:36 +0100)]
Vulkan: Use improved q4_k and q5_k dequant code in dequant shaders (llama/10798)
0cc4m [Thu, 12 Dec 2024 17:35:37 +0000 (18:35 +0100)]
Vulkan: Add VK_EXT_subgroup_size_control support to ensure full subgroups for coopmats (llama/10721)
* Vulkan: Add VK_EXT_subgroup_size_control support to ensure full subgroups for coopmats
* Fix subgroup size control extension support check
Add accf32 and accf16 checks for coopmats
* Also disable coopmats on amdvlk
Gilad S [Wed, 11 Dec 2024 00:47:21 +0000 (02:47 +0200)]
ggml: load all backends from a user-provided search path (llama/10699)
* feat: load all backends from a user-provided search path
* fix: Windows search path
* refactor: rename `ggml_backend_load_all_in_search_path` to `ggml_backend_load_all_from_path`
* refactor: rename `search_path` to `dir_path`
* fix: change `NULL` to `nullptr`
Co-authored-by: Diego Devesa <redacted>
* fix: change `NULL` to `nullptr`
---------
Co-authored-by: Diego Devesa <redacted>
Jeff Bolz [Tue, 10 Dec 2024 20:23:17 +0000 (14:23 -0600)]
vulkan: request round-to-even for fp16 in im2col/rope_head (llama/10767)
Vulkan doesn't mandate a specific rounding mode, but the shader_float_controls
feature allows rounding mode to be requested if the implementation supports it.
Eve [Tue, 10 Dec 2024 19:33:23 +0000 (19:33 +0000)]
vulkan: dynamic subgroup size for the remaining k quants (llama/10745)
* q5_k
q4_k
q3_k
q2_k
q6_k multi row example
* revert as multi row isnt faster for k quants
Andreas Kieslinger [Tue, 10 Dec 2024 17:23:24 +0000 (18:23 +0100)]
CUDA: rename macros to avoid conflicts with WinAPI (llama/10736)
* Renames NVIDIA GPU-architecture flags to avoid name clashes with WinAPI. (e.g. CC_PASCAL, GPU architecture or WinAPI pascal compiler flag?)
* Reverts erroneous rename in SYCL-code.
* Renames GGML_CUDA_MIN_CC_DP4A to GGML_CUDA_CC_DP4A.
* Renames the rest of the compute capability macros for consistency.
Jeff Bolz [Tue, 10 Dec 2024 17:22:20 +0000 (11:22 -0600)]
vulkan: disable spirv-opt for coopmat shaders (llama/10763)
There are some bugs in the 1.3.296 SDK, so disable this. It isn't strictly
necessary anyway.
Add missing dependency on vulkan-shaders-gen, so shaders get recompiled when it
changes.
Fix coopmat support reporting when glslc doesn't support NV_coopmat2.
Daniel Bevenius [Sat, 14 Dec 2024 02:23:08 +0000 (03:23 +0100)]
ggml : remove return from ggml_gallocr_allocate_node (ggml/1048)
This commit removes the return statement from ggml_gallocr_allocate_node
function.
The motivation behind this change is to make the code more readable and
consistent.
Daniel Bevenius [Fri, 13 Dec 2024 07:19:38 +0000 (08:19 +0100)]
ggml : add check for grad_accs (ggml/1046)
* ggml : add check for grad_accs
This commit adds a check for grad_accs in ggml_graph_get_grad and
ggml_graph_get_grad_acc functions. This is necessary to avoid segfaults
when grad_accs is not initialized.
The motivation for this change is that I find it nice to be able to
print out a computation graph using ggml_graph_print but this function
segfaults when grad_accs is not initialized:
```console
(gdb) p g1
$2 = (ggml_cgraph *) 0x7ffff66004b0
(gdb) p *g1
$3 = {size = 2048, n_nodes = 1, n_leafs = 2, nodes = 0x7ffff6600500,
grads = 0x0, grad_accs = 0x0, leafs = 0x7ffff6604500,
visited_hash_set = {size = 4099, used = 0x7ffff6610518,
keys = 0x7ffff6608500}, order = GGML_CGRAPH_EVAL_ORDER_LEFT_TO_RIGHT}
(gdb) p ggml_graph_print(g1)
=== GRAPH ===
n_nodes = 1
Program received signal SIGSEGV, Segmentation fault.
0x0000555555579775 in ggml_graph_get_grad
(cgraph=0x7ffff66004b0,node=0x7ffff6600340)
at /ggml/ggml/src/ggml.c:5990
5990 return igrad != GGML_HASHSET_FULL &&
ggml_bitset_get(cgraph->visited_hash_set.used, igrad) ?
cgraph->grads[igrad] : NULL;
```
* squash! ggml : add check for grad_accs
Fix the check in ggml_graph_get_grad. The check was incorrectly using
cgraph->grad_accs instead of cgraph->grads.
Georgi Gerganov [Tue, 10 Dec 2024 15:19:09 +0000 (17:19 +0200)]
common : remove old types
ggml-ci
Johannes Gäßler [Mon, 9 Dec 2024 19:07:12 +0000 (20:07 +0100)]
CUDA: fix shared memory access condition for mmv (llama/10740)
Jeff Bolz [Mon, 9 Dec 2024 07:24:01 +0000 (01:24 -0600)]
vulkan: fix compile warnings (llama/10731)
stduhpf [Sun, 8 Dec 2024 18:19:19 +0000 (19:19 +0100)]
Vulkan: fix NaN in tanh.comp with AMD proprietary driver on Windows (llama/10723)
* Vulkan: fix NaN in tanh.comp
* Faster NaN-free tanh
Jeff Bolz [Sun, 8 Dec 2024 08:05:55 +0000 (02:05 -0600)]
vulkan: compile a test shader in cmake to check for coopmat2 support (llama/10713)
Georgi Gerganov [Sat, 7 Dec 2024 16:38:15 +0000 (18:38 +0200)]
ggml : disable iq4_nl interleave size 8 (llama/10709)
ggml-ci
Djip007 [Sat, 7 Dec 2024 12:37:50 +0000 (13:37 +0100)]
ggml : refactor online repacking (llama/10446)
* rename ggml-cpu-aarch64.c to .cpp
* reformat extra cpu backend.
- clean Q4_0_N_M and IQ4_0_N_M
- remove from "file" tensor type
- allow only with dynamic repack
- extract cpu extra bufts and convert to C++
- hbm
- "aarch64"
- more generic use of extra buffer
- generalise extra_supports_op
- new API for "cpu-accel":
- amx
- aarch64
* clang-format
* Clean Q4_0_N_M ref
Enable restrict on C++
* add op GGML_OP_MUL_MAT_ID for Q4_0_N_M with runtime repack
* added/corrected control on tensor size for Q4 repacking.
* Update ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp
Co-authored-by: Georgi Gerganov <redacted>
* Update ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp
Co-authored-by: Georgi Gerganov <redacted>
* add debug logs on repacks.
---------
Co-authored-by: Georgi Gerganov <redacted>
0cc4m [Sat, 7 Dec 2024 09:24:15 +0000 (10:24 +0100)]
Vulkan: VK_KHR_cooperative_matrix support to speed up prompt processing (llama/10597)
* Vulkan: Implement VK_KHR_cooperative_matrix support in the matrix matrix multiplication shader
* Improve performance with better q4_k and q5_k dequant and store unrolling
* Add Vulkan MUL_MAT and MUL_MAT_ID accumulator precision selection
* Rework mulmat shader selection and compilation logic, avoid compiling shaders that won't get used by device
* Vulkan: Implement accumulator switch for specific mul mat mat shaders
* Vulkan: Unroll more loops for more mul mat mat performance
* Vulkan: Add VK_AMD_shader_core_properties2 support to read Compute Unit count for split_k logic
* Disable coopmat support on AMD proprietary driver
* Remove redundant checks
* Add environment variable GGML_VK_DISABLE_COOPMAT to disable VK_KHR_cooperative_matrix support
* Fix rebase typo
* Fix coopmat2 MUL_MAT_ID pipeline selection
Robert Ormandi [Sat, 7 Dec 2024 07:55:01 +0000 (01:55 -0600)]
metal : Extend how Llama.cpp locates metal resources (llama/10676)
* metal : Extend how Llama.cpp locates metal resources (llama/10675)
* It searches the resource file in the directory where the current
binary is located as well.
* Resolves symbolic links.
Rationale:
When we plug this dependency into a Bazel build and run it in the
context of Bazel (e.g. testing):
* the execution directory is often very different from where the files
are located and no direct control over this (Bazel sandboxing),
* the Bazel sandbox often use symbolic links to make files available.
With this patch, we can have the resource file added to the target,
can build and run tests in the context of Bazel.
* Update ggml/src/ggml-metal/ggml-metal.m
Co-authored-by: Georgi Gerganov <redacted>
* Update ggml/src/ggml-metal/ggml-metal.m
Co-authored-by: Georgi Gerganov <redacted>
---------
Co-authored-by: Georgi Gerganov <redacted>
Jeff Bolz [Thu, 5 Dec 2024 19:15:05 +0000 (13:15 -0600)]
vulkan: Add VK_NV_cooperative_matrix2 support for mul_mat and flash attention (llama/10206)
KITAITI Makoto [Wed, 18 Dec 2024 09:00:50 +0000 (18:00 +0900)]
ruby : Add no_speech_thold (#2641)
* Remove Whisper::Model.[]
* Fix Whisper::Model::URI#request
* Make Whisper::Context#initialize accept pre-converted model name
* Use downloading pre-converted model feature for testing
* Update README
* Remove unnecessary task
* Move whisper/model.rb -> whisper/model/uri.rb
* Update document comment of Whisper::Context#initialize
* Don't show download progress when not tty
* Pass String to raise
* Use cache model file if download fails
* Add test for auto download
* Specify required Ruby version
* Fix a typo
* Remove unnecessary flags
* Initialize Whisper::Params#diarize explicitely
* Remove redundant code from README for simplicity
* Add Whisper::Params#no_speech_thold attribute
* Add test for Whisper::Params#no_speech_thold
crummyh [Wed, 18 Dec 2024 06:43:48 +0000 (00:43 -0600)]
stream : improve consistency in README (#2642)
Karthick [Tue, 17 Dec 2024 17:15:47 +0000 (22:45 +0530)]
whisper : support no_speech_thold (#2625)
* Implement no_speech_thold
no_speech_thold functionality is on par with OpenAI's whisper
* Addressed review comments
Karthick [Tue, 17 Dec 2024 17:07:08 +0000 (22:37 +0530)]
whisper : add single-timestamp logic (#2629)
* Fix hallucinations during silence
When the predicted tokens end with a single timestamp the the entire 30 segment should be considered as done, to avoid hallucinations for the remaining part of segment.
This behaviour is on par with openai's whisper. Refer to logic related to `single_timestamp_ending` in https://github.com/openai/whisper/blob/main/whisper/transcribe.py
* Accept review comments related to formatting.
Co-authored-by: Georgi Gerganov <redacted>
---------
Co-authored-by: Georgi Gerganov <redacted>
crummyh [Tue, 17 Dec 2024 17:05:35 +0000 (11:05 -0600)]
readme : fix typo (#2637)
Georgi Gerganov [Tue, 17 Dec 2024 16:34:32 +0000 (18:34 +0200)]
cmake : fix "amd64" processor string (#2638)
gn64 [Mon, 16 Dec 2024 10:34:38 +0000 (19:34 +0900)]
vulkan : fix soft_max.comp division by zero (#2633)
This change prevents a division by zero error when p.KY is 0.
Georgi Gerganov [Mon, 16 Dec 2024 06:57:04 +0000 (08:57 +0200)]
common : add cstdio header
Georgi Gerganov [Sun, 15 Dec 2024 19:55:36 +0000 (21:55 +0200)]
stream : update build instructions
Thamster [Sat, 14 Dec 2024 15:25:53 +0000 (10:25 -0500)]
android : fix build and ci (#2624)
* Adding missing CMakeLists.txt include for ggm-cpu needed by whisper.android
* attempt to re-enable CI for JNI android
---------
Co-authored-by: Your Name <redacted>
Michael Rienstra [Thu, 12 Dec 2024 16:02:00 +0000 (08:02 -0800)]
models : fix typo in download-ggml-model.sh (#2623)
Introduced in #2589
KITAITI Makoto [Mon, 9 Dec 2024 11:17:50 +0000 (20:17 +0900)]
ruby : Sync whisper.cpp and model download feature (#2617)
* Use C++17
* Add test for Pathname of model
* Make Whisper::Context#initialize accept Pathname
* Add shorthand for pre-converted models
* Update documents
* Add headings to API section in README [skip ci]
* Remove unused function
* Don't care about no longer included file
* Cosmetic fix
* Use conditional get when get model files
Georgi Gerganov [Mon, 9 Dec 2024 09:30:16 +0000 (11:30 +0200)]
scripts : update to new build system
Georgi Gerganov [Sun, 8 Dec 2024 21:09:26 +0000 (23:09 +0200)]
devops : add cmake
Georgi Gerganov [Sun, 8 Dec 2024 21:07:29 +0000 (23:07 +0200)]
devops : update make commands
Georgi Gerganov [Sun, 8 Dec 2024 21:04:26 +0000 (23:04 +0200)]
ggml : remove old files (skip) (#0)
Georgi Gerganov [Sun, 8 Dec 2024 20:48:25 +0000 (22:48 +0200)]
ggml : sync remnants (skip) (#0)
Georgi Gerganov [Sun, 8 Dec 2024 20:48:14 +0000 (22:48 +0200)]
scripts : remove amx from sync
Georgi Gerganov [Sun, 8 Dec 2024 13:52:57 +0000 (15:52 +0200)]
ci : disable freeBSD builds [no ci]
Georgi Gerganov [Sun, 8 Dec 2024 13:48:14 +0000 (15:48 +0200)]
readme : update build instructions
Georgi Gerganov [Sun, 8 Dec 2024 13:36:01 +0000 (15:36 +0200)]
ci : disable CUDA and Android builds
Georgi Gerganov [Sun, 8 Dec 2024 11:35:35 +0000 (13:35 +0200)]
ci : disable Obj-C build + fixes
Georgi Gerganov [Fri, 6 Dec 2024 13:34:53 +0000 (15:34 +0200)]
make : shim cmake
Georgi Gerganov [Thu, 5 Dec 2024 12:30:33 +0000 (14:30 +0200)]
talk-llama : sync llama.cpp
Georgi Gerganov [Thu, 5 Dec 2024 12:29:18 +0000 (14:29 +0200)]
sync : ggml
Diego Devesa [Wed, 4 Dec 2024 13:45:40 +0000 (14:45 +0100)]
ggml : add predefined list of CPU backend variants to build (llama/10626)
* ggml : add predefined list of CPU backend variants to build
* update CPU dockerfiles
Diego Devesa [Wed, 4 Dec 2024 13:40:44 +0000 (14:40 +0100)]
ggml-cpu : fix HWCAP2_I8MM value (llama/10646)
Jeff Bolz [Wed, 4 Dec 2024 07:28:59 +0000 (01:28 -0600)]
vulkan: Implement "fast divide" (mul+shift) for unary ops like copy (llama/10642)
Nicolò Scipione [Wed, 4 Dec 2024 01:29:20 +0000 (02:29 +0100)]
SYCL : Move to compile time oneMKL interface backend selection for NVIDIA backend (llama/10584)
* [SYCL] Move to Compile Time backend selection on oneMKL Interface for NVIDIA backend
Move to compile time selection to backend to avoid latency at run time.
Add it to all mkl gemm calls and only for NVIDIA backend.
Signed-off-by: nscipione <redacted>
* Formatting
* Address PR comments to increase readibility
---------
Signed-off-by: nscipione <redacted>
Frankie Robertson [Wed, 4 Dec 2024 00:41:37 +0000 (02:41 +0200)]
Avoid using __fp16 on ARM with old nvcc (llama/10616)
Jeff Bolz [Tue, 3 Dec 2024 19:29:54 +0000 (13:29 -0600)]
vulkan: optimize and reenable split_k (llama/10637)
Use vector loads when possible in mul_mat_split_k_reduce. Use split_k
when there aren't enough workgroups to fill the shaders.
PAB [Wed, 4 Dec 2024 08:19:30 +0000 (09:19 +0100)]
ggml: add `GGML_SET` Metal kernel + i32 CPU kernel (ggml/1037)
* implemented cpu kernel
* add i32 test cases in test-backend-ops
* typedef `ggml_metal_kargs_set`
* implemented `kernel_set`
* memcpy
PAB [Tue, 3 Dec 2024 19:20:04 +0000 (20:20 +0100)]
ggml : add `GGML_PAD_REFLECT_1D` operation (ggml/1034)
* ggml_pad_reflect_1d defined in header
* implemented on CPU
* called the forward pass
* impl Metal kernel
* added Metal kernel
* added OP_PAD_REFLECT_1D in test-backend-ops.cpp
* add test-pad-reflect-1d test case
* test case support multiple backend
Georgi Gerganov [Tue, 3 Dec 2024 18:29:32 +0000 (20:29 +0200)]
files : remove make artifacts
Georgi Gerganov [Tue, 3 Dec 2024 18:25:37 +0000 (20:25 +0200)]
common : fix compile warning
ggml-ci
Diego Devesa [Tue, 3 Dec 2024 18:22:12 +0000 (20:22 +0200)]
ggml : move AMX to the CPU backend (llama/10570)
ggml : automatic selection of best CPU backend (llama/10606)
Georgi Gerganov [Tue, 3 Dec 2024 09:52:33 +0000 (11:52 +0200)]
metal : small-batch mat-mul kernels (llama/10581)
* metal : small-batch mat-mul kernels
ggml-ci
* metal : add rest of types
ggml-ci
* metal : final adjustments
ggml-ci
* metal : add comments
ggml-ci
Akarshan Biswas [Mon, 2 Dec 2024 07:04:11 +0000 (12:34 +0530)]
SYCL: Fix and switch to GGML_LOG system instead of fprintf (llama/10579)
* Switched to GGML_LOG
* Fix missing semicolon
Adrien Gallouët [Sat, 30 Nov 2024 17:13:18 +0000 (18:13 +0100)]
ggml-cpu: replace AArch64 NEON assembly with intrinsics in ggml_gemv_q4_0_4x4_q8_0() (llama/10567)
Signed-off-by: Adrien Gallouët <redacted>
Eve [Sat, 30 Nov 2024 07:00:02 +0000 (07:00 +0000)]
vulkan: Dynamic subgroup size support for Q6_K mat_vec (llama/10536)
* subgroup 64 version with subgroup add. 15% faster
scalable version
tested for subgroup sizes 16-128
* check for subgroup multiple of 16 and greater than 16
* subgroup sizes are always a power of 2 (https://github.com/KhronosGroup/GLSL/issues/45)
* force 16 sequential threads per block
* make 16 subgroup size a constant
Georgi Gerganov [Fri, 29 Nov 2024 14:25:39 +0000 (16:25 +0200)]
ggml : fix I8MM Q4_1 scaling factor conversion (llama/10562)
ggml-ci
Shupei Fan [Fri, 29 Nov 2024 13:49:02 +0000 (21:49 +0800)]
ggml-cpu: fix typo in gemv/gemm iq4_nl_4_4 (llama/10580)