Skip to content

fix(recipes): add build tools for ARM recipes on aiperf>=0.8.0 (#11278) - #11333

Merged
saturley-hall merged 1 commit into
release/1.3.0from
karenc/dyn-3396-cherrypick-aiperf-build-tools
Jul 7, 2026
Merged

fix(recipes): add build tools for ARM recipes on aiperf>=0.8.0 (#11278)#11333
saturley-hall merged 1 commit into
release/1.3.0from
karenc/dyn-3396-cherrypick-aiperf-build-tools

Conversation

@karen-sy

@karen-sy karen-sy commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Fixes DYN-3396 and #11061 by making ARM-advertised benchmark recipes able to install aiperf==0.10.0 on ARM nodes for relevant recipes.

Cherry picks #11278


Open in Devin Review

Signed-off-by: Karen Chung <karenc@nvidia.com>
@karen-sy
karen-sy requested review from a team as code owners July 7, 2026 16:59

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

View 2 additional findings in Devin Review.

Open in Devin Review

# aiperf>=0.8.0 depends on crick, which has no Linux aarch64 wheel.
# GB200 benchmark pods need build tools to compile it from source.
apt-get update && apt-get install -y curl jq procps git build-essential && apt-get clean
pip install "aiperf==0.10.0"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Tokenizer version pin removed for DeepSeek-V3.2, likely breaking tokenizer loading

The required version pin for the tokenizer library is removed (pip install "aiperf==0.10.0" at recipes/deepseek-v32-fp4/trtllm/agg-round-robin/perf.yaml:53) without addressing the known incompatibility, so the benchmark will fail to load the tokenizer.

Impact: The DeepSeek-V3.2 aggregated benchmark job will crash at startup with a "Failed to load tokenizer" error.

Detailed mechanism: transformers 5.x lacks deepseek_v32 model_type support

The previous code at both recipes/deepseek-v32-fp4/trtllm/agg-round-robin/perf.yaml and recipes/deepseek-v32-fp4/trtllm/disagg-kv-router/perf.yaml explicitly pinned transformers==4.57.6 with a detailed comment explaining the issue (see the deleted lines in the diff):

Pin transformers==4.57.6 (verified to load the deepseek_v32 tokenizer). The trtllm-runtime base ships transformers 4.55.0; aiperf 0.6.0's transformers>=4.56.0 floor would otherwise upgrade to 5.x, which lacks native support for model_type=deepseek_v32 (huggingface/transformers#41251) and fails AutoTokenizer.from_pretrained() before reading tokenizer.json. aiperf surfaces this as "Failed to load tokenizer".

The new code removes this pin entirely, doing just pip install "aiperf==0.10.0". Since aiperf has a transformers>=4.56.0 floor dependency, pip will resolve to the latest available transformers (likely 5.x), which lacks native support for model_type=deepseek_v32.

The tokenizer is loaded from HuggingFace (--tokenizer "nvidia/DeepSeek-V3.2-NVFP4"), meaning AutoTokenizer.from_pretrained() is called and the model_type issue applies.

Notably, other recipes in this same PR still pin their transformers versions (e.g., kimi-k2.5 pins 4.57.3, glm-5 pins 5.3.0/5.8.0, dsv4-pro pins 4.57.3), suggesting this removal was unintentional.

Suggested change
pip install "aiperf==0.10.0"
pip install "aiperf==0.10.0" "transformers==4.57.6"
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

# aiperf>=0.8.0 depends on crick, which has no Linux aarch64 wheel.
# GB200 benchmark pods need build tools to compile it from source.
apt-get update && apt-get install -y curl jq procps git build-essential && apt-get clean
pip install "aiperf==0.10.0"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Tokenizer version pin removed for DeepSeek-V3.2 disaggregated recipe, likely breaking tokenizer loading

The required version pin for the tokenizer library is removed (pip install "aiperf==0.10.0" at recipes/deepseek-v32-fp4/trtllm/disagg-kv-router/perf.yaml:53) without addressing the known incompatibility, so the benchmark will fail to load the tokenizer.

Impact: The DeepSeek-V3.2 disaggregated benchmark job will crash at startup with a "Failed to load tokenizer" error.

Detailed mechanism: same transformers 5.x incompatibility as the agg recipe

This is the same issue as in the agg-round-robin recipe. The previous code pinned transformers==4.57.6 with a comment explaining that transformers 5.x lacks native support for model_type=deepseek_v32 (huggingface/transformers#41251). The pin was removed, so pip will resolve to 5.x, causing AutoTokenizer.from_pretrained("nvidia/DeepSeek-V3.2-NVFP4") to fail.

Suggested change
pip install "aiperf==0.10.0"
pip install "aiperf==0.10.0" "transformers==4.57.6"
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines 25 to 27
seccompProfile:
type: RuntimeDefault
containers:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Non-root security constraints removed to enable apt-get

Two recipes (recipes/deepseek-v4/deepseek-v4-pro/vllm/disagg/gb200/perf.yaml:24-26 and recipes/glm-5-nvfp4/sglang/disagg/perf.yaml:16-18) had their runAsNonRoot: true, runAsUser: 1000, and runAsGroup: 1000 pod security context removed. The old code explicitly ran as a non-root user and used pip install --user to work within those constraints. The new code runs as root to enable apt-get install build-essential. This is a deliberate trade-off to support aarch64 builds, but it weakens the pod's security posture. If the cluster enforces PodSecurity admission (e.g., restricted profile), these pods will now be rejected. Consider whether a node affinity to x86_64 nodes (where crick has prebuilt wheels) would be preferable for environments with strict security policies, or whether a custom base image with build tools pre-installed could avoid needing root.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@github-actions github-actions Bot added the fix label Jul 7, 2026
@datadog-official

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 1 Pipeline job failed

Docs link check | lychee   View in Datadog   GitHub Actions

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 0fcb9d1 | Docs | Give us feedback!

@saturley-hall
saturley-hall merged commit c3a4001 into release/1.3.0 Jul 7, 2026
82 of 83 checks passed
@saturley-hall
saturley-hall deleted the karenc/dyn-3396-cherrypick-aiperf-build-tools branch July 7, 2026 23:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants