export DGD_CONFIG_FILE=/profiling_results/disagg.yaml # or your custom path
```
This approach allows you to:
- Customize DGD configurations without rebuilding container images
- Test different model configurations easily
- Version control your DGD configs alongside your code
> **Important**: For profiling, disagg configs should be run with Grove disabled by adding the annotation `nvidia.com/enable-grove: "false"` to avoid alpha Grove status issues.
> **Note**: The default location in the PVC is `/profiling_results/disagg.yaml`. If you don't inject a config, the profiler will fall back to the built-in config at `/workspace/components/backends/vllm/deploy/disagg.yaml`.
**Option B: Build custom image (only if you need code changes)**
Only needed if you require custom code modifications beyond configuration changes:
```bash
# in the project's root folder
./container/build.sh --framework VLLM
# Tag and push to your container registry
export DOCKER_IMAGE=nvcr.io/nvidia/ai-dynamo/vllm-runtime:0.3.2 # or your own dynamoimage
# NOTE: DGD_CONFIG_FILE is pointing to the location of the config file inside DOCKER_IMAGE
# Modify this yaml to profile different models
export DGD_CONFIG_FILE=/workspace/components/backends/vllm/deploy/disagg.yaml # or your own disagg config file
export DOCKER_IMAGE=<your docker tag>
export DGD_CONFIG_FILE=<disagg config path> # path to your disagg.yaml file within the DOCKER_IMAGE
```
Replace the `image` within `profile_sla_job.yaml` with the tag of the image you pushed.
**Step 2: Set SLA target**
Edit `$DYNAMO_HOME/benchmarks/profiler/deploy/profile_sla_job.yaml` to set the target ISL, OSL, TTFT, and ITL.
...
...
@@ -149,20 +185,20 @@ After the profiling job completes successfully, the results are stored in the pe
The profiling results are stored in a PVC named `profiling-pvc`. To access the results:
1.**Create a temporary pod to access the PVC:**
1.**Deploy the PVC access pod (if not already running):**
```bash
kubectl run temp-access --image=alpine:latest --restart=Never \
> **Note**: The same `pvc-access-pod` is used for both injecting disagg configs and accessing results. If you used the `inject_disagg_config.py` script earlier, the pod may already be running. The pod auto-deletes after 5 minutes of activity.
#### File Structure
The profiling results directory contains the following structure:
...
...
@@ -185,7 +221,33 @@ The profiling results directory contains the following structure:
#### Downloading Results Locally
To download the profiling results to your local machine:
You can download the profiling results using the automated download script or manually:
**Option 1: Automated Download (Recommended)**
Use the provided download script to automatically fetch all relevant files: