一键构建 pytorch cpp lib 前端和 wheel
系统环境ubuntu 22.04V100 GPUcuda 12.8.2cudnn 9.10.2.21TensorRT 10.9.0.341. 使用构建脚本构建 develop或者 wheel。第一次构建BUILD_MODEwheel ./meme_build.sh如果构建过一次之后依赖包可以跳过使用 SKIP_APT1BUILD_MODEwheelSKIP_APT1./meme_build.sh验证 tritoncd~ python3-cimport triton; print(triton.__version__)# 期望输出: 3.4.0python3-cimport torch; f torch.compile(lambda x: x * 2); print(f(torch.randn(8, devicecuda)))cd~ python3-cimport torch; print(torch.__file__)# 期望: /home/ruler/.local/lib/python3.10/site-packages/torch/__init__.py# 或者 /usr/lib/python3/dist-packages/... 之类, 总之不能是 pytorch 源码目录其中BUILD_TRITON1 忽略triton 已经从 torch 2.4.0时移出了 torch 源码库。v2.8.0 的 make triton 实际执行的是 scripts/install_triton_wheel.sh它做的事就是pipinstallpytorch-triton3.4.0git11ec6354\--index-url https://download.pytorch.org/whl/nightly/也就是下载 PyTorch 官方 CI 预先构建好的 wheel本地一行 Triton 代码都没有编译。这背后的原因前面说过Triton 早已不是 PyTorch 的子模块PyTorch 把它改成了外部版本化依赖——由 PyTorch 的 CI 从 triton-lang/triton 的某个钉死 commit这里就是 git11ec6354构建 wheel发布到自己的 nightly 源make triton 只是帮你把钉死的那个版本装上。2. 构建脚本#!/usr/bin/env bash# # PyTorch v2.8.0 源码构建脚本# 目标环境: V100 (sm_70) / CUDA 12.8.2 / cuDNN 9.10.2.21 (与CUDA同目录)# Ubuntu 22.04 / Python 3.10 (系统Python, 无需conda)# 依据: pytorch/pytorch v2.8.0 tag README.md From Source 流程## 用法:# chmod x build_pytorch_2.8.0_v100.sh# ./build_pytorch_2.8.0_v100.sh # 默认构建 wheel 并 pip 安装# BUILD_MODEdevelop ./build_pytorch_2.8.0_v100.sh # README 原版 develop 模式# SKIP_APT1 ./build_pytorch_2.8.0_v100.sh # 跳过系统依赖安装# set-euopipefail# ----------------------------- 可配置参数 ------------------------------------PYTORCH_VERSIONv2.8.0BUILD_MODE${BUILD_MODE:-wheel}# wheel | developSKIP_APT${SKIP_APT:-0}# 1 跳过 apt 安装BUILD_TRITON${BUILD_TRITON:-0}# 1 构建 triton (torch.compile 用)MAX_JOBS${MAX_JOBS:-$(nproc)}CUDA_HOME${CUDA_HOME:-/usr/local/cuda}WORK_DIR${WORK_DIR:-$HOME/ex_holoscan/pytorch_src}# -----------------------------------------------------------------------------log(){echo-e\n\033[1;32m$*\033[0m;}die(){echo-e\033[1;31m[ERROR]$*\033[0m2;exit1;}# 1/7 系统依赖 if[[${SKIP_APT}!1]];thenlog1/7 安装系统依赖 (内部使用 sudo)sudoaptupdatesudoaptinstall-ybuild-essential cmake ninja-buildgitpython3-dev\python3-pip libopenblas-dev libnuma-develselog1/7 跳过系统依赖安装 (SKIP_APT1)fi# gcc 版本检查: README 要求 Linux 上 gcc 9.4.0GCC_VER$(gcc-dumpversion)loggcc 版本:${GCC_VER}(README 要求 9.4.0)# 2/7 CUDA 环境 log2/7 配置 CUDA 环境[[-x${CUDA_HOME}/bin/nvcc]]||die未找到 nvcc:${CUDA_HOME}/bin/nvcc请检查 CUDA_HOMEexportPATH${CUDA_HOME}/bin:${PATH}# 用 :- 兜底, 避免 set -u 下 LD_LIBRARY_PATH 未定义时报 unbound variableexportLD_LIBRARY_PATH${CUDA_HOME}/lib64:${LD_LIBRARY_PATH:-}# V100 Volta sm_70; 只编译目标架构, 大幅缩短构建时间exportTORCH_CUDA_ARCH_LIST7.0nvcc--version|greprelease||trueechoTORCH_CUDA_ARCH_LIST${TORCH_CUDA_ARCH_LIST}# 3/7 获取源码 log3/7 获取 PyTorch 源码 (${PYTORCH_VERSION})mkdir-p${WORK_DIR}cd${WORK_DIR}if[[-dpytorch/.git]];thenecho复用已有源码目录:${WORK_DIR}/pytorchcdpytorchgitfetch--tagsorigin||trueelsegitclone https://github.com/pytorch/pytorchcdpytorchfi# 关键: 必须先 checkout tag, 再更新 submodule, 保证子模块版本与 tag 匹配gitcheckout${PYTORCH_VERSION}gitsubmodulesyncgitsubmodule update--init--recursive# 4/7 Python 构建依赖 log4/7 安装 Python 构建依赖python3-mpipinstall--upgradepip python3-mpipinstall-rrequirements.txt python3-mpipinstallmkl-static mkl-include# 5/7 Triton (可选) if[[${BUILD_TRITON}1]];thenlog5/7 构建 Triton (torch.compile/inductor 用)maketritonelselog5/7 跳过 Triton (BUILD_TRITON${BUILD_TRITON})fi# 6/7 构建并安装 log6/7 构建 PyTorch (BUILD_MODE${BUILD_MODE}, MAX_JOBS${MAX_JOBS})exportMAX_JOBScase${BUILD_MODE}indevelop)# README 官方命令: 开发模式原地安装python3 setup.py develop;;wheel)# 构建 wheel: wheel 内 torch/lib torch/include 即为 libtorch,# 可供 holoscan-sdk 链接 (Torch_DIRsite-packages/torch/share/cmake/Torch)python3 setup.py bdist_wheelWHEEL$(ls-tdist/torch-2.8.0*.whl|head-n1)[[-n${WHEEL}]]||die未找到构建产物 dist/torch-2.8.0*.whlpython3-mpipinstall--force-reinstall${WHEEL};;*)die未知 BUILD_MODE${BUILD_MODE}(可选: wheel | develop);;esac# 7/7 验证 log7/7 验证安装# 切出源码目录再 import, 避免从源码目录误导入cd/ python3 -EOF import torch print(torch version :, torch.__version__) print(built with CUDA:, torch.version.cuda) print(cuDNN version :, torch.backends.cudnn.version()) print(cuda available:, torch.cuda.is_available()) if torch.cuda.is_available(): print(device 0 :, torch.cuda.get_device_name(0)) print(capability :, torch.cuda.get_device_capability(0)) # 期望 (7, 0) x torch.randn(1024, 1024, devicecuda) print(matmul check :, (x x).sum().item() ! 0) EOFlog构建完成 ✅echo源码目录 :${WORK_DIR}/pytorch[[${BUILD_MODE}wheel]]echowheel 产物:${WORK_DIR}/pytorch/dist/echo提示: TensorRT (/usr/local/TensorRT-10.9.0.34/) 不参与 PyTorch 本体构建, 留给 holoscan 使用即可

