Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
987ffec
[feat] tombstone evicted dynamic embedding keys in delta dump
eric-gecheng Aug 21, 2026
c725130
[bugfix] make dump_evicted_tombstones opt-in
eric-gecheng Aug 21, 2026
4e1f848
[bugfix] make evicted-key tombstone integration test deterministic
eric-gecheng Aug 21, 2026
e1f66b5
[chore] revert the .pyre_configuration trailing-comma fix
eric-gecheng Aug 23, 2026
60a1844
[feat] publish evicted-key tombstones in bounded chunks by default
eric-gecheng Aug 23, 2026
f9bbbda
[bugfix] disarm evicted-key retention after training
eric-gecheng Aug 23, 2026
be85042
[chore] bump version to 1.3.17
eric-gecheng Aug 24, 2026
7f0f8e9
[chore] bump version to 1.3.18
eric-gecheng Aug 24, 2026
11041ac
[refactor] drop ineffective post-training evicted-key retention reset
eric-gecheng Aug 24, 2026
f198e52
[perf] materialize dynamic key ids on host once per dump
eric-gecheng Aug 24, 2026
f535be1
[perf] resolve dynamic delta rows and tombstones in one lookup
eric-gecheng Aug 24, 2026
0329280
[perf] batch the merged dynamic delta lookup
eric-gecheng Aug 24, 2026
767d2e8
Merge branch 'master' into bugfix/delta_dump_evicted_keys
eric-gecheng Aug 24, 2026
3c525f6
[bugfix] fix CPU/CUDA device mismatch in evicted-key tombstone mask
eric-gecheng Aug 24, 2026
3b31598
[feat] reject non-zero dynemb eval initializers under tombstone dump
eric-gecheng Aug 24, 2026
41b6a78
[perf] stop round-tripping dynamic delta key ids across devices
eric-gecheng Aug 24, 2026
4c05528
[perf] share one quantized zero buffer across INT8 tombstone chunks
eric-gecheng Aug 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion tzrec/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,12 @@
from tzrec.protos.model_pb2 import Kernel as KernelProto
from tzrec.protos.model_pb2 import ModelConfig
from tzrec.protos.train_pb2 import TrainConfig
from tzrec.utils import checkpoint_util, config_util, predict_util
from tzrec.utils import (
checkpoint_util,
config_util,
dynamicemb_util,
predict_util,
)
from tzrec.utils.delta_embedding_dump import DeltaEmbeddingDumper
from tzrec.utils.dist_util import (
DistributedModelParallel,
Expand Down Expand Up @@ -689,6 +694,12 @@ def train_and_evaluate(
is_local_rank_zero = int(os.environ.get("LOCAL_RANK", 0)) == 0
acc_utils.allow_tf32(train_config)
enable_delta_embedding_dump = train_config.HasField("delta_embedding_dump_config")
# Arm evicted-key retention before feature/model building so the dump's
# pop_evicted_keys drain has a buffer to consume on every dynamicemb table.
dynamicemb_util.set_auto_retain_evicted_keys(
Comment thread
eric-gecheng marked this conversation as resolved.
enable_delta_embedding_dump
and train_config.delta_embedding_dump_config.dump_evicted_tombstones
)

data_config = pipeline_config.data_config
# Build feature
Expand Down
10 changes: 10 additions & 0 deletions tzrec/protos/train.proto
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,16 @@ message DeltaEmbeddingDumpConfig {
// even embedding_dim.
optional DeltaEmbeddingQuantType quant_type = 6
[default = DELTA_EMBEDDING_QUANT_NONE];
// Publish all-zero tombstone rows for dynamicemb keys evicted since the
Comment thread
eric-gecheng marked this conversation as resolved.
// last dump; the polling processor detects them and deletes the key from
// NvEmbeddings, reclaiming its memory (FeatureStore has no delete). While
// enabled, delta dump mode also arms dynamicemb's evicted-key recording
// (evicted_item_mode=RETAIN_KEY) automatically; the retained keys live in
// per-rank GPU memory and grow with eviction volume until each dump
// drains them, so keep the dump interval short on high-churn tables.
// Requires a dynamicemb build with EvictedItemMode; older builds degrade
// to a warning.
optional bool dump_evicted_tombstones = 7 [default = true];
}

message TrainConfig {
Expand Down
Loading
Loading