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 来迁移您的代码。**
ROCmPorter scanning a CUDA repository and generating an AMD ROCm migration report

[![在线应用](https://img.shields.io/badge/▶_Live_App-rocmporter--agent.vercel.app-e31837?style=for-the-badge)](https://rocmporter-agent.vercel.app)   [![ROCm 就绪](https://rocmporter-api.onrender.com/api/badge/pytorch/extension-cpp)](https://rocmporter-agent.vercel.app) [![ROCm 编译验证](https://static.pigsec.cn/wp-content/uploads/repos/cas/bb/bb31afa5e81396468867c6b4ed71ba265a4a2a922ad0a387d7931fb751dcbb3e.svg)](https://github.com/pavansai20052004-hue/rocmporter-agent/actions/workflows/rocm-compile-validate.yml) [![许可证: MIT](https://img.shields.io/badge/License-MIT-22a04a.svg?style=flat-square)](LICENSE) [![FastAPI](https://img.shields.io/badge/API-FastAPI-009688.svg?style=flat-square)](backend/) [![React](https://img.shields.io/badge/UI-React_19-61dafb.svg?style=flat-square)](frontend/) [![部署](https://img.shields.io/badge/Deploy-Vercel_+_Render-000000.svg?style=flat-square)](#-deployment) [![欢迎 PR](https://img.shields.io/badge/PRs-welcome-e31837.svg?style=flat-square)](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)** 👈
## ✨ 功能特性 | | | |---|---| | 🔍 **基于证据的扫描** | 每一项发现都引用了确切的**文件、行号和代码片段**。绝不含糊其辞 —— 提供您可点击的证明。 | | 📊 **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 就绪度: ``` ![ROCm ready](https://rocmporter-api.onrender.com/api/badge/OWNER/REPO) ``` 绿色 ≥ 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风险缓解, 逆向工具