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

老旧环境torch版本(0.4.1)环境配置总结

遇到了CUDA 的计算架构不支持的情况

首先这个项目所要求的是安装一个非常老的版本的torch 是0.4.1这个非常老旧的torch 是一个甚至小于1.0 版本的上古架构

在安装的时候废了不小时间
最终终于在官网查到了安装这个版本的torch的方法

先前版本的torch下载路径:https://pytorch.org/get-started/previous-versions/

可以看到所支持的版本支持三种CUDA版本
image
然后我就尝试了,第一个版本进行安装

conda install pytorch=0.4.1 cuda90 -c pytorch

过程中出现了明明已经显示安装成功了,但是还是显示没有安装的结果
image
image

很明显是因为conda 包管理的原因让其无法在 pip中显示并且无法调用

所以尝试使用pip 进行安装 这里利用上了我之前写过的博客使用加速的情况下手动下载torch的whl文件然后手动安装文件,最终安装成功

image

验证结果:
image

至于为什么我清楚0.4.1的torch 对应0.2.1 的torchvision是因为查到大量网页得到的

运行编译文件

发现出现了第一个比较抽象的报错:
image

可以发现是说 nvcc fatal :不支持的计算结构 compute_30 去查找是哪里定义了这个参数,
image
定位到了具体位置后发现,这个地方是写CUDA_ARCH那么就去查找 CUDA_ARCH是什么意思 猜测应该是架构的意思
然后,发现了这个网页:
https://developer.nvidia.com/cuda-gpus
image

左边的意思就是当前芯片的计算性能,这一看给我激动坏了,我的显卡竟然是排名第二的性能,和这么多blackwell架构的芯片的程度不相上下?

在问了AI之后发现,这个compute_30,sm_30 都只带的是当前显卡的计算性能 ,仔细一对比还真是。30系的8.6的性能,而我有12.0

然后就大胆的写下了
image
然后就输出了大量log:

running build_ext
skipping 'model/utils/bbox.c' Cython extension (up-to-date)
skipping 'pycocotools/_mask.c' Cython extension (up-to-date)
Compiling nms kernels by nvcc...
Including CUDA code.
/home/esheep_coder/PSN-GD-main/lib/model/nms
['/home/esheep_coder/PSN-GD-main/lib/model/nms/src/nms_cuda_kernel.cu.o']
generating /tmp/tmp8f4aey6q/_nms.c
setting the current directory to '/tmp/tmp8f4aey6q'
running build_ext
building '_nms' extension
creating home
creating home/esheep_coder
creating home/esheep_coder/PSN-GD-main
creating home/esheep_coder/PSN-GD-main/lib
creating home/esheep_coder/PSN-GD-main/lib/model
creating home/esheep_coder/PSN-GD-main/lib/model/nms
creating home/esheep_coder/PSN-GD-main/lib/model/nms/src
gcc -pthread -B /home/esheep_coder/miniconda3/envs/psn/compiler_compat -Wl,--sysroot=/ -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -std=c99 -fPIC -DWITH_CUDA -I/home/esheep_coder/miniconda3/envs/psn/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/esheep_coder/miniconda3/envs/psn/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/esheep_coder/miniconda3/envs/psn/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/esheep_coder/miniconda3/envs/psn/include/python3.6m -c _nms.c -o ./_nms.o -std=c99
In file included from /home/esheep_coder/miniconda3/envs/psn/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC/THCGeneral.h:15,from /home/esheep_coder/miniconda3/envs/psn/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC/THC.h:4,from _nms.c:570:
/usr/local/cuda/include/cusparse.h:434:1: warning: ‘csric02Info_t’ is deprecated: The type

可算没有错误了,既然cuda编译完毕了那么现在开始实现训练过程编译

编译过程错误详解

  1. 问题1详解
    image

错误分析:这个错误是因为 Pillow (PIL) 库缺少 libtiff 依赖。问题在于 Pillow 需要 libtiff 的动态链接库,但在当前环境中找不到。

解决办法:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install libtiff5-dev libtiff5# 或者如果上面的不行,尝试:
sudo apt-get install libtiff-dev
  1. 问题2详解
Traceback (most recent call last):File "main.py", line 24, in <module>from model.utils.net_utils import weights_normal_init, clip_gradient, samplerFile "/home/esheep_coder/PSN-GD-main/lib/model/utils/net_utils.py", line 10, in <module>from model.roi_crop.functions.roi_crop import RoICropFunctionFile "/home/esheep_coder/PSN-GD-main/lib/model/roi_crop/functions/roi_crop.py", line 4, in <module>from .._ext import roi_cropFile "/home/esheep_coder/PSN-GD-main/lib/model/roi_crop/_ext/roi_crop/__init__.py", line 3, in <module>from ._roi_crop import lib as _lib, ffi as _ffi
ImportError: /home/esheep_coder/PSN-GD-main/lib/model/roi_crop/_ext/roi_crop/_roi_crop.so: undefined symbol: __cudaRegisterFatBinaryEnd

