MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / ggml_gallocr_alloc_graph

Function ggml_gallocr_alloc_graph

ggml-alloc.c:638–665  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

636}
637
638size_t ggml_gallocr_alloc_graph(ggml_gallocr_t galloc, ggml_tallocr_t talloc, struct ggml_cgraph * graph) {
639 size_t hash_size = graph->visited_hash_table.size;
640
641 // check if the hash table is initialized and large enough
642 if (galloc->hash_set.size < hash_size) {
643 if (galloc->hash_set.keys != NULL) {
644 free(galloc->hash_set.keys);
645 }
646 if (galloc->hash_values != NULL) {
647 free(galloc->hash_values);
648 }
649 galloc->hash_set.keys = malloc(sizeof(struct ggml_tensor *) * hash_size);
650 galloc->hash_set.size = hash_size;
651 galloc->hash_values = malloc(sizeof(struct hash_node) * hash_size);
652 }
653
654 // reset hash table
655 memset(galloc->hash_set.keys, 0, sizeof(struct ggml_tensor *) * hash_size);
656 memset(galloc->hash_values, 0, sizeof(struct hash_node) * hash_size);
657
658 galloc->talloc = talloc;
659 ggml_tallocr_alloc_graph_impl(galloc, graph);
660 galloc->talloc = NULL;
661
662 size_t max_size = ggml_tallocr_max_size(talloc);
663
664 return max_size;
665}
666
667void ggml_gallocr_alloc_graph_n(ggml_gallocr_t galloc, struct ggml_cgraph * graph, struct ggml_hash_set hash_set, ggml_tallocr_t * hash_node_talloc) {
668 const size_t hash_size = hash_set.size;

Callers 1

ggml_allocr_alloc_graphFunction · 0.70

Calls 2

ggml_tallocr_max_sizeFunction · 0.85

Tested by

no test coverage detected