Continuum C++ API
Unified runtime for token + tensor execution
Loading...
Searching...
No Matches
checkpoint.hpp
Go to the documentation of this file.
1#pragma once
2
6
7#include <cstdint>
8#include <string>
9#include <unordered_map>
10#include <vector>
11
13
14// One portable KV cache entry: the token path it covers plus the backend
15// state exported to bytes. Entries whose backend cannot export state are
16// simply not checkpointed.
18 std::string model_id;
20 std::int32_t prefix_len = 0;
21 std::vector<std::int32_t> tokens;
22 std::vector<std::uint8_t> state_bytes;
23 std::string cache_namespace;
24};
25
26struct Checkpoint {
27 std::vector<std::uint8_t> serialized_graph;
28 std::uint64_t current_node_index = 0;
29 std::unordered_map<ir::NodeId, continuum::Value> value_map;
30 std::vector<CheckpointCacheEntry> cache_snapshot;
31};
32
33std::vector<std::uint8_t> serialize_value(const continuum::Value& value);
34continuum::Value deserialize_value(const std::uint8_t* data, std::size_t len);
35
36std::vector<std::uint8_t> serialize_checkpoint(const Checkpoint& checkpoint);
37Checkpoint deserialize_checkpoint(const std::vector<std::uint8_t>& bytes);
38
41std::vector<std::uint8_t> migrate_checkpoint(const std::vector<std::uint8_t>& bytes);
42
46std::vector<std::uint8_t> serialize_checkpoint_delta(const Checkpoint& base, const Checkpoint& next);
49Checkpoint apply_checkpoint_delta(const Checkpoint& base, const std::vector<std::uint8_t>& delta);
51bool is_checkpoint_delta(const std::vector<std::uint8_t>& bytes);
52
53std::vector<std::uint8_t> checkpoint_graph(const ir::Graph& graph);
54ir::Graph restore_graph(const std::vector<std::uint8_t>& bytes);
55
56} // namespace continuum::runtime
Definition graph.hpp:11
Definition checkpoint.hpp:12
Checkpoint apply_checkpoint_delta(const Checkpoint &base, const std::vector< std::uint8_t > &delta)
Checkpoint deserialize_checkpoint(const std::vector< std::uint8_t > &bytes)
std::vector< std::uint8_t > checkpoint_graph(const ir::Graph &graph)
ir::Graph restore_graph(const std::vector< std::uint8_t > &bytes)
std::vector< std::uint8_t > serialize_checkpoint(const Checkpoint &checkpoint)
continuum::Value deserialize_value(const std::uint8_t *data, std::size_t len)
std::vector< std::uint8_t > serialize_value(const continuum::Value &value)
std::vector< std::uint8_t > serialize_checkpoint_delta(const Checkpoint &base, const Checkpoint &next)
std::vector< std::uint8_t > migrate_checkpoint(const std::vector< std::uint8_t > &bytes)
bool is_checkpoint_delta(const std::vector< std::uint8_t > &bytes)
True when bytes start with the delta magic ("CPD1").
std::variant< TensorValue, MlxTensorValue, TokensValue, SchemaValue, std::string, double, int64_t > Value
Definition value.hpp:30
Definition checkpoint.hpp:17
std::string model_id
Definition checkpoint.hpp:18
std::vector< std::uint8_t > state_bytes
Definition checkpoint.hpp:22
std::string cache_namespace
Definition checkpoint.hpp:23
std::vector< std::int32_t > tokens
Definition checkpoint.hpp:21
DecodeParams decode
Definition checkpoint.hpp:19
std::int32_t prefix_len
Definition checkpoint.hpp:20
Definition checkpoint.hpp:26
std::uint64_t current_node_index
Definition checkpoint.hpp:28
std::vector< std::uint8_t > serialized_graph
Definition checkpoint.hpp:27
std::unordered_map< ir::NodeId, continuum::Value > value_map
Definition checkpoint.hpp:29
std::vector< CheckpointCacheEntry > cache_snapshot
Definition checkpoint.hpp:30
Definition kv_prefix_cache.hpp:12