For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://docs.nvidia.com/dynamo/llms.txt. For full content including API reference and SDK examples, see https://docs.nvidia.com/dynamo/llms-full.txt.
Примеры Profiler
Полные примеры профилирования с помощью DGDR.
Примеры DGDR
Плотная модель: быстрый режим
Быстрое профилирование (~30 секунд):
apiVersion: nvidia.com/v1beta1
kind: DynamoGraphDeploymentRequest
metadata:
name: qwen-0-6b
spec:
model: "Qwen/Qwen3-0.6B"
image: "nvcr.io/nvidia/ai-dynamo/dynamo-planner:1.2.0" # dynamo-frontend for Dynamo < 1.1.0
Плотная модель: тщательный режим
Профилирование с реальными измерениями на GPU:
apiVersion: nvidia.com/v1beta1
kind: DynamoGraphDeploymentRequest
metadata:
name: vllm-dense-online
spec:
model: "Qwen/Qwen3-0.6B"
backend: vllm
image: "nvcr.io/nvidia/ai-dynamo/dynamo-planner:1.2.0" # dynamo-frontend for Dynamo < 1.1.0
searchStrategy: thorough
MoE-модель
Многоузловое профилирование MoE с SGLang:
PVC, на который ссылается modelCache.pvcName, должен уже существовать в том же namespace и содержать
веса модели по указанному pvcModelPath. Контроллер DGDR не создает и не
заполняет PVC — он только монтирует его в profiling job и развернутые worker.
apiVersion: nvidia.com/v1beta1
kind: DynamoGraphDeploymentRequest
metadata:
name: sglang-moe
spec:
model: "deepseek-ai/DeepSeek-R1"
backend: sglang
image: "nvcr.io/nvidia/ai-dynamo/dynamo-planner:1.2.0" # dynamo-frontend for Dynamo < 1.1.0
hardware:
numGpusPerNode: 8
modelCache:
pvcName: "model-cache"
pvcModelPath: "deepseek-r1" # path within the PVC
Приватная модель
Для gated или приватных моделей HuggingFace передавайте токен через переменную окружения, внедренную в profiling job. Сначала создайте secret:
kubectl create secret generic hf-token-secret \
--from-literal=HF_TOKEN="${HF_TOKEN}" \
-n ${NAMESPACE}
Затем укажите его в DGDR:
apiVersion: nvidia.com/v1beta1
kind: DynamoGraphDeploymentRequest
metadata:
name: llama-private
spec:
model: "meta-llama/Llama-3.1-8B-Instruct"
image: "nvcr.io/nvidia/ai-dynamo/dynamo-planner:1.2.0" # dynamo-frontend for Dynamo < 1.1.0
overrides:
profilingJob:
template:
spec:
containers: [] # required placeholder; leave empty to inherit defaults
initContainers:
- name: profiler
env:
- name: HF_TOKEN
valueFrom:
secretKeyRef:
name: hf-token-secret
key: HF_TOKEN
Пользовательские цели SLA
Управляйте тем, как profiler оптимизирует ваше развертывание, задавая цели по задержке и характеристики нагрузки.
Явные цели TTFT + ITL (режим по умолчанию):
apiVersion: nvidia.com/v1beta1
kind: DynamoGraphDeploymentRequest
metadata:
name: low-latency-dense
spec:
model: "Qwen/Qwen3-0.6B"
image: "nvcr.io/nvidia/ai-dynamo/dynamo-planner:1.2.0" # dynamo-frontend for Dynamo < 1.1.0
sla:
ttft: 500 # Time To First Token target in milliseconds
itl: 20 # Inter-Token Latency target in milliseconds
workload:
isl: 2000 # expected input sequence length (tokens)
osl: 500 # expected output sequence length (tokens)
Цель по сквозной задержке (альтернатива ttft+itl):
spec:
...
sla:
e2eLatency: 10000 # total request latency budget in milliseconds
Переопределения
Используйте overrides, чтобы настроить спецификацию pod profiling job, например
добавить tolerations для taint'ов GPU-узлов или внедрить переменные окружения.
Toleration для GPU-узла (часто используется в GKE и общих кластерах):
apiVersion: nvidia.com/v1beta1
kind: DynamoGraphDeploymentRequest
metadata:
name: dense-with-tolerations
spec:
model: "Qwen/Qwen3-0.6B"
image: "nvcr.io/nvidia/ai-dynamo/dynamo-planner:1.2.0" # dynamo-frontend for Dynamo < 1.1.0
overrides:
profilingJob:
template:
spec:
containers: [] # required placeholder; leave empty to inherit defaults
tolerations:
- key: nvidia.com/gpu
operator: Exists
effect: NoSchedule
Переопределение сгенерированного DynamoGraphDeployment (например, чтобы внедрить переменные окружения worker):
spec:
...
overrides:
dgd:
apiVersion: nvidia.com/v1alpha1
kind: DynamoGraphDeployment
spec:
envs:
- name: TRITON_PTXAS_PATH
value: "/usr/local/cuda/bin/ptxas"
services:
VllmWorker:
envs:
- name: CUSTOM_ENV
value: "my-value"
Runtime-профилирование SGLang
Профилируйте worker'ы SGLang во время выполнения через HTTP endpoints:
# Start profiling
curl -X POST http://localhost:9090/engine/start_profile \
-H "Content-Type: application/json" \
-d '{"output_dir": "/tmp/profiler_output"}'
# Run inference requests to generate profiling data...
# Stop profiling
curl -X POST http://localhost:9090/engine/stop_profile
Тестовый скрипт находится в examples/backends/sglang/test_sglang_profile.py:
python examples/backends/sglang/test_sglang_profile.py
Просматривайте трассировки с помощью chrome://tracing в Chrome, Perfetto UI или TensorBoard.