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

Method buffered_alloc

llama.cpp:3011–3027  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3009 buffered_tensor_allocator(llama_model_loader &ml, ggml_context *ctx, const llama_hparams &hparams) : ml(ml), ctx(ctx), hparams(hparams) {}
3010
3011 ggml_tensor * buffered_alloc(const std::string & name, const llm_tensor tensor_type, const std::vector<int64_t> & ne, const int i_layer) {
3012#if defined(GGML_USE_CUBLAS)
3013 tensor_offloading_levels level = get_offloading_level(tensor_type);
3014 if (level == TENSOR_NO_OFFLOAD || level == TENSOR_OFFLOAD_FFN) {
3015 return ml.create_tensor(ctx, name, ne, GGML_BACKEND_CPU);
3016 }
3017 // Alloc only metadata for GPU tensors
3018 bool no_alloc = ctx->no_alloc;
3019 ggml_set_no_alloc(ctx, true);
3020 ggml_tensor * meta_tensor = ml.create_tensor(ctx, name, ne, GGML_BACKEND_CPU);
3021 ggml_set_no_alloc(ctx, no_alloc);
3022 alloc_queues[level].push_back(std::make_tuple(i_layer, tensor_type, meta_tensor));
3023 return meta_tensor;
3024#else
3025 return ml.create_tensor(ctx, name, ne, GGML_BACKEND_CPU);
3026#endif
3027 }
3028
3029 bool offload_tensor(ggml_tensor * meta_tensor) {
3030 size_t tensor_data_size = ggml_nbytes(meta_tensor);

Callers 1

Calls 4

get_offloading_levelFunction · 0.85
ggml_set_no_allocFunction · 0.70
create_tensorMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected