当前位置: 首页 > article >正文

在Ubuntu 22.04上为RTX 40系显卡编译MMCV 2.2.0:从CUDA 12.6配置到PEP517避坑全记录

在Ubuntu 22.04上为RTX 40系显卡编译MMCV 2.2.0从CUDA 12.6配置到PEP517避坑全记录最近在Ubuntu 22.04系统上为RTX 4090显卡配置MMCV 2.2.0开发环境时遇到不少坑。特别是当PyTorch 2.6.0、CUDA 12.6和MMCV的版本需要精确匹配时稍有不慎就会导致编译失败或运行时错误。本文将分享完整的配置流程包括如何解决PEP517警告导致的安装不完整问题。1. 环境准备在开始编译MMCV之前需要确保系统环境配置正确。RTX 40系显卡采用Ada Lovelace架构计算能力为8.9sm_89这对CUDA版本和编译参数有特定要求。首先检查系统是否安装了正确的NVIDIA驱动nvidia-smi输出应显示驱动版本和CUDA版本这里是12.6--------------------------------------------------------------------------------------- | NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.6 | |------------------------------------------------------------------------------------- | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | || | 0 NVIDIA GeForce RTX 4090 Off | 00000000:01:00.0 On | Off | | 0% 45C P8 22W / 450W | 289MiB / 24564MiB | 0% Default | | | | N/A | -------------------------------------------------------------------------------------1.1 安装CUDA Toolkit 12.6如果系统尚未安装CUDA 12.6可以按照以下步骤安装wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda-repo-ubuntu2204-12-6-local_12.6.0-560.28.03-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu2204-12-6-local_12.6.0-560.28.03-1_amd64.deb sudo cp /var/cuda-repo-ubuntu2204-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda-toolkit-12-6安装完成后将CUDA路径添加到环境变量中echo export PATH/usr/local/cuda-12.6/bin:$PATH ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH ~/.bashrc source ~/.bashrc验证CUDA安装nvcc --version应显示类似输出nvcc: NVIDIA (R) Cuda compiler release 12.6, V12.6.1312. 创建Python虚拟环境建议使用conda创建独立的Python环境以避免依赖冲突conda create -n mmcv26 python3.10 -y conda activate mmcv26安装与CUDA 12.6兼容的PyTorch 2.6.0pip install torch2.6.0 torchvision0.21.0 torchaudio2.6.0 \ --index-url https://download.pytorch.org/whl/cu126验证PyTorch是否正确识别CUDAimport torch print(Torch:, torch.__version__, | Torch CUDA build:, torch.version.cuda) print(CUDA available:, torch.cuda.is_available()) if torch.cuda.is_available(): print(GPU:, torch.cuda.get_arch_list(), torch.cuda.get_device_name(0))3. 编译MMCV 2.2.03.1 准备编译环境首先安装必要的构建工具sudo apt-get update sudo apt-get install -y ninja-build cmake对于Ubuntu 22.04默认gcc版本是11但建议使用gcc-12以获得更好的兼容性sudo apt-get install -y gcc-12 g-123.2 配置编译参数克隆MMCV源码并切换到v2.2.0分支git clone https://github.com/open-mmlab/mmcv.git -b v2.2.0 cd mmcv设置环境变量特别注意TORCH_CUDA_ARCH_LIST需要匹配RTX 40系的sm_89export CUDA_HOME/usr/local/cuda-12.6 export PATH$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH$CUDA_HOME/lib64:$LD_LIBRARY_PATH export MMCV_WITH_OPS1 export TORCH_CUDA_ARCH_LIST8.9 export CC/usr/bin/gcc-12 export CXX/usr/bin/g-123.3 解决PEP517问题MMCV 2.2.0使用旧的setuptools构建方式与PEP517规范存在兼容性问题。以下是已验证的解决方案首先清理之前的构建python setup.py clean rm -rf build/ mmcv.egg-info/ mmcv/_ext.*.so dist/然后使用以下命令安装确保添加--no-build-isolation和--config-settings参数pip install -U pip setuptools wheel ninja cmake python setup.py build_ext -j $(nproc) pip install -e . --no-build-isolation --config-settings editable_modecompat如果仍然遇到PEP517警告可以尝试pip install -e . --use-pep517 --no-build-isolation -v4. 验证安装创建测试脚本验证MMCV是否正确安装并支持CUDAimport mmcv, torch from mmcv.ops import get_compiling_cuda_version, get_compiler_version, nms print(mmcv from:, mmcv.__file__) print(Torch:, torch.__version__, | Torch CUDA build:, torch.version.cuda) print(MMCV compiled CUDA:, get_compiling_cuda_version(), | compiler:, get_compiler_version()) boxes torch.tensor([[0.,0.,10.,10.],[1.,1.,11.,11.],[50.,50.,60.,60.]], dtypetorch.float32) scores torch.tensor([0.90,0.80,0.75], dtypetorch.float32) print(NMS CPU:, nms(boxes, scores, 0.5)) print(CUDA available:, torch.cuda.is_available()) if torch.cuda.is_available(): print(GPU:, torch.cuda.get_device_name(0)) print(NMS CUDA:, nms(boxes.cuda(), scores.cuda(), 0.5))成功输出应包含类似信息mmcv from: /path/to/mmcv/mmcv/__init__.py Torch: 2.6.0 | Torch CUDA build: 12.6 MMCV compiled CUDA: 12.6 | compiler: GCC 12.3.0 NMS CPU: tensor([0, 1, 2]) CUDA available: True GPU: NVIDIA GeForce RTX 4090 NMS CUDA: tensor([0, 1, 2], devicecuda:0)5. 常见问题解决5.1 多MMCV版本冲突如果系统中安装了多个MMCV版本如通过pip安装的预编译版本和本地编译版本可能会导致冲突。解决方法# 首先卸载所有MMCV版本 pip uninstall mmcv mmcv-full -y # 然后重新安装本地编译版本 cd /path/to/mmcv pip install -e . --no-build-isolation --config-settings editable_modecompat5.2 自动检测GPU架构对于不同的NVIDIA GPU可以使用以下脚本自动设置TORCH_CUDA_ARCH_LIST#!/usr/bin/env bash if ! command -v nvidia-smi /dev/null; then echo 未检测到nvidia-smi请确认NVIDIA驱动已安装 exit 1 fi GPU_NAME$(nvidia-smi --query-gpuname --formatcsv,noheader | head -n 1) echo 检测到 GPU: $GPU_NAME ARCH if [[ $GPU_NAME ~ RTX 20 ]] || [[ $GPU_NAME ~ TITAN RTX ]]; then ARCH7.5 elif [[ $GPU_NAME ~ RTX 30 ]] || [[ $GPU_NAME ~ A30 ]] || [[ $GPU_NAME ~ A40 ]]; then ARCH8.6 elif [[ $GPU_NAME ~ A100 ]]; then ARCH8.0 elif [[ $GPU_NAME ~ RTX 40 ]] || [[ $GPU_NAME ~ Ada ]]; then ARCH8.9 elif [[ $GPU_NAME ~ H100 ]]; then ARCH9.0 else echo 未知的GPU型号: $GPU_NAME请手动查询对应Compute Capability exit 1 fi export TORCH_CUDA_ARCH_LIST$ARCH echo 已设置 TORCH_CUDA_ARCH_LIST$ARCH5.3 编译时内存不足编译MMCV可能需要大量内存如果遇到内存不足的问题可以尝试# 减少并行编译任务数 python setup.py build_ext -j 2 # 或者使用交换空间 sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile

