The ROCm readiness benchmark
PortPilot scored 16 popular CUDA repositories. Every score is a deterministic Migration Readiness number from the Python AST + rule scanner — the LLM never scores. The takeaway: most of the ecosystem is closer to AMD than teams assume.
Leaderboard
sorted by readiness · click a repo for its full reportLower readiness
Still real, deterministic scans — just a heavier migration lift, including repos with no clean ROCm path today like NVIDIA's own cuda-python driver bindings.
Model face-off
The models that drafted these advisory notes, measured on the same workload — the top findings of state-spaces/mamba. Every number below is captured from a real Fireworks run; the bucket and score are deterministic and identical across models — only the advisory text and efficiency differ.
GLM-5.2 glm-5p2 Fireworks serverless live | DeepSeek V4 Pro deepseek-v4-pro Fireworks serverless live | Qwen 3.7 Plus qwen3p7-plus Fireworks serverless live | Gemma 4 26B (on-demand) gemma-4-26b-a4b-it Fireworks on-demand (dedicated GPU) live | |
|---|---|---|---|---|
| Findings explained | 20 | 20 | 20 | 20 |
| Prompt tokens | 3,255 ★ | 3,288 | 3,452 | 3,794 |
| Completion tokens | 10,723 ★ | 12,829 | 35,966 | 23,308 |
| Total tokens | 13,978 ★ | 16,117 | 39,418 | 27,102 |
| Avg latency | 9,272 ms | 14,541 ms | 11,172 ms | 6,686 ms ★ |
| Est. cost | $0.0517 | $0.0504 | $0.0589 | $0.0000 ★ |
★ best per metric. Est. cost = measured tokens × listed Fireworks serverless price ($1.4/1M in · $4.4/1M out); advisory.
The cuda.bindings.driver module provides low-level CUDA driver API access with no direct ROCm Python equivalent. Code relying on this import must be audited for specific driver calls (e.g., context, stream, memory management) and replaced with HIP/ROCm equivalents via ctypes bindings to amdhip64/rocm_smi, or refactored to use PyTorch device-agnostic APIs where possible.
The import of cuda.bindings.driver directly uses the CUDA driver API, which is not available on AMD GPUs. For ROCm, you must replace it with HIP Python bindings (e.g., hip.bindings.driver) and either alias it as cuda to minimize downstream changes or refactor all usages to the new name.
The cuda-python package provides low-level bindings to the NVIDIA CUDA driver, which has no direct 1:1 equivalent in the ROCm ecosystem. You must replace these low-level driver calls with HIP equivalents, typically by using ctypes to interface directly with libamdhip64.so or by refactoring to use higher-level PyTorch abstractions that hide driver details.
The import of cuda.bindings.driver relies on NVIDIA-specific driver bindings that are not available in the ROCm ecosystem. This low-level dependency must be replaced with HIP-compatible runtime calls or a ROCm-specific driver interface to manage GPU contexts and memory.