forked from ggml-org/llama.cpp
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit 3919da8
ggml : add check for grad_accs (ggml/1046)
* ggml : add check for grad_accs
This commit adds a check for grad_accs in ggml_graph_get_grad and
ggml_graph_get_grad_acc functions. This is necessary to avoid segfaults
when grad_accs is not initialized.
The motivation for this change is that I find it nice to be able to
print out a computation graph using ggml_graph_print but this function
segfaults when grad_accs is not initialized:
```console
(gdb) p g1
2ドル = (ggml_cgraph *) 0x7ffff66004b0
(gdb) p *g1
3ドル = {size = 2048, n_nodes = 1, n_leafs = 2, nodes = 0x7ffff6600500,
grads = 0x0, grad_accs = 0x0, leafs = 0x7ffff6604500,
visited_hash_set = {size = 4099, used = 0x7ffff6610518,
keys = 0x7ffff6608500}, order = GGML_CGRAPH_EVAL_ORDER_LEFT_TO_RIGHT}
(gdb) p ggml_graph_print(g1)
=== GRAPH ===
n_nodes = 1
Program received signal SIGSEGV, Segmentation fault.
0x0000555555579775 in ggml_graph_get_grad
(cgraph=0x7ffff66004b0,node=0x7ffff6600340)
at /ggml/ggml/src/ggml.c:5990
5990 return igrad != GGML_HASHSET_FULL &&
ggml_bitset_get(cgraph->visited_hash_set.used, igrad) ?
cgraph->grads[igrad] : NULL;
```
* squash! ggml : add check for grad_accs
Fix the check in ggml_graph_get_grad. The check was incorrectly using
cgraph->grad_accs instead of cgraph->grads.1 parent 0006f5a commit 3919da8
1 file changed
+2
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6037 | 6037 | | |
6038 | 6038 | | |
6039 | 6039 | | |
6040 | - | ||
6040 | + | ||
6041 | 6041 | | |
6042 | 6042 | | |
6043 | 6043 | | |
6044 | 6044 | | |
6045 | - | ||
6045 | + | ||
6046 | 6046 | | |
6047 | 6047 | | |
6048 | 6048 | | |
| |||
0 commit comments