Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 25 additions & 0 deletions tensorrt_llm/_torch/pyexecutor/_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,31 @@ def __init__(
KVCacheManagerV2)
self._draft_config = draft_config
self._skip_est = skip_est
self._maybe_enable_fabric_memory_for_python_transceiver()

def _maybe_enable_fabric_memory_for_python_transceiver(self):
"""Default TRTLLM_KVCACHE_POOL_USE_FABRIC_MEMORY=1 for the Python
transceiver on the C++ V1 KV cache manager.

The Python transceiver (KvCacheTransceiverV2) transfers KV blocks
directly out of the C++ pool, so the pool should be allocated with
fabric memory to enable MNNVL transfers. This must run before any
pool allocation because the C++ env getter caches the value on first
read. Explicit user settings are respected, and platforms without
fabric memory support fall back to standard allocation in C++.
"""
if (self._cache_transceiver_config is None
or self._cache_transceiver_config.backend is None or
self._cache_transceiver_config.transceiver_runtime != "PYTHON"):
return
if not issubclass(self._kv_cache_manager_cls, KVCacheManager):
return
if os.environ.get("TRTLLM_KVCACHE_POOL_USE_FABRIC_MEMORY") is None:
os.environ["TRTLLM_KVCACHE_POOL_USE_FABRIC_MEMORY"] = "1"
logger.info(
"Python cache transceiver with C++ KV cache manager detected; "
"defaulting TRTLLM_KVCACHE_POOL_USE_FABRIC_MEMORY=1 (set it "
"to 0 explicitly to disable)")

def _get_model_kv_cache_manager_cls(
self,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ worker_config:
max_tokens_in_buffer: 1024
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
num_postprocess_workers: 4
stream_interval: 20
Expand All @@ -88,4 +89,5 @@ worker_config:
max_tokens_in_buffer: 1024
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ worker_config:
max_tokens_in_buffer: 9216
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: false
num_postprocess_workers: 4
stream_interval: 20
Expand Down Expand Up @@ -103,6 +104,7 @@ worker_config:
max_tokens_in_buffer: 9216
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
num_postprocess_workers: 4
stream_interval: 20
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
num_postprocess_workers: 4
stream_interval: 20
Expand All @@ -88,4 +89,5 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
num_postprocess_workers: 4
stream_interval: 20
Expand All @@ -88,4 +89,5 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ worker_config:
max_tokens_in_buffer: 9216
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: false
num_postprocess_workers: 4
stream_interval: 20
Expand Down Expand Up @@ -103,6 +104,7 @@ worker_config:
max_tokens_in_buffer: 9216
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
num_postprocess_workers: 4
stream_interval: 20
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
num_postprocess_workers: 4
stream_interval: 20
Expand All @@ -99,4 +100,5 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
num_postprocess_workers: 4
stream_interval: 20
Expand All @@ -99,4 +100,5 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
speculative_config: &id001
decoding_type: Eagle
Expand Down Expand Up @@ -110,5 +111,6 @@ worker_config:
max_tokens_in_buffer: 8448
backend: NIXL
transceiver_runtime: PYTHON
kv_cache_bounce_size_mb: 512
disable_overlap_scheduler: true
speculative_config: *id001
Loading