pavansai20052004-hue/rocmporter-agent
GitHub: pavansai20052004-hue/rocmporter-agent
一个基于 AI 与静态分析的代码迁移代理,能够自动将 GitHub 仓库中的 CUDA 代码移植为 AMD ROCm/HIP 代码并提交迁移 PR。
Stars: 2 | Forks: 0
# ⚡ ROCmPorter
### 摆脱 CUDA 绑定。几分钟内迁移至 AMD。
**ROCmPorter 会扫描任何 GitHub 仓库以查找 NVIDIA / CUDA 依赖项,通过行级证据评估其 AMD ROCm 就绪度,并自动提交一个 pull request 来迁移您的代码。**
[](https://rocmporter-agent.vercel.app) [](https://rocmporter-agent.vercel.app) [](https://github.com/pavansai20052004-hue/rocmporter-agent/actions/workflows/rocm-compile-validate.yml) [](LICENSE) [](backend/) [](frontend/) [](#-deployment) [](https://github.com/pavansai20052052004-hue/rocmporter-agent/pulls) **[🚀 试用在线应用](https://rocmporter-agent.vercel.app)** · **[✨ 功能特性](#-features)** · **[🔧 工作原理](#-how-it-works)** · **[🤖 在 CI 中使用](#-use-it-in-your-ci)** · **[💬 路线图](#-roadmap)**
## 🎯 为什么要有 ROCmPorter
大量的 GPU 代码被**绑定在 NVIDIA CUDA 上** —— 构建脚本中的 `nvcc`,kernel 中的 `cudaMalloc`,到处都是的 `torch.cuda`,以及仅限 NVIDIA 的 Docker 镜像。这种绑定代价高昂:NVIDIA GPU 价格更高且更难获取,而 **AMD GPU(通过 ROCm)**通常更便宜且更易获得。
问题在于?如今将 CUDA 移植到 ROCm 意味着**手动阅读整个仓库**并重写每一行特定于 NVIDIA 的代码。大多数团队从来不这么做,因此他们一直被困在原地。
**ROCmPorter 自动化了其中最痛苦的 90%:**
[](https://rocmporter-agent.vercel.app) [](https://rocmporter-agent.vercel.app) [](https://github.com/pavansai20052004-hue/rocmporter-agent/actions/workflows/rocm-compile-validate.yml) [](LICENSE) [](backend/) [](frontend/) [](#-deployment) [](https://github.com/pavansai20052052004-hue/rocmporter-agent/pulls) **[🚀 试用在线应用](https://rocmporter-agent.vercel.app)** · **[✨ 功能特性](#-features)** · **[🔧 工作原理](#-how-it-works)** · **[🤖 在 CI 中使用](#-use-it-in-your-ci)** · **[💬 路线图](#-roadmap)**
### 👉 **[实时演示 —— 免费扫描任何公开仓库](https://rocmporter-agent.vercel.app)** 👈
## ✨ 功能特性
| | |
|---|---|
| 🔍 **基于证据的扫描** | 每一项发现都引用了确切的**文件、行号和代码片段**。绝不含糊其辞 —— 提供您可点击的证明。 |
| 📊 **ROCm 就绪度评分** | 为任何仓库提供 0–100 的可移植性评分 + 风险等级 + 迁移检查清单。 |
| 🤖 **hipify 与 AI 补丁混合** | 确定性的 CUDA→HIP 映射过程以**零 AI** 的方式转换了绝大部分机械性代码;模型仅处理剩余的语义部分 —— 并提供逐文件来源说明。 |
| 📚 **基于文档的 AI** | 剩余的 AI 处理基于精选的 ROCm 迁移知识库(warp-size 64,cuDNN→MIOpen,rocThrust,torch-on-ROCm 语义等)—— 基于事实,而非凭空猜测。 |
| 🧪 **ROCm 编译验证** | 迁移后的代码会在 CI 的 AMD 官方 ROCm 容器中使用真实的 `hipcc` 进行编译检查 —— [查看指南](docs/rocm-validation.md)。 |
| 🧩 **VS Code 扩展** | 编码时为 CUDA 绑定添加下划线,悬停显示 HIP 等效项,提供快速修复和一键文件 hipify —— [vscode-extension/](vscode-extension/)。 |
| 🚀 **一键迁移 PR** | 迁移*每一个*被标记的文件,并在您的仓库中**提交一个 pull request**。这是我们的核心护城河功能。 |
| ✅ **应用前验证** | 在更改任何代码之前,进行语法检查、漂移检测、artifact 哈希值校验和 diff 回放。 |
| 🐙 **GitHub 原生** | 使用 GitHub 登录,扫描公开**和私有**仓库,获取可直接用于 PR 的审查 artifact。 |
| 📦 **审计级导出** | 提供 HTML / JSON / Markdown / diff / 校验和 zip 离线打包文件,适用于 CI 和合规性审查。 |
| 🏷️ **CI Action + 徽章** | 一个 GitHub Action,可在每个 PR 上评论就绪度,此外还有一个实时的 `ROCm ready` README 徽章。 |
## 🔧 工作原理
```
flowchart LR
A["📁 GitHub repo"] --> B["🔍 Scan(clone + static analysis)"] B --> C["📊 Evidence
score · findings · lines"] C --> D["🤖 AI patches
CUDA → ROCm/HIP"] D --> E["✅ Verify
syntax · drift · replay"] E --> F["🚀 Migration PR
opened on your repo"] style A fill:#1a1a1f,stroke:#e31837,color:#fff style F fill:#1a1a1f,stroke:#22a04a,color:#fff style C fill:#111,stroke:#00c3b8,color:#fff ``` 1. **扫描** —— 确定性的静态分析规则会克隆仓库并标记 CUDA/NVIDIA 假设,同时引用确切的证据。 2. **评分** —— 扫描结果将汇总为 ROCm 可移植性评分、风险等级和迁移检查清单。 3. **补丁** —— 托管的 LLM 会起草 ROCm/HIP 补丁,这些补丁会在导出或应用之前经过语法检查、风险评分和使用 diff 回放进行验证。 4. **发布** —— 导出审计包,发布 GitHub PR 审查,或者一键**提交全仓库迁移 pull request**。 ## 🤖 在您的 CI 中使用 只需一个工作流文件,即可**为每个 pull request 添加 ROCm 就绪度评论**: ``` # .github/workflows/rocm-readiness.yml name: ROCm readiness on: [pull_request] permissions: pull-requests: write jobs: scan: runs-on: ubuntu-latest steps: - uses: pavansai20052004-hue/rocmporter-agent@main # optional: # with: # fail-below: '50' # fail the check if readiness drops below 50 ``` 每个 PR 都会获得一条包含评分、风险和主要发现的实时评论 —— 并且在每次推送时都会在原处更新。 ### README 徽章 随时随地展示您仓库的最新 ROCm 就绪度: ```  ``` 绿色 ≥ 80 · 琥珀色 ≥ 50 · 红色低于此数值。(此页面顶部的徽章是针对 `pytorch/extension-cpp` 的实时徽章。) ## 🖼️ 查看实际运行效果 体验 ROCmPorter 的最佳方式是实时演示。该托管应用具有动画扫描序列、3D 主视觉、完整的仪表板以及一键迁移 PR 功能。
### ▶ **[打开实时应用 →](https://rocmporter-agent.vercel.app)**
*粘贴任何公开的 GitHub 仓库,看着它实时扫描 —— 无需注册。*
**您将看到:**
- 🔍 一份**基于证据的报告** —— 每一个 CUDA 发现都标有确切的文件、行号和代码片段
- 📊 一份 **ROCm 就绪度评分**(0–100),包含风险等级和迁移检查清单
- 🤖 **AI 补丁**,带有实时的雷达扫描动画和分阶段的结果展示
- 🚀 一个**“开启迁移 PR (Open Migration PR)”**按钮,可以移植整个仓库并提交一个 pull request
## 💳 定价
| 计划 | 价格 | 适用对象 |
|---|---|---|
| **Free** | 永久 $0 | 无限的公开仓库扫描、完整报告、迁移检查清单、离线导出 |
| **Pro** | $29/月(或在印度通过 Razorpay 使用 ₹) | AI 补丁 · 一键迁移 PR · 验证 + 安全的应用/回滚 · 私有仓库 |
| **Team** | 定制 | CI/CD pipeline · AMD Developer Cloud 验证 · 共享 bundle 和席位 |
通过 **Stripe**(全球)或 **Razorpay**(印度 —— UPI、信用卡、网银)付款。信用卡详细信息永远不会触及我们的服务器。
## 🧱 技术栈
- **Frontend** —— React 19 + Vite,React Router,带有 3D/动画的自定义暗黑模式设计系统(无重型库)。托管在 **Vercel** 上。
- **Backend** —— FastAPI (Python),确定性静态分析引擎,`git` 克隆,托管 LLM 补丁生成。托管在 **Render** 上。
- **Auth + DB** —— Supabase(GitHub + Google OAuth,Postgres,行级安全)。
- **AI** —— 可插拔提供商(OpenAI / Groq / OpenRouter / Together / DeepSeek / Anthropic,或供开发使用的本地 Ollama)。
- **Payments** —— Stripe + Razorpay。
```
frontend/ React app (landing, auth, dashboards, scanner)
backend/ FastAPI API (scan, patch, migrate, billing, badge)
action.yml GitHub Action (PR readiness comments)
supabase/ Database schema
```
## 🚀 部署
ROCmPorter 是一个由两部分组成的应用:**frontend**(Vercel)和 **backend**(Render —— 它需要真实的服务器来执行 `git` + 扫描;无法在 serverless 上运行)。
请参阅 **[DEPLOY.md](DEPLOY.md)** 获取完整的操作手册,以及 **[SETUP.md](SETUP.md)** 了解如何启用身份验证、GitHub/Google 登录和支付。
## 💻 本地运行
```
# Backend (FastAPI)
cd backend
python -m venv .venv && .venv/Scripts/pip install -r requirements.txt
.venv/Scripts/python -m uvicorn app.main:app --reload --port 8000
# Frontend (Vite)
cd frontend
npm install
npm run dev
```
对于本地 AI 补丁,请使用代码模型运行 [Ollama](https://ollama.com);或者设置 `LLM_PROVIDER` + `LLM_API_KEY` 以使用托管模型。完整配置见 [`backend/.env.example`](backend/.env.example)。
## 💬 路线图
- [x] 基于证据的 CUDA 扫描 + 就绪度评分
- [x] 带有验证的 AI 单文件 ROCm 补丁
- [x] GitHub + Google 身份验证,私有仓库扫描
- [x] 一键全仓库**迁移 PR**
- [x] GitHub Action + 实时就绪度徽章
- [x] Stripe + Razorpay 计费
- [x] **混合迁移引擎** —— 优先执行确定性 hipify 过程,AI 仅用于语义剩余部分(每个文件包含“N 个确定性修改 + AI 剩余部分”的来源说明)
- [x] **ROCm 编译验证** —— 在每个 PR 上于 AMD 官方容器中进行 `hipcc` 检查([指南](docs/rocm-validation.md))
- [x] **VS Code 扩展** —— 内联 CUDA 绑定诊断、HIP 悬停提示、一键 hipify([vscode-extension/](vscode-extension/))
- [x] **基于文档的补丁** —— AI 剩余部分基于精选的 CUDA→HIP 知识库(18 个 API 系列说明,确定性检索)
- [x] **跨文件迁移上下文** —— 迁移 PR 读取本地头文件以保持一致性,每个 PR 最多 10 个文件
- [ ] 在 AMD Developer Cloud 上进行 GPU **执行**验证(自托管 runner 凭证)
- [ ] 团队工作区与共享审计历史
## 📄 许可证
[MIT](LICENSE) © 2026 GJV Pavansai
**为 AMD 生态系统而构建 —— 帮助世界摆脱 CUDA 绑定。**
标签:AI风险缓解, 逆向工具