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

Method llama_gpu_split_loader

llama.cpp:2795–2814  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2793 size_t vram_required = 0;
2794
2795 llama_gpu_split_loader(const std::string & fname, bool use_mmap) : fname(fname), use_mmap(use_mmap) {
2796 GGML_ASSERT(use_mmap);
2797
2798 idx_loader = new llama_model_loader(fname, use_mmap);
2799 GGUF_GET_KEY(idx_loader->ctx_gguf, vram_required, gguf_get_val_u64, GGUF_TYPE_UINT64, true, LLM_KV_NAMES[LLM_KV_SPLIT_VRAM_CAPACITY]);
2800 printf("loaded gpu_idx, vram_required: %ld\n", vram_required);
2801
2802 n_tensors = idx_loader->n_tensors;
2803
2804 // allocate memadata/data for mlp tensors
2805 // TODO: support allocating buffer for tensor data (when mmap is not used)
2806 size_t per_tensor_meta_size = GGML_PAD(sizeof(struct ggml_tensor), GGML_MEM_ALIGN) + GGML_OBJECT_SIZE;
2807 size_t tensor_meta_size = n_tensors * per_tensor_meta_size;
2808 struct ggml_init_params params = {
2809 /*.mem_size =*/ tensor_meta_size,
2810 /*.mem_buffer =*/ nullptr,
2811 /*.no_alloc =*/ true,
2812 };
2813 ctx_meta = ggml_init(params);
2814 }
2815
2816 bool check_vram_allocable(size_t vram_budget) {
2817 return vram_budget >= vram_required;

Callers

nothing calls this directly

Calls 2

printfFunction · 0.85
ggml_initFunction · 0.70

Tested by

no test coverage detected