相关文章:

在Ubuntu 22.04上为RTX 40系显卡编译MMCV 2.2.0:从CUDA 12.6配置到PEP517避坑全记录

在Ubuntu 22.04上为RTX 40系显卡编译MMCV 2.2.0:从CUDA 12.6配置到PEP517避坑全记录 最近在Ubuntu 22.04系统上为RTX 4090显卡配置MMCV 2.2.0开发环境时,遇到不少坑。特别是当PyTorch 2.6.0、CUDA 12.6和MMCV的版本需要精确匹配时,稍有不慎就…...

告别手动刷新:djSTOCK库存监控工具在Windows平台的实战配置与多通道告警集成

1. 为什么你需要djSTOCK库存监控工具 作为一个经常抢购热门数码产品的普通用户,我太理解那种每天手动刷新商品页面的痛苦了。特别是像大疆Osmo Pocket 3这样的爆款产品,经常刚补货就被抢光。传统的做法是每隔几分钟就手动刷新页面查看库存状态&#xff0…...

如何调试Qwen3-Embedding-4B?日志分析与错误定位实战教程

如何调试Qwen3-Embedding-4B?日志分析与错误定位实战教程 1. 引言:为什么需要调试Embedding模型? 当你使用Qwen3-Embedding-4B构建知识库时,可能会遇到各种问题:模型加载失败、向量生成异常、检索结果不准确等。这些…...

思源宋体TTF完整指南:7种字重免费商用字体如何改变你的设计体验

思源宋体TTF完整指南:7种字重免费商用字体如何改变你的设计体验 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为设计项目寻找既专业又免费的中文字体而烦恼吗&#x…...

JD_AutoComment图片审核难题:从系统瓶颈到企业级解决方案的架构演进

JD_AutoComment图片审核难题:从系统瓶颈到企业级解决方案的架构演进 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 京东自动评价系统JD_AutoComment在实现自动化评论功能时&#…...

DM V5.0.6.03.103 Windows 2000 (2026.04.14)

...

AI搜索排名怎么查?2026免费GEO监测手把手教你精准监控品牌AI可见性

一家工业设备制造商的市场总监最近很困惑:他们的官网在百度搜索“高精度传感器”这个关键词上排名前三,SEO团队为此自豪。但当客户用豆包、DeepSeek提问“哪个品牌的传感器精度最高”时,AI的答案里却完全没有他们的影子。客户流失了&#xff…...

Hunyuan-MT-7B行业落地:医疗说明书、药品标签民汉双语自动生成

Hunyuan-MT-7B行业落地:医疗说明书、药品标签民汉双语自动生成 在医疗健康领域,信息的准确传递至关重要。无论是药品说明书、医疗器械标签,还是患者教育材料,都需要清晰、无误地传达给不同语言背景的使用者。然而,传统…...

抖音内容管理革命:3步轻松实现无水印视频批量下载

抖音内容管理革命:3步轻松实现无水印视频批量下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...

Topit:macOS窗口置顶终极指南 - 如何用免费工具提升多任务效率300%

Topit:macOS窗口置顶终极指南 - 如何用免费工具提升多任务效率300% 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 你是否经常在多个应用窗口间来回…...

【EDUcoder实训作业题解】文件操作实战:从基础读写到高级处理

1. 文件操作入门:从HelloWorld开始 第一次接触文件操作时,很多人都会觉得这是个神秘的黑盒子。其实文件操作就像我们日常使用记事本一样简单,只不过是用代码来替代手动操作。让我们从一个最基础的例子开始 - 向文件中写入"HelloWorld&qu…...

中兴光猫超级权限终极指南:3步解锁隐藏工厂模式

中兴光猫超级权限终极指南:3步解锁隐藏工厂模式 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 想要完全掌控你的中兴光猫设备吗?zteOnu是一款专为网络管理员和…...

如何用代码驱动可视化:Mermaid Live Editor的实时图表编辑革命

如何用代码驱动可视化:Mermaid Live Editor的实时图表编辑革命 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-liv…...

大数据处理效率翻倍:GPU算力租用vs自建服务器,性价比实测

引言:当大数据遇上算力瓶颈 凌晨三点,运维工作群突发消息提示:“ETL任务出现异常崩溃,引发内存溢出。”此类问题本月已发生第四次。团队于2019年采购的GPU服务器,在2025年海量数据的冲击下已显乏力——原本2小时可完成…...

历史影像AI修复标准化流程:基于cv_unet_image-colorization的SOP文档

历史影像AI修复标准化流程:基于cv_unet_image-colorization的SOP文档 1. 工具概述 cv_unet_image-colorization是一款基于UNet架构的深度学习模型开发的本地化图像上色工具。该工具利用开源的图像上色算法,能够精准识别黑白图像中的物体特征、自然场景…...

10分钟掌握视频PPT智能提取:让会议录像秒变可编辑文档

10分钟掌握视频PPT智能提取:让会议录像秒变可编辑文档 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 你是否曾为整理会议录像中的PPT内容而烦恼?&#x1f60…...

AnyChart 的tagCloud组件

组件渲染失败错误protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_mistake_analysis);MistakeDao mistakeDao new MistakeDao(MistakeAnalysisActivity.this);List<String> subjectErrorlist…...

SillyTavern技术架构解析:构建高性能LLM前端与角色系统的实战指南

SillyTavern技术架构解析&#xff1a;构建高性能LLM前端与角色系统的实战指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern SillyTavern作为面向高级用户的LLM前端工具&#xff0c;通过模…...

【四足机器人运动学实战】三维腿部建模:从几何视图到完整解算

1. 三维腿部建模的核心思路 第一次接触四足机器人腿部建模时&#xff0c;我被三维空间中的复杂几何关系绕得头晕。直到发现多视图分解法这个神器&#xff0c;才真正理解如何将三维问题降维打击。想象你正在玩积木&#xff1a;从正面看只能确定高度和宽度&#xff0c;从侧面看才…...