问题原因:这个错误又回到了 CUDA 版本不匹配 的问题。__cudaRegisterFatBinaryEnd 符号缺失表明编译环境和运行环境的 CUDA 版本不一致。

根本原因
之前编译的 .so 文件是用不同版本的 CUDA 编译的,与当前 PyTorch 使用的 CUDA 版本不兼容。

所以要删除之前编译的结果

使用如下办法可以进行删除原先的文件 这个指令可以直接查找.so 文件然后在本地进行编译
解决办法:

find . -name "*.so" -delete

使用这个后所有的后缀的文件都删除了,然后可以重新编译

编译后还是遇到了相同的报错:

(psn) esheep_coder@esheep:~/PSN-GD-main$ sh scripts/train-1-2-fc.sh 
Traceback (most recent call last):File "main.py", line 24, in <module>from model.utils.net_utils import weights_normal_init, clip_gradient, samplerFile "/home/esheep_coder/PSN-GD-main/lib/model/utils/net_utils.py", line 10, in <module>from model.roi_crop.functions.roi_crop import RoICropFunctionFile "/home/esheep_coder/PSN-GD-main/lib/model/roi_crop/functions/roi_crop.py", line 4, in <module>from .._ext import roi_cropFile "/home/esheep_coder/PSN-GD-main/lib/model/roi_crop/_ext/roi_crop/__init__.py", line 3, in <module>from ._roi_crop import lib as _lib, ffi as _ffi
ImportError: /home/esheep_coder/PSN-GD-main/lib/model/roi_crop/_ext/roi_crop/_roi_crop.so: undefined symbol: __cudaRegisterFatBinaryEnd

只有一种可能就是当前的cuda版本和torch做默认使用cuda版本不一致

那么我们使用下面的代码进行验证当前的torch的cuda版本 和当前计算机中所安装的cuda版本

(psn) esheep_coder@esheep:~$ python -c "import torch; print('PyTorch version:', torch.__version__); print('CUDA version:', torch.version.cuda)"
PyTorch version: 0.4.1
CUDA version: 9.0.176
(psn) esheep_coder@esheep:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0

那么现在就只剩一条路了,就是重新安装cuda 9.0 版本卸载12.8版本

这么搞就时间复杂喽,要动的东西太多了

http://www.jsqmd.com/news/26822/

相关文章:

  • ✨《那个让我准时下班的神器,藏在这份编辑器测评里》
  • 代码大全阅读笔记3
  • Newton记录
  • 【备份】不知道什么时候写的IniReader.js
  • CSS尺寸、盒子模型、定位、浮动与布局(Flex/Grid)
  • 通过中国信通院SQL质量管理最高等级评测,天翼云TeleDB引领数据库管理新标准!
  • AtCoder Regular Contest 208 (Div. 2) 题解
  • 第三十篇
  • 代码大阅读笔记
  • 第2次软件基础作业
  • 第二次软件基础作业
  • vs2017安装qt插件及安装qt插件后的设置
  • 实用指南:从0死磕全栈之Next.js Server Actions 入门实战:在服务端安全执行逻辑,告别 API 路由!
  • KeyShot许可管理故障排除步骤
  • 各式各样的Attention - -一叶知秋
  • 重塑生产力:天翼云全球首发RaaS,开启“机器人即服务”商业时代!
  • Python自然语言处理(NLP)入门
  • 【计算机视觉】分水岭搭建医学诊断
  • mysql和java获取经纬度的距离的两种方式
  • Sequence2Sequence - -一叶知秋
  • SQL索引及调优
  • Python列表 _ 创一个购物清单
  • 如何在Golang项目中集成Prometheus进行监控?
  • 第177天:信息收集篇自动项目本机导出外部打点域内通讯PillagerBloodHound
  • 如何在Linux中,为Flatpak版本的Edge浏览器导入证书
  • 2025年防火HPL板厂家权威推荐榜单:耐刮防火板/耐高温防火板 /阻燃高压装饰板源头厂家精选
  • Java 集合 “Map(1)”面试清单(含超通俗生活案例与深度理解) - 教程
  • 2025 年铸铁井盖生产厂家最新推荐榜,技术实力与市场口碑深度解析防沉降球墨/防沉降/电力/双层铸铁井盖公司推荐
  • 220kv数字化变电站保护解决方案综述[期刊理解]
  • 2025年10月VI设计公司权威推荐排行榜:排名依据包括项目交付质量、客户满意度、创新能力和市场影响力