Rebase changes

This commit is contained in:
Gaurav Garg
2026-08-06 00:27:46 +05:30
parent 483169a47e
commit fea0c3d410
4 changed files with 10 additions and 34 deletions
+5 -8
View File
@@ -805,14 +805,11 @@ static void ggml_gallocr_alloc_graph_impl(ggml_gallocr_t galloc, struct ggml_cgr
if (ggml_impl_is_view(parent)) {
struct ggml_tensor * view_src = parent->view_src;
struct hash_node * view_src_hn = ggml_gallocr_hash_get(galloc, view_src);
// output views keep their source alive until graph completion
if (!(parent->flags & GGML_TENSOR_FLAG_OUTPUT)) {
view_src_hn->n_views -= 1;
AT_PRINTF("view_src %s: %d children, %d views\n",
view_src->name, view_src_hn->n_children, view_src_hn->n_views);
if (view_src_hn->n_views == 0 && view_src_hn->n_children == 0 && view_src_hn->allocated) {
ggml_gallocr_free_node(galloc, view_src);
}
view_src_hn->n_views -= 1;
AT_PRINTF("view_src %s: %d children, %d views\n",
view_src->name, view_src_hn->n_children, view_src_hn->n_views);
if (view_src_hn->n_views == 0 && view_src_hn->n_children == 0 && view_src_hn->allocated) {
ggml_gallocr_free_node(galloc, view_src);
}
}
else if (p_hn->allocated) {
+5 -4
View File
@@ -570,7 +570,8 @@ struct llama_sampler_backend_probe {
static llama_sampler_backend_probe llama_sampler_backend_probe_graph(
llama_sampler * sampler,
int64_t n_candidates,
uint32_t max_nodes) {
uint32_t max_nodes,
bool with_candidates) {
ggml_init_params params = {
/*.mem_size =*/ max_nodes * ggml_tensor_overhead() + ggml_graph_overhead_custom(max_nodes, false),
/*.mem_buffer =*/ nullptr,
@@ -589,7 +590,7 @@ static llama_sampler_backend_probe llama_sampler_backend_probe_graph(
/*.logits =*/ ggml_new_tensor_1d(ctx, GGML_TYPE_F32, n_candidates),
/*.probs =*/ nullptr,
/*.sampled =*/ nullptr,
/*.candidates =*/ ggml_new_tensor_1d(ctx, GGML_TYPE_I32, n_candidates),
/*.candidates =*/ with_candidates ? ggml_new_tensor_1d(ctx, GGML_TYPE_I32, n_candidates) : nullptr,
};
if (sampler->iface->backend_reset) {
@@ -630,7 +631,7 @@ static bool llama_sampler_backend_support(
return true;
}
auto probe = llama_sampler_backend_probe_graph(smpl, 1024*1024, GGML_DEFAULT_GRAPH_SIZE);
auto probe = llama_sampler_backend_probe_graph(smpl, 1024*1024, GGML_DEFAULT_GRAPH_SIZE, true);
for (int i = 0; i < ggml_graph_n_nodes(probe.gf); i++) {
struct ggml_tensor * op = ggml_graph_node(probe.gf, i);
@@ -750,7 +751,7 @@ static bool llama_sampler_chain_backend_init(
res = res && res_cur;
}
auto probe = llama_sampler_backend_probe_graph(smpl, 1024*1024, GGML_DEFAULT_GRAPH_SIZE);
auto probe = llama_sampler_backend_probe_graph(smpl, 1024*1024, GGML_DEFAULT_GRAPH_SIZE, false);
chain->n_nodes = llama_sampler_backend_probe_n_nodes(probe);
return res;
-20
View File
@@ -388,25 +388,6 @@ static void test_view_inplace() {
GGML_ASSERT(backend.context->allocated_total() <= 24);
}
static void test_output_view_lifetime() {
dummy_backend backend = dummy_backend_init(SIZE_MAX);
auto [ctx, graph, ctx_ptr] = make_context();
ggml_tensor * x[5];
x[0] = make_input_1d(ctx, 4);
x[1] = ggml_scale(ctx, x[0], 2.0f);
x[2] = ggml_reshape_2d(ctx, x[1], 2, 2);
x[3] = ggml_sum(ctx, x[2]);
x[4] = ggml_pad(ctx, x[3], 3, 0, 0, 0);
assign_names(ctx);
ggml_set_output(x[2]);
ggml_gallocr_ptr galloc = allocate_graph(graph, x[4], &backend.buffer_type);
check_all_allocated(graph);
check_max_size(ctx);
GGML_ASSERT(!memory_overlap(x[2], x[4]));
}
static void test_reuse_and_free() {
dummy_backend backend = dummy_backend_init(40);
auto [ctx, graph, ctx_ptr] = make_context();
@@ -616,7 +597,6 @@ int main() {
run("test_not_enough_chunks", test_not_enough_chunks);
run("test_fill_leftover_space", test_fill_leftover_space);
run("test_view_inplace", test_view_inplace);
run("test_output_view_lifetime", test_output_view_lifetime);
run("test_reuse_and_free", test_reuse_and_free);
run("test_merge_free_block(32)", []() { test_merge_free_block(32); });
run("test_merge_free_block(SIZE_MAX)", []() { test_merge_free_block(SIZE_MAX); });
-2
View File
@@ -1924,11 +1924,9 @@ static void test_backend_multi_output_sampling_chain(const test_params & params)
llama_batch_free(batch);
const int32_t n_reused_before_repeat = llama_perf_context(test_ctx.ctx.get()).n_reused;
batch = make_batch(2);
GGML_ASSERT(llama_decode(test_ctx.ctx.get(), batch) == 0);
llama_batch_free(batch);
GGML_ASSERT(llama_perf_context(test_ctx.ctx.get()).n_reused > n_reused_before_repeat);
printf("backend multi-output sampling chain test PASSED\n");
}