]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commit
ggml: adds CONV_2D op and direct GEMM Vulkan implementation (llama/14316)
authorErvin Áron Tasnádi <redacted>
Sat, 19 Jul 2025 19:59:08 +0000 (21:59 +0200)
committerGeorgi Gerganov <redacted>
Mon, 28 Jul 2025 10:02:32 +0000 (13:02 +0300)
commit92a9e85d8bcd432ae5753784e6a325c5bcd4a07b
treef263ca40c5c23348eea059919c5d89596202c8e1
parent50f983a17e646d9e333bd3ae13e175abe66decdc
ggml: adds CONV_2D op and direct GEMM Vulkan implementation (llama/14316)

* ggml/ggml-vulkan/test-backend-ops: adds CONV_2D for Vulkan

* ggml-vulkan: adds f32 scalar shader to compute 2D convolution directly
with gemm (no need for im2col),

* test-backend-ops: adds test_case_ref to check the validity/performance of ops
against reference implementations having different graphs, adds tests

* * Performance fixes: minimized branch divergence, uses collectives to
  eliminate redundant calculation, macros removed.

* Kernel shared memory size check

* Updates test-backend-ops to support graphs for performance
  measurement.

* * Apple/Win32 compile errors fixed

* Subgroup size used to determine tile size -> fixes llvmpipe errors.

* Collectives disabled by default.

* Intel support is disabled as the performance is poor.

* Conv2d enabled for Intel with disabled collectives, disabled for Apple

* test-backend-ops modifications are reverted

* Trailing spaces and missing override fixed.

* Triggering pipeline relaunch.

* Code formatted with .clang-format.
ggml/src/ggml-vulkan/ggml-vulkan.cpp
ggml/src/ggml-vulkan/vulkan-shaders/conv2d_mm.comp [new file with mode: 0644]
ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp