函式 / 呼叫位置 | 功能說明 |
---|---|
llama_model_load_from_file() ( llama.cpp ) |
模型載入流程的主入口。使用者呼叫此函式載入 GGUF 模型。 |
└── llama_model_load_from_file_impl() ( llama.cpp ) |
實作細節,負責開啟檔案、檢查版本與初始化載入流程。 |
└── llama_model_load() ( llama.cpp ) |
實際建立模型的物件,並準備所有模型需要的元資料與張量映射。 |
└── llama_model_loader ml(...) (建構子)❗ |
建構 llama_model_loader ,啟動模型檔案讀取流程,包括張量表頭解析、初始化記憶體映射。 |
└── llama_model_loader::llama_model_loader() ( llama-model-loader.cpp ) |
解析 GGUF 模型的 metadata 和張量索引,並呼叫 init_mappings() 執行實際的記憶體映射。 |
└── init_mappings(...) ( llama-model-loader.cpp ) |
決定如何將模型張量資料映射進記憶體,通常使用 std::make_unique<llama_mmap>() 初始化對應的 backend loader。 |
└── std::make_unique<llama_mmap>() ( llama-model-loader.cpp )❗ |
建立 llama_mmap 物件,並準備好模型張量的讀取接口(從磁碟 mmap 到虛擬記憶體)。 |
└── llama_mmap::llama_mmap() ( llama-mmap.cpp ) |
實作記憶體映射邏輯,接收檔案描述子與大小,執行 mmap() 映射整個檔案。 |
└── mmap(...) ( llama-mmap.cpp )✅ |
實際呼叫 Linux 系統的 mmap() 系統呼叫,將模型檔案映射至虛擬位址空間,延遲加載(page fault 發生時才讀入頁面)。 |