]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
ggml : fix soft max out-of-bounds access (#4307)
authorGeorgi Gerganov <redacted>
Sun, 3 Dec 2023 13:56:22 +0000 (15:56 +0200)
committerGitHub <redacted>
Sun, 3 Dec 2023 13:56:22 +0000 (15:56 +0200)
ggml-ci

ggml.c

diff --git a/ggml.c b/ggml.c
index e2687ef4f072f089f190b8d75f2e87910b45d0e2..cecb12700ea858bb3feac2121d34feabb0f51260 100644 (file)
--- a/ggml.c
+++ b/ggml.c
@@ -15629,7 +15629,6 @@ static int ggml_get_n_tasks(struct ggml_tensor * node, int n_threads) {
             } break;
         case GGML_OP_DIAG_MASK_ZERO:
         case GGML_OP_DIAG_MASK_INF:
-        case GGML_OP_SOFT_MAX:
         case GGML_OP_SOFT_MAX_BACK:
         case GGML_OP_ROPE:
         case GGML_OP_ROPE_BACK:
@@ -15645,6 +15644,10 @@ static int ggml_get_n_tasks(struct ggml_tensor * node, int n_threads) {
             {
                 n_tasks = 1; //TODO
             } break;
+        case GGML_OP_SOFT_MAX:
+            {
+                n_tasks = MIN(MIN(4, n_threads), ggml_nrows(node->src[0]));
+            } break;
         case GGML_OP_CONV_TRANSPOSE_1D:
             {
                 n_tasks = n_threads;