diff --git a/scripts/serve-frank-primary.sh b/scripts/serve-frank-primary.sh index 073f7af..f49352e 100755 --- a/scripts/serve-frank-primary.sh +++ b/scripts/serve-frank-primary.sh @@ -111,6 +111,7 @@ podman run -d --name "$FRANK_PRIMARY_CONTAINER" \ "$FRANK_PRIMARY_IMAGE" /models \ --served-model-name "$FRANK_PRIMARY_SERVED_NAME" --port 7770 \ --tensor-parallel-size 2 \ + ${FRANK_PRIMARY_DCP:+--decode-context-parallel-size "$FRANK_PRIMARY_DCP"} \ --max-model-len "$FRANK_PRIMARY_MAXLEN" \ --max-num-seqs "$FRANK_PRIMARY_SEQS" \ ${FRANK_PRIMARY_MNBT:+--max-num-batched-tokens "$FRANK_PRIMARY_MNBT"} \ diff --git a/tests/frank_primary_unit.bats b/tests/frank_primary_unit.bats index 8e533a7..ce3ed92 100755 --- a/tests/frank_primary_unit.bats +++ b/tests/frank_primary_unit.bats @@ -113,6 +113,10 @@ DOWNLOAD="$REPO_ROOT/scripts/download-frank-primary.sh" grep -q -- '--tensor-parallel-size 2' "$SERVE" grep -q -- '--enable-prefix-caching' "$SERVE" grep -q -- '--trust-remote-code' "$SERVE" + # DCP is opt-in: the flag is passed only when FRANK_PRIMARY_DCP is set + # (DCP reuses the TP ranks when PCP is off, so TP=2 + DCP=2 fits two GPUs). + grep -q -- '--decode-context-parallel-size "$FRANK_PRIMARY_DCP"' "$SERVE" + ! grep -q '^FRANK_PRIMARY_DCP=' "$ENV_FILE" } @test "tools and reasoning are wired — the client contract is served" {