]> git.djapps.eu Git - pkg/ggml/sources/ggml/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>
Thu, 24 Jul 2025 17:57:40 +0000 (20:57 +0300)
commita7c7bba0953386db627f17ab0d8d122b9900537f
tree4c7646eaaca9e1550525c5046f7dc40f13d70e6c
parentef3def59812d27c86b3e8f9267688a3766dd87c6
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.
src/ggml-vulkan/ggml-vulkan.cpp
src/ggml-vulkan/vulkan-shaders/conv2d_mm.comp [new file with mode: 0644]
src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp
tests/test-backend-ops.cpp