]> git.djapps.eu Git - pkg/ggml/sources/ggml/commitdiff
Vulkan Phi Fix for AMD Proprietary Drivers (llama/5260)
author0cc4m <redacted>
Thu, 1 Feb 2024 18:25:24 +0000 (19:25 +0100)
committerGeorgi Gerganov <redacted>
Sat, 10 Feb 2024 07:30:57 +0000 (09:30 +0200)
* Replace tanh to avoid NaN in gelu shader on AMD proprietary driver

* Fix another Vulkan CPY buffer size bug

ggml-vulkan.cpp

index bccc40bf5ed82dd40f990b27e6dee96e285f0bac..b1e0006bb4ed679feea90db347e9a273a96b8105 100644 (file)
@@ -2876,6 +2876,9 @@ static void ggml_vk_op_f32(vk_context * ctx, const ggml_tensor * src0, const ggm
         x_sz = ggml_nbytes(src0);
         d_sz = ggml_nbytes(dst);
 
+        if (extra_src0->offset + x_sz >= d_X->size) {
+            x_sz = VK_WHOLE_SIZE;
+        }
         if (extra->offset + d_sz >= d_D->size) {
             d_sz = VK_WHOLE_SIZE;
         }
@@ -2911,12 +2914,16 @@ static void ggml_vk_op_f32(vk_context * ctx, const ggml_tensor * src0, const ggm
             break;
         }
 
-        x_sz *= ne02 * ne03;
-        if (y_sz != VK_WHOLE_SIZE) {
-            y_sz *= ne12 * ne13;
-        }
         if (op != GGML_OP_CPY) {
-            d_sz *= ne02 * ne03;
+            if (x_sz != VK_WHOLE_SIZE) {
+                x_sz *= ne02 * ne03;
+            }
+            if (y_sz != VK_WHOLE_SIZE) {
+                y_sz *= ne12 * ne13;
+            }
+            if (d_sz != VK_WHOLE_SIZE) {
+                d_sz *= ne02 * ne03;
+            }
         }
 
         if (!use_src1 && op == GGML_OP_SOFT_MAX) {