]> git.djapps.eu Git - pkg/ggml/sources/ggml/commitdiff
vulkan: remove use of null initializer (llama/10372)
authorJeff Bolz <redacted>
Mon, 18 Nov 2024 14:28:42 +0000 (08:28 -0600)
committerGeorgi Gerganov <redacted>
Tue, 19 Nov 2024 11:46:15 +0000 (13:46 +0200)
Seems like this isn't working for vulkan-over-metal when the array is sized
by a spec constant. Maybe a spirv-cross limitation?

src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp

index ddbac5d2c933482c0f5c5126c9c6679a1e1f34a9..970aac6ef72ccb368c3e7e495e28335f4cdb5eca 100644 (file)
@@ -5,8 +5,6 @@
 #endif
 #extension GL_EXT_shader_explicit_arithmetic_types_int32 : require
 
-#extension GL_EXT_null_initializer : enable
-
 #include "mul_mat_vec_base.comp"
 
 layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in;
@@ -57,7 +55,11 @@ void compute_outputs(const uint32_t first_row, const uint32_t num_rows) {
 
     y_offset = QUANT_R == 1 ? 1 : QUANT_K/2;
 
-    FLOAT_TYPE temp[NUM_ROWS] = {};
+    FLOAT_TYPE temp[NUM_ROWS];
+
+    for (uint i = 0; i < NUM_ROWS; ++i) {
+        temp[i] = FLOAT_TYPE(0);
+    }
 
     const int unroll_count = 8;