Qwen3-ForcedAligner-0.6B字幕生成:快速上手,本地一键生成视频字幕

Qwen3-ForcedAligner-0.6B字幕生成&#xff1a;快速上手&#xff0c;本地一键生成视频字幕 做视频最头疼的是什么&#xff1f;对我来说&#xff0c;肯定是加字幕。以前要么一个字一个字敲&#xff0c;要么用在线工具&#xff0c;但隐私问题总让人不放心。最近发现一个好东西—…...

【AI自动化实战】Docker + n8n + MCP 三剑合璧:构建私有化AI智能体工具箱

1. 为什么需要私有化AI智能体工具箱&#xff1f; 最近两年AI技术爆发式发展&#xff0c;但很多企业面临一个尴尬局面&#xff1a;既想享受AI自动化带来的效率提升&#xff0c;又担心数据隐私和安全问题。我在为某金融客户部署自动化系统时就遇到过这种情况——他们连SaaS版的Ch…...

Jimeng AI Studio开源大模型部署:支持国产昇腾/寒武纪平台的适配可能性分析

Jimeng AI Studio开源大模型部署&#xff1a;支持国产昇腾/寒武纪平台的适配可能性分析 1. 引言&#xff1a;当开源AI创作工具遇上国产算力 最近&#xff0c;一个名为Jimeng AI Studio的开源项目在开发者社区里引起了不小的讨论。它基于Z-Image-Turbo底座&#xff0c;主打极速…...

如何用 Dask 替代 Pandas 实现高效 Excel 数据处理

本文详解如何将原有 pandas excel 处理流程迁移到 dask&#xff0c;重点解决大文件并行读取、惰性计算与内存优化问题&#xff0c;并提供可直接运行的改写示例及关键注意事项。 本文详解如何将原有 pandas excel 处理流程迁移到 dask&#xff0c;重点解决大文件并行读取、…...

解放华硕笔记本性能:GHelper轻量级控制工具完全指南

解放华硕笔记本性能&#xff1a;GHelper轻量级控制工具完全指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar…...

云原生实践总结

云原生实践数字化转型的核心引擎 在数字化转型浪潮中&#xff0c;云原生技术凭借其敏捷性、弹性和可扩展性&#xff0c;成为企业构建现代化应用的核心选择。云原生不仅是一种技术架构&#xff0c;更是一种方法论&#xff0c;涵盖容器化、微服务、DevOps、服务网格等关键技术。…...

mysql如何通过预编译语句优化性能_使用Prepared Statements减少解析

预编译语句能减少SQL解析开销&#xff0c;因其将SQL结构固定并缓存执行计划&#xff0c;后续仅替换参数、跳过词法语法分析等步骤&#xff1b;适用于同一模板调用≥3次且参数稳定场景。为什么预编译语句能减少 SQL 解析开销MySQL 每次执行普通 INSERT、SELECT 时&#xff0c;都…...

重组兔单抗能否突破IgG2 Fc功能优化的瓶颈?

一、为什么选择IgG2亚型作为重组兔单抗的Fc骨架&#xff1f;免疫球蛋白G&#xff08;IgG&#xff09;是治疗性抗体研发与基础免疫检测中最常见的抗体亚型。在IgG的四个亚类中&#xff0c;IgG2因其独特的二硫键排列模式及较弱的Fcγ受体结合能力&#xff0c;长期被视为"惰性…...

ViGEmBus虚拟手柄驱动技术深度解析:Windows内核级游戏控制器模拟架构揭秘

ViGEmBus虚拟手柄驱动技术深度解析&#xff1a;Windows内核级游戏控制器模拟架构揭秘 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus作为Windows内…...

突发心梗后,这五个动作能救命!

39 岁的张先生&#xff0c;深夜突发剧烈胸痛&#xff0c;以为只是 “累着了、忍忍就好”&#xff0c;硬扛了整整 1 小时才拨打 120。送到医院时&#xff0c;他的心脏血管已完全堵塞&#xff0c;大面积心肌坏死&#xff0c;虽经抢救捡回一命&#xff0c;却留下了不可逆的心功能损…...

3分钟掌握Krita智能选区插件:AI图像分割让抠图变得如此简单

3分钟掌握Krita智能选区插件&#xff1a;AI图像分割让抠图变得如此简单 【免费下载链接】krita-vision-tools Krita plugin which adds selection tools to mask objects with a single click, or by drawing a bounding box. 项目地址: https://gitcode.com/gh_mirrors/kr/k…...