]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
ggml: adds CONV_2D op and direct GEMM Vulkan implementation (#14316)
authorErvin Áron Tasnádi <redacted>
Sat, 19 Jul 2025 19:59:08 +0000 (21:59 +0200)
committerGitHub <redacted>
Sat, 19 Jul 2025 19:59:08 +0000 (21:59 +0200)
commita979ca22db0d737af1e548a73291193655c6be99
tree3f6f3a8e3d938727742ed28342e78087a7441d6d
parent90083283ec254fa8d33897746dea229aee401b37
ggml: adds CONV_2D op and direct GEMM Vulkan implementation (#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
tests/test-backend-ops.cpp