Grout prefill is much slower than paper artifact on RTX 5070 Ti, and referenced commit 4631fb01629fc3bc36ec4302b0bf3636f23e1453 is not found
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust
- Domain
- machine-learning, performance
Research direction
Start by checking the paper artifact’s Grout commit reference against the public repository history, then reproduce the reported benchmark using the command and environment in the issue. Compare prefill timings and the listed GatherRow, RmsNorm, and Rope profiles with the artifact results. Done means identifying the exact artifact version and whether the reported performance difference is reproducible; the issue does not name specific source files or tests.
Written by the indexing model from the issue text.
Description
Migrated from NVlabs/cutile-rs#171, opened by @kitty-eu-org on 2026-06-23. 9 comments remain on the original.
Hi, thanks for releasing cutile-rs and Grout.
I am trying to reproduce the Grout end-to-end inference benchmark mentioned in the cutile-rs README / paper artifacts, but I am seeing much slower prefill performance on my machine.
Environment
- GPU: NVIDIA GeForce RTX 5070 Ti, 16GB
- Driver: 610.62
- CUDA: 13.3
- OS: Ubuntu 22.04 under WSL2
- Model: Qwen3-4B-Instruct-2507
- Grout repo: https://github.com/huggingface/grout
- Grout commit tested:
487f076b90ff4fe0834effa3be58fc2f67cf236e - Branch:
main
CUDA tools:
nvcc: release 13.3, V13.3.33
ptxas: release 13.3, V13.3.33
Issue
The cutile-rs paper artifact appears to reference this Grout commit:
4631fb01629fc3bc36ec4302b0bf3636f23e1453
However, I cannot find this commit in the public huggingface/grout repository. The current public main commit I tested is:
487f076 chore: adapt grout to cutile 0.0.2 changes (#2)
Could you clarify which Grout commit / branch was used for the paper artifact results, and whether that exact version is publicly available?
Benchmark command
I used:
export CUDA_TOOLKIT_PATH=/usr/local/cuda-13.3
export PATH=/usr/local/cuda-13.3/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-13.3/lib64:/usr/local/cuda-13.3/targets/x86_64-linux/lib:${LD_LIBRARY_PATH:-}
GROUT_CUDA_GRAPH_DECODE=1 \
target/release/grout \
--model /home/hezhaozhao/models/Qwen3-4B-Instruct-2507 \
--prompt "请用中文简单介绍一下大型语言模型。" \
--max-new-tokens 256 \
--device-argmax
Results with current public Grout main
With cutile = 0.0.2 / current Cargo.toml:
t/s: 40.47 prompt, 74.93 decode, 51.72 end-to-end
prompt_tokens=21
generated_tokens=114
prompt_s=0.519
decode_s=1.521
total_s=2.204
With --profile and GROUT_PROFILE_OPS=1, the apparent hotspots were:
RmsNorm total_ms=241.128 calls=145
GatherRow total_ms=229.666 calls=1
Rope total_ms=117.887 calls=72
Attention total_ms=0.407 calls=36
So attention does not seem to be the bottleneck. GatherRow, RmsNorm, and Rope look suspicious for prefill latency.
Longer prompt test
For a longer prompt:
prompt_tokens=1292
generated_tokens=0
prompt_s=3.049
prompt t/s=423.78
- Dominant language
- Rust
- Stars
- 3.7k
- Forks
- 312
- Avg merge
- 6d 5h
- Merged PRs (30d)
- 68
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA/cuda-rust
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
NVIDIA/cuda-rust#1568 · 1 comment ·
Maintainers usually reply within 2 days
-
[BUG]: The doc of trait `LoadTileLike` is incorrectPossibly taken @akhil9tiet claimed this 5 days ago. Openbug
Difficulty 1/5 Under an hour Newbie friendliness 72/100
NVIDIA/cuda-rust#1523 · 2 comments ·
Maintainers usually reply within 2 days
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 2 days
-
Target feature scan splits LLVM IR on ';', so conjunctive predicates match across the whole module (integer redux + any f32 reads as ReduxF32)Possibly taken @vyncint claimed this 33 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
NVIDIA/cuda-rust#1303 · 1 comment ·
Maintainers usually reply within 2 days
All issues in NVIDIA/cuda-rust
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
peteonrails/voxtype#909 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 69/100
alchemyplatform/rundler#1358 ·
Maintainers usually reply within 3 days
-
[BUG] VA-API HEVC: out-of-range cu_qp_delta (measured -130..+56) produces a corrupted bitstreamOpen
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
selkies-project/pixelflux#52 · 4 comments ·
Maintainers usually reply within 1 day
-
llm translation
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
BerriAI/litellm#47884 · 1 comment ·
Maintainers usually reply within 1 day
-
area:testing bug good first issue platform:windows priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day