Entropic 2.14.3
Local-first agentic inference engine
Loading...
Searching...
No Matches
expert_offload_buft.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
35#pragma once
36
37#include "expert_offload.h"
38
39#include <llama.h>
40
41#include <cstddef>
42#include <string>
43#include <vector>
44
45namespace entropic {
46
60public:
71 ExpertOffloadOverrides(int cpu_moe_layers,
73 : patterns_(expert_offload_patterns(cpu_moe_layers)) {
74 if (patterns_.empty()) { return; }
75 // +1 for the terminator. Reserved up front so no push_back can
76 // reallocate mid-fill; `patterns_` is never modified after the
77 // member initializer, so every c_str() below stays valid.
78 overrides_.reserve(patterns_.size() + 1);
79 for (const std::string& pattern : patterns_) {
80 overrides_.push_back({pattern.c_str(), cpu_buft});
81 }
82 overrides_.push_back({nullptr, nullptr});
83 }
84
86 ExpertOffloadOverrides& operator=(const ExpertOffloadOverrides&) = delete;
89 ~ExpertOffloadOverrides() = default;
90
98 return overrides_.empty() ? nullptr : overrides_.data();
99 }
100
107 const std::vector<std::string>& patterns() const { return patterns_; }
108
115 std::size_t size() const { return patterns_.size(); }
116
117private:
118 std::vector<std::string> patterns_;
119 std::vector<llama_model_tensor_buft_override> overrides_;
120};
121
122} // namespace entropic
Owning, null-terminated tensor-buffer override list for expert offload.
std::size_t size() const
Number of override entries, excluding the terminator.
const std::vector< std::string > & patterns() const
The owned pattern strings, in layer order.
const llama_model_tensor_buft_override * data() const
Pointer to hand to llama_model_params::tensor_buft_overrides.
ExpertOffloadOverrides(int cpu_moe_layers, ggml_backend_buffer_type_t cpu_buft)
Build the override list for the first N layers.
EXPERIMENTAL (v2.13.0): put a MoE layer's routed-expert tensors on the host while its attention,...
Activate model on GPU (WARM → ACTIVE).
@ optional
optional: every escape asks the host's path approver
std::vector< std::string > expert_offload_patterns(int cpu_moe_layers)
Patterns for the FIRST cpu_moe_layers layers, in layer order.