相关新闻

SpringBoot图书推荐系统开发与算法优化实践

SpringBoot图书推荐系统开发与算法优化实践

1. 项目背景与核心价值图书推荐系统作为个性化服务的重要载体,正在重塑现代阅读体验。这个基于SpringBoot和推荐算法的毕业设计项目,完美融合了企业级开发框架与智能算法,解决了传统图书馆管理系统"千人一面"的推荐痛点。我在实际开…

2026/8/11 1:34:43 阅读更多 →
工业AI项目敏捷开发实践与优化策略

工业AI项目敏捷开发实践与优化策略

1. 工业AI项目为什么需要敏捷开发?工业AI项目与传统软件开发最大的区别在于,它需要同时应对算法不确定性和工程落地复杂性。三年前我们团队接手某汽车零部件质检项目时,曾按传统瀑布流模式制定了6个月开发周期。结果在第4个月算法验证时发现&…

2026/8/11 1:34:43 阅读更多 →
SpringBoot+Vue车辆管理系统开发实践与优化

SpringBoot+Vue车辆管理系统开发实践与优化

1. 项目背景与核心价值这个车辆管理系统是我去年为一个中型物流公司做的内部管理平台。当时他们还在用Excel表格记录200多辆货车的调度、维修和年检信息,经常出现数据丢失和版本混乱的问题。最夸张的一次,因为司机看不到最新的年检到期提醒,导…

2026/8/11 1:34:43 阅读更多 →

最新新闻

LangChain Deep Agents系统提示词四层架构解析与实战优化

LangChain Deep Agents系统提示词四层架构解析与实战优化

1. 从一次失败的Agent调用说起那天下午,我正试图用LangChain的Deep Agents框架构建一个简单的数据分析助手。我的想法很直接:让Agent调用一个Python工具,对用户上传的CSV文件进行描述性统计。我按照官方示例,配置了工具、设定了目…

2026/8/11 2:29:03 阅读更多 →
【每日一题】LeetCode 739. 每日温度 TypeScript

【每日一题】LeetCode 739. 每日温度 TypeScript

CodeTop 面试题目总结 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例…

2026/8/11 2:29:03 阅读更多 →
LLM应用工程化实战:基于《Beyond LLM》构建稳定可落地的生产系统

LLM应用工程化实战:基于《Beyond LLM》构建稳定可落地的生产系统

最近和几个做AI应用落地的朋友聊天,发现一个挺有意思的现象:大家手里都有几把“好枪”(各种大模型API),但真到了要打硬仗、解决具体业务问题的时候,却常常感觉“有劲使不上”。要么是模型输出不稳定&#x…

2026/8/11 2:29:03 阅读更多 →
手撕STL:list底层结构与迭代器实现

手撕STL:list底层结构与迭代器实现

本文代码已同步Github 一、底层源码分析 1、源码剖析 通过上一篇对vector的学习,我们知道其底层是通过三个指针来充当迭代器; 下面我们来看一下list的底层是怎么设计的; 同样使用g中的SGI版本来观察 先来看说明文档,发现依据…

2026/8/11 2:29:03 阅读更多 →
ChatBI落地的最大阻力不是技术:‘数据找人‘场景下的权限与口径治理

ChatBI落地的最大阻力不是技术:‘数据找人‘场景下的权限与口径治理

导语 ChatBI(对话式BI,即用自然语言提问即可获取数据分析结果的工具)项目失败率最高的环节,不是模型选型,也不是语料准备,而是"数据找人"模式下被忽视的两条治理线——行级权限(控制&…

2026/8/11 2:29:03 阅读更多 →
Zotero PDF Translate:学术研究者的多语言文献处理完整解决方案

Zotero PDF Translate:学术研究者的多语言文献处理完整解决方案

Zotero PDF Translate:学术研究者的多语言文献处理完整解决方案 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode.com/gh…

2026/8/11 2:28:03 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →