kentstone84/PyTorch-2.10.0a0

GitHub: kentstone84/PyTorch-2.10.0a0

一个通过自定义CUDA驱动和PyTorch二进制文件,结合驱动逆向工程与补丁,旨在释放NVIDIA RTX 50系列显卡全部Blackwell架构性能的开源项目。

Stars: 61 | Forks: 6

# RTX-STone:释放真正的 Blackwell 性能 ##更新:2026年1月5日 - 致那些声称我是骗子的失败者。 第 160/594 步 | 损失: -2.04124 | 显存: 21.8GB 第 240/594 步 | 损失: -2.05276 | 显存: 21.8GB 第 320/594 步 | 损失: -2.06390 | 显存: 21.8GB 让我看看你们这些失败者谁能在RTX 5080 16GB显卡上,以21.8GB显存稳定运行数周的UNET3D模型训练。你们大多数人连玩个游戏不都过热吗。所以坐下,闭嘴,感谢我仍然愿意提供你们代码。否则就滚出我的代码库。 ## 🚨 重大发现:NVIDIA驱动限制曝光 **你的RTX 5080/5090正受到人为限制 - 即使在使用PyTorch 2.7+和CUDA 12.8的情况下也是如此。** ### 问题所在 通过Ghidra逆向工程,我们发现NVIDIA驱动**主动拒绝**原生sm_120 (Blackwell)内核执行,并静默回退到sm_89 (Ada Lovelace)代码 - 导致用户甚至不知道的**30-40%性能损失**。 ### 证据 通过修补NVIDIA驱动中的**3个十六进制字节**: - **3D图形标记:29,604 → 47,616** (性能提升60.8%!) 🚀 - **GPU计算:23,650** (解锁的性能) - **相同的硬件,相同的系统 - 仅仅是驱动修补** - **原生sm_120执行**终于按预期工作 **阅读完整分析:** [docs/DRIVER_GATEKEEPING_ANALYSIS.md](docs/DRIVER_GATEKEEPING_ANALYSIS.md) 适用于RTX 5090、5080、5070 Ti、5070及所有未来RTX 50系列GPU的PyTorch 2.10(原生SM 12.0编译)+ 驱动限制绕过 + Triton编译器 + 优化套件。 ## 🚀 快速开始 ### 选项1:PyPI安装(推荐) ``` # Install RTX-STone from PyPI pip install rtx-stone[all] # Verify installation rtx-stone-verify # Run benchmarks rtx-stone-benchmark ``` ### 选项2:手动安装 ``` # 1. Download and extract the release # 2. Create virtual environment python -m venv pytorch-env .\pytorch-env\Scripts\Activate.ps1 # 3. Run installer (installs PyTorch + optional Triton) .\install.ps1 # 4. Install additional dependencies (optional but recommended) pip install -r requirements.txt # 5. Verify installation python examples/getting_started.py # 6. Run benchmarks python compare_performance.py ``` ### 选项3:仅驱动补丁(高级) 如果你已有PyTorch 2.7+,只想解锁真正的sm_120性能: **详见指南:** [docs/patch_driver_sm120.md](docs/patch_driver_sm120.md) **快速概述:** 1. 使用Ghidra在NVIDIA驱动中找到3个sm_120拒绝函数 2. 修补3个十六进制字节(失败 → 通过) 3. 用修补版本替换系统驱动 4. 享受40%的性能提升 **警告:** 需要逆向工程技能,会使保修失效,在Windows上需要绕过驱动程序签名。 ### 选项4:Docker ``` # Pull and run docker pull rtx-stone:latest docker run --gpus all -it rtx-stone:latest # Or build from source docker build -t rtx-stone:latest . docker-compose up rtx-stone-jupyter ``` **你将获得:** - ✅ **PyTorch 2.10.0a0** 原生SM 12.0(比nightly版本快20-30%) - ✅ **支持所有RTX 50系列GPU** (5090, 5080, 5070 Ti, 5070) - ✅ **Triton编译器** 用于在Python中编写自定义CUDA内核 - ✅ **Flash Attention 2** (长序列速度快1.5倍) - ✅ **LLM优化套件** (支持Llama, Mistral, Qwen) - ✅ **HuggingFace集成** (一行代码优化模型) - ✅ **自动调优框架** (为您的GPU寻找最佳配置) - ✅ **vLLM集成** (高性能推理服务) - ✅ **LangChain RAG** 示例 - ✅ **ComfyUI优化** 指南 - ✅ **多GPU支持** (DDP, FSDP, 张量并行) - ✅ **Docker容器** 便于部署 - ✅ **Jupyter notebooks** 教程 - ✅ **生产就绪** 的示例和基准测试 - ✅ **原生Windows** (无需WSL!) ## 概述 ### 双层问题 **第1层:PyTorch编译(已解决)** - 官方PyTorch 2.7+ 现在可以编译sm_120内核 ✅ - 附带CUDA 12.8二进制文件 ✅ **第2层:NVIDIA驱动(本仓库解决)** - **驱动在运行时主动拒绝sm_120内核** ❌ - **静默回退到sm_89 (Ada)** ❌ - **你在不知情的情况下损失30-40%性能** ❌ - **我们已逆向工程并修补了它** ✅ ### 为什么选择这个构建版本? **官方PyTorch 2.7声称:** **实际发生的情况:** 1. PyTorch编译sm_120内核 ✅ 2. PyTorch成功加载它们 ✅ 3. **NVIDIA驱动拒绝它们** ❌ 4. **驱动用sm_89回退替代** ❌ 5. **用户看到“工作正常”但只获得约70%的性能** ❌ **RTX-STone提供:** 1. 支持原生sm_120编译的PyTorch ✅ 2. **驱动分析和补丁**以绕过限制 ✅ 3. **真正的原生Blackwell执行** ✅ 4. **3D图形标记:47,616** (对比原版29,604) ✅ 5. **比原版驱动性能高60%** ✅ 这个构建版本同时解决了两个问题:PyTorch编译和驱动限制。 ### 为什么选择原生Windows(而非WSL)? **性能优势:** - **直接驱动访问** - 无虚拟化开销 - **更低延迟** - Windows和Linux之间无转换层 - **更好的兼容性** - 原生Windows应用程序和工具无缝工作 - **更简单的工作流程** - 单一环境,无需双操作系统管理 ## 规格 - **PyTorch版本:** 2.10.0a0 - **Triton版本:** 3.3+ (triton-windows) - **CUDA版本:** 13.0 - **Python版本:** 3.10 或 3.11(推荐) - **平台:** Windows 11 - **架构:** SM 12.0 (compute_120, code_sm_120) - **包大小:** 8.3 GB (未压缩), 5.3 GB (压缩) ## 支持的硬件 所有具有SM 12.0 (Blackwell)的NVIDIA RTX 50系列GPU: - **RTX 5090** (24GB显存) - **RTX 5080** (16GB显存) - **RTX 5070 Ti** (16GB显存) - **RTX 5070** (12GB显存) - 所有未来RTX 50系列GPU ## 要求 ### 系统要求 - Windows 11 (22H2 或更新版本) - Python 3.10 或 3.11 - NVIDIA驱动程序 570.00 或更新版本 - CUDA 13.0+ 兼容的驱动程序 - 15 GB 可用磁盘空间 ### Python依赖项 - filelock - fsspec - Jinja2 - MarkupSafe - mpmath - networkx - sympy - typing-extensions >= 4.10.0 所有依赖项将由安装脚本自动安装。 ## 安装 ### 方法1:自动安装(推荐) ``` # Download the release files # Extract all parts to the same directory # Create and activate virtual environment python -m venv pytorch-env .\pytorch-env\Scripts\Activate.ps1 # Run the installer .\install.ps1 ``` 安装程序将: 1. 检查Python版本兼容性(3.10 或 3.11) 2. 验证CUDA安装和GPU检测 3. 自动安装所需依赖项 4. 将PyTorch复制到你的site-packages目录 5. 验证PyTorch与CUDA的安装 6. **可选安装Triton**(推荐用于自定义内核) 7. 验证Triton JIT编译(如果已安装) ### 方法2:手动安装 ``` # Create virtual environment python -m venv pytorch-env .\pytorch-env\Scripts\Activate.ps1 # Install dependencies pip install filelock fsspec Jinja2 MarkupSafe mpmath networkx sympy "typing_extensions>=4.10.0" # Extract the torch folder # Copy to: .\pytorch-env\Lib\site-packages\torch\ ``` ## 下载说明 由于GitHub文件大小限制,软件包被拆分为多个部分: ``` # Download all parts from GitHub Releases # pytorch-2.10.0a0-sm120-windows.tar.gz.partaa # pytorch-2.10.0a0-sm120-windows.tar.gz.partab # pytorch-2.10.0a0-sm120-windows.tar.gz.partac # Recombine the parts cat pytorch-2.10.0a0-sm120-windows.tar.gz.part* > pytorch-2.10.0a0-sm120-windows.tar.gz # Extract tar -xzf pytorch-2.10.0a0-sm120-windows.tar.gz ``` ## 验证 安装后,验证PyTorch是否正常工作: ``` python ``` ``` import torch print(f"PyTorch Version: {torch.__version__}") print(f"CUDA Available: {torch.cuda.is_available()}") print(f"CUDA Version: {torch.version.cuda}") print(f"GPU Name: {torch.cuda.get_device_name(0)}") print(f"Compute Capability: {torch.cuda.get_device_capability(0)}") print(f"Arch List: {torch.cuda.get_arch_list()}") # Test GPU operation x = torch.rand(5, 3).cuda() print(f"Tensor device: {x.device}") ``` 预期输出: ``` PyTorch Version: 2.10.0a0+... CUDA Available: True CUDA Version: 13.0 GPU Name: NVIDIA GeForce RTX 5080 Compute Capability: (12, 0) Arch List: ['sm_120'] Tensor device: cuda:0 ``` ### 验证Triton安装 ``` import triton import triton.language as tl print(f"Triton Version: {triton.__version__}") # Test basic JIT compilation @triton.jit def add_kernel(x_ptr, y_ptr, output_ptr, n, BLOCK_SIZE: tl.constexpr): pid = tl.program_id(axis=0) block_start = pid * BLOCK_SIZE offsets = block_start + tl.arange(0, BLOCK_SIZE) mask = offsets < n x = tl.load(x_ptr + offsets, mask=mask) y = tl.load(y_ptr + offsets, mask=mask) output = x + y tl.store(output_ptr + offsets, output, mask=mask) print("✓ Triton JIT compilation successful") print("✓ Ready to write custom CUDA kernels in Python!") ``` ## 性能 与RTX 5080上的PyTorch nightly版本相比: - **训练和推理速度快20-30%** - **无PTX编译导致的JIT开销** - **针对张量核心和内存带宽的原生Blackwell优化** ## 故障排除 ### 安装后“CUDA不可用” 1. 验证NVIDIA驱动程序版本: nvidia-smi 应显示驱动程序 >= 570.00 2. 检查CUDA安装: nvcc --version 3. 验证GPU计算能力: nvidia-smi --query-gpu=compute_cap --format=csv,noheader 应显示 `12.0` ### DLL加载错误 - 确保你拥有最新的NVIDIA驱动程序 - 安装Visual C++ Redistributable 2015-2022 - 检查CUDA 13.0运行时DLL是否可访问 ### Python版本问题 此构建版本需要Python 3.10或3.11。Python 3.12+可能存在兼容性问题。 使用正确的Python版本创建新环境: ``` py -3.11 -m venv pytorch-env .\pytorch-env\Scripts\Activate.ps1 ``` ## 构建细节 此软件包从PyTorch主分支编译,配置如下: ``` TORCH_CUDA_ARCH_LIST=12.0 USE_CUDA=1 USE_CUDNN=1 CUDA_HOME=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v13.0 ``` 所有CUDA内核均使用以下方式编译: ``` -gencode arch=compute_120,code=sm_120 -DCUDA_HAS_FP16=1 -O2 ``` ## 🚀 高级功能 ### Flash Attention 2 针对Blackwell优化的生产就绪Flash Attention实现: ``` from flash_attention_rtx5080 import flash_attention # Drop-in replacement for PyTorch SDPA output = flash_attention(q, k, v) # 1.5x faster! ``` 详见 `flash_attention_rtx5080.py`。 ### LLM优化套件 用于运行Llama、Mistral和其他LLM的优化内核: ``` from llm_inference_optimized import LLMOptimizer optimizer = LLMOptimizer(model) optimizer.optimize_attention() # Flash Attention 2 optimizer.optimize_rope() # Fused RoPE optimizer.enable_kv_cache() # Optimized KV-cache output = optimizer.generate(input_ids, max_length=100) ``` 功能特性: - 融合RoPE (旋转位置编码) - 优化的RMSNorm - 高效的KV缓存管理 - BF16/FP16混合精度 ### HuggingFace集成 一行代码优化任何HuggingFace模型: ``` from transformers import AutoModelForCausalLM from huggingface_rtx5080 import optimize_for_rtx5080 model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-1B") model = optimize_for_rtx5080(model) # That's it! ``` 自动应用: - Flash Attention 2 - 融合的归一化层 - 优化的嵌入 - BF16精度 - 梯度检查点 ### 自动调优框架 为您的特定GPU寻找最佳内核配置: ``` # Auto-tune all kernels and save config python autotune_rtx5080.py --save-config # Auto-tune specific kernel python autotune_rtx5080.py --kernel matmul # Load previously saved config python autotune_rtx5080.py --load-config ``` 自动调优器对不同的块大小、线程束数量和内存布局进行基准测试,以找到适合您的RTX 5080/5090的最快配置。 ### 性能比较 将您的构建版本与原版PyTorch和WSL2进行比较: ``` python compare_performance.py --save-results ``` 基准测试包括: - 矩阵乘法(所有精度) - 注意力机制(有/无Flash Attention) - 卷积操作 - 内存带宽 预期提升: - **比PyTorch nightly版本快20-30%** (SM 12.0 vs PTX) - **注意力机制快1.5倍** (使用Flash Attention 2) - **比WSL2快10-15%** (原生Windows优势) ## 基准测试 ### PyTorch基准测试 使用SM 12.0测试原生PyTorch性能: ``` python benchmark.py ``` 此基准测试在不同大小和精度(FP32, FP16, BF16)下测试矩阵乘法。 ### Triton基准测试 测试为Blackwell优化的Triton自定义内核: ``` python benchmark_triton.py ``` 基准测试包括: - 向量加法 - Softmax - 使用张量核心的矩阵乘法 (GEMM) - 与原生PyTorch的性能比较 ### Triton示例 探索生产就绪的Triton内核示例: ``` python triton_examples.py ``` 示例包括: - 融合ReLU + Dropout - 层归一化 - GELU激活函数 - 融合线性 + 偏置 + ReLU - Flash Attention (简化版) ## 📂 示例 `examples/` 目录包含实际应用: ### 快速开始 验证安装并运行基本测试: ``` python examples/getting_started.py ``` 此脚本功能: 详见 `examples/README.md`,了解更多示例,包括: - 使用Flash Attention的本地Llama聊天机器人 - Stable Diffusion/FLUX优化 - 自定义训练循环 - 性能比较 ## Triton入门 现在您已经了解了Triton的功能,让我们来编写您的第一个自定义内核! ### 您的第一个Triton内核 这是一个简单的示例帮助您入门: ``` import torch import triton import triton.language as tl @triton.jit def vector_add_kernel(x_ptr, y_ptr, output_ptr, n_elements, BLOCK_SIZE: tl.constexpr): # Get the program ID (which block we're processing) pid = tl.program_id(axis=0) # Compute offsets for this block block_start = pid * BLOCK_SIZE offsets = block_start + tl.arange(0, BLOCK_SIZE) # Create a mask for valid elements mask = offsets < n_elements # Load data from GPU memory x = tl.load(x_ptr + offsets, mask=mask) y = tl.load(y_ptr + offsets, mask=mask) # Perform computation output = x + y # Store result back to GPU memory tl.store(output_ptr + offsets, output, mask=mask) # Use the kernel def add(x: torch.Tensor, y: torch.Tensor): output = torch.empty_like(x) n_elements = output.numel() # Launch kernel grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) vector_add_kernel[grid](x, y, output, n_elements, BLOCK_SIZE=1024) return output # Test it x = torch.randn(10000, device='cuda') y = torch.randn(10000, device='cuda') z = add(x, y) ``` ### 学习资源 - **官方Triton教程:** https://triton-lang.org/main/getting-started/tutorials/ - **本仓库中的Triton示例:** `triton_examples.py` - **基准测试:** `benchmark_triton.py` - **社区:** https://github.com/triton-lang/triton/discussions ### 何时使用Triton ✅ **在以下情况使用Triton:** - 您需要PyTorch中没有的自定义操作 - 融合多个操作以减少内存带宽 - 以生产级性能原型化研究想法 - 优化模型中的特定瓶颈 ❌ **在以下情况不要使用Triton:** - 标准PyTorch操作已满足您的需求 - 您还不熟悉GPU编程概念 - 该操作已在cuDNN/cuBLAS中优化 ## 许可证 PyTorch根据BSD-3-Clause许可证发布。详见 [PyTorch仓库](https://github.com/pytorch/pytorch)。 此软件包从官方PyTorch源代码编译,除了架构目标外没有进行任何修改。 ## 致谢 - **PyTorch团队** 提供的优秀框架 - **OpenAI和Triton社区** 使GPU编程民主化 - **NVIDIA** 提供的CUDA工具包和Blackwell架构 - **woct0rdho** 的triton-windows分支 - 帮助测试此构建版本的社区贡献者 ## 📚 Jupyter Notebooks `notebooks/` 中的互动教程: 1. **入门指南** - 安装验证和基本基准测试 2. **Flash Attention** - 优化注意力机制(即将推出) 3. **自定义Triton内核** - 使用Python编写GPU内核(即将推出) 4. **LLM优化** - 优化大型语言模型(即将推出) 5. **图像生成** - Stable Diffusion优化(即将推出) ``` # Launch Jupyter jupyter notebook notebooks/ ``` ## 🔌 集成 ### vLLM (LLM服务) 高性能LLM推理服务: ``` # See integrations/vllm_integration.py python integrations/vllm_integration.py --mode server --model meta-llama/Llama-3.2-3B ``` ### LangChain (RAG) 使用本地LLM构建RAG系统: ``` # See integrations/langchain_rag_example.py python integrations/langchain_rag_example.py --documents ./docs ``` ### ComfyUI (图像生成) 优化ComfyUI工作流程: - 参见 [ComfyUI集成指南](integrations/comfyui_integration.md) - 图像生成速度快20-30% - 针对RTX-STone优化的自定义节点 ## 🎯 模型库 经过预先测试的配置和基准测试: - [模型库文档](docs/MODEL_ZOO.md) - Llama 3.2, 3.1 (3B, 8B, 70B) - Mistral 7B, Mixtral 8x7B - Qwen 2.5 - SDXL, SD3, FLUX - 每个模型的性能基准测试 ## 📊 基准测试套件 全面的性能测试: ``` # PyTorch benchmarks python benchmark.py # Triton benchmarks python benchmark_triton.py # Full comparison vs PyTorch nightlies python compare_performance.py --save-results # Or use CLI rtx-stone-benchmark ``` ## 🛠️ 命令行工具 随PyPI包安装: ``` # Verify installation rtx-stone-verify # Show system info rtx-stone-info # Run benchmarks rtx-stone-benchmark ``` ## 📖 文档 - [快速入门指南](docs/QUICK_START.md) - [模型库](docs/MODEL_ZOO.md) - [发布说明](docs/RELEASE_NOTES.md) - [变更日志](docs/CHANGELOG.md) - [贡献指南](.github/CONTRIBUTING.md) - [安全策略](.github/SECURITY.md) ## 变更日志 ### v2.10.0a0 + 驱动限制发现(最新 - 2025年11月) **🔥 突破性发现:NVIDIA驱动主动阻止sm_120性能** - 使用Ghidra**逆向工程NVIDIA驱动** - **发现3个函数**拒绝原生sm_120内核执行 - **创建驱动补丁**(3个十六进制字节)以绕过限制 - **验证了60%的性能提升** - 3D图形标记:29,604 → 47,616 - **GPU计算子分数:23,650**(解锁的Blackwell性能) - **记录了完整方法**供社区验证 - **暴露了即使有“官方”PyTorch 2.7 sm_120支持,仍静默回退到sm_89** **新增文档:** - [docs/DRIVER_GATEKEEPING_ANALYSIS.md](docs/DRIVER_GATEKEEPING_ANALYSIS.md) - 驱动限制的技术分析 - [docs/DRIVER_PATCH_METHODOLOGY.md](docs/DRIVER_PATCH_METHODOLOGY.md) - 逆向工程过程 - [docs/patch_driver_sm120.md](docs/patch_driver_sm120.md) - 分步修补指南 - [docs/REDDIT_RESPONSE.md](docs/REDDIT_RESPONSE.md) - 关于PyTorch 2.7与驱动现实的背景 ### v2.10.0a0 + 完整套件 - **新增:** PyPI包 - `pip install rtx-stone` - **新增:** 支持所有RTX 50系列GPU (5090, 5080, 5070 Ti, 5070) - **新增:** 带docker-compose的Docker容器 - **新增:** 用于LLM服务的vLLM集成 - **新增:** LangChain RAG示例 - **新增:** ComfyUI优化指南 - **新增:** 多GPU DDP/FSDP示例 - **新增:** Jupyter notebooks教程 - **新增:** 带基准测试的模型库 - **新增:** CLI工具 (rtx-stone-verify, rtx-stone-benchmark) - **新增:** GitHub模板(问题、PR、贡献) - **新增:** CI/CD工作流 - **新增:** 全面的文档 - **新增:** 面向Windows的Triton编译器集成 - **新增:** Triton内核中的原生SM 12.0 Blackwell支持 - **新增:** Flash Attention 2实现 (`flash_attention_rtx5080.py`) - 比PyTorch SDPA在长序列上快1.5倍 - 针对Blackwell张量核心优化 - scaled_dot_product_attention的直接替代品 - **新增:** LLM优化套件 (`llm_inference_optimized.py`) - 融合RoPE内核 - 优化的RMSNorm - 高效的KV缓存管理 - 支持Llama, Mistral, Qwen - **新增:** HuggingFace集成 (`huggingface_rtx5080.py`) - 一行代码优化模型 - 自动注入Flash Attention - 特定模型的优化 - **新增:** 自动调优框架 (`autotune_rtx5080.py`) - 寻找最佳内核配置 - 对不同块大小进行基准测试 - 缓存调优结果 - **新增:** 性能比较工具 (`compare_performance.py`) - 与PyTorch nightly版本和WSL2比较 - 全面的基准测试套件 - JSON导出结果 - **新增:** 示例目录 (`examples/`) - 入门脚本 - 实际应用 - 最佳实践指南 - **新增:** 要求文件 (`requirements.txt`) - 简单的依赖项安装 - 可选库文档 - Triton基准测试套件 (`benchmark_triton.py`) - 生产就绪的Triton内核示例 (`triton_examples.py`) - `install.ps1` 中的自动Triton安装 - 全面的文档 - 学习资源和教程 ### v2.10.0a0 (2025年11月12日) - 首个Windows版本 - 从PyTorch主分支构建 - 针对RTX 5080的原生SM 12.0支持 - CUDA 13.0兼容性 - Python 3.10/3.11支持 ## 📜 许可证 BSD-3-Clause(与PyTorch相同)。详见 [LICENSE](LICENSE)。 ## 🙏 致谢 - **PyTorch团队** 提供的优秀框架 - **OpenAI和Triton社区** 使GPU编程民主化 - **NVIDIA** 提供的CUDA工具包和Blackwell架构 - **woct0rdho** 的triton-windows分支 - **社区贡献者** 帮助测试和改进
标签:AI模型训练, Apex, Blackwell架构, CUDA, Ghidra逆向工程, GPU计算, NVIDIA驱动程序, PyTorch, RTX 5080, RTX 5090, sm_120, Triton编译器, Vectored Exception Handling, 人工智能, 凭据扫描, 安装指南, 性能优化, 性能提升, 机器学习, 检测绕过, 深度学习, 用户模式Hook绕过, 自定义二进制文件, 解锁性能, 请求拦截, 逆向工具, 驱动程序补丁, 驱动门控, 高性能计算