]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
speculative : fix seg fault in certain cases (#12454)
authorGeorgi Gerganov <redacted>
Tue, 18 Mar 2025 17:35:11 +0000 (19:35 +0200)
committerGitHub <redacted>
Tue, 18 Mar 2025 17:35:11 +0000 (19:35 +0200)
examples/speculative/speculative.cpp

index bfddc67e034fbe42d5cf6da83bf8056422e73de1..627d01bbcb5ad6d87315b83bf8bf55062255da19 100644 (file)
@@ -331,11 +331,11 @@ int main(int argc, char ** argv) {
                         }
 
                         active_seqs.erase(s);
-                        for(int i = 0; i < n_seq_dft; i++) {
+                        for (int i = 0; i < n_seq_dft; i++) {
                             if (i == s) {
                                 continue;
                             }
-                            if (drafts[i].tokens[i_dft] == drafts[s].tokens[i_dft]) {
+                            if (drafts[i].active && drafts[i].tokens[i_dft] == drafts[s].tokens[i_dft]) {
                                 // synchronize active status for sequences with the same drafted token
                                 drafts[i].active = drafts[i].active && accept;
                                 if (!drafts[i].active) {