如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应
转载请注明:
仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/
如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应
如果pytorch的编译时CUDA版本和运行时CUDA版本不一致时,由于不同的 nvcc 编译器会生成不同的动态函数代码,由此会导致自己编写的 CUDA 函数无法正确运行。
常见的错误有:
undefined symbol: __cudaRegisterFatBinaryEnd (运行时为CUDA10.1,编译时CUDA版本<10.1)
undefined symbol: __cudaPopCallConfiguration (运行时为CUDA10.0,编译时CUDA<10.0)
等
由此思路有2个:
1. 重新编译 pytorch 使得编译时CUDA能够与运行时CUDA保持一致
2. 重新安装CUDA使得其与pytorch编译的版本一致。
服务器涉及多用户,因此采用了方案一避免引入其他问题:
具体的细节可以见我再github的讨论:issue
重新编译安装pytorch的脚本整理如下:
pip uninstall pytorch # conda uninstall pytorch, if you use conda nvcc -V # 查看 nvcc 版本sudo rm -f /usr/local/cuda # optional, only if you already have this symlink sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda# 将如下路径加入环境变量,如~/.bashrc export CUDA_HOME=/usr/local/cuda export PATH="/usr/local/cuda/bin:$PATH" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64" export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda/lib64"source ~/.bashrc # 确保路径被加载# 编译并安装 pytorch conda install numpy pyyaml mkl=2019.3 mkl-include setuptools cmake cffi typing conda install -c pytorch magma-cuda100 # optional step # clone the pytorch source code git clone --recursive https://github.com/pytorch/pytorch cd pytorch make clean # make clean is needed in my case export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"} sudo python setup.py install # sudo is needed in my case.
经过这些步骤后,问题终于得到解决。
转载于:https://www.cnblogs.com/luruiyuan/p/10720581.html
如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应相关推荐
- cuda多版本管理和分类、运行时cuda、驱动cuda
简单的信息查看和调试命令 运行时只会采用虚拟环境里面的cuda运行时版本,所以不用显示切换cuda版本,只要支持即可. 查看cuda版本 ls -l /usr/local | grep cuda 这里 ...
- tomcat之一:指定tomcat运行时JDK版本
tomcat作为日常开发的web应用服务器,给开发测试带来了很多便利,tomcat的运行依赖JDK的支持,在安装JDK时经常会配置环境变量:JAVA_HOME.CLASSPAT,且需要添加path变量 ...
- 安装GPU版本的pytorch(解决pytorch安装时默认安装CPU版本的问题)保姆级教程
1.安装anaconda anaconda官网:www.anaconda.com 2.修改下载源为清华源 由于pytorch的服务器在国外,直连下载的话很慢,所以选用清华镜像源下载 # 添加清华镜像 ...
- 交叉编译指定运行时库路径_运行时vs编译时类路径
交叉编译指定运行时库路径 这确实应该是一个简单的区别,但是我一直在回答有关Stackoverflow的许多类似问题,并且经常有人误解此事. 那么,什么是类路径? 应用程序所需的一组所有类(以及带有类的 ...
- Windows Java JavaFX IntelliJ IDEA 开发环境搭建 创建工程 编译运行 打包分发 自定义运行时
博文目录 文章目录 本文说明 JavaFX 简单说明 JavaFX 版本说明 JavaFX 与 JDK 的关系 JavaFX 与 JDK Modular (JDK 9 模块化系统) JavaFX 模块 ...
- 通过设置PYTORCH_CUDA_ALLOC_CONF中的max_split_size_mb解决Pytorch的显存碎片化导致的CUDA:Out Of Memory问题
问题的出现 最近在基友的带动下开始投身ai绘画的大潮,于是本地部署了stable diffusion web ui,利用手上的24G显存开始了愉快的跑高分辨率图片之旅.然而某天在用inpaint功能修 ...
- 解决caffe编译时//usr/lib/x86_64-linux-gnu/libSM.so.6: undefined reference to `uuid_unparse_lower@UUI
我在编译安装RefineDet的caffe版遇到//usr/lib/x86_64-linux-gnu/libSM.so.6: undefined reference to `uuid_unparse_ ...
- 解决vs2013编译时scanf报错的方法
前言 在使用VS2013时可能会遇到scanf函数报错的问题,这里提供一种解决方法 步骤 1.找到VS2013的安装路径,找到此界面,打开VC文件夹 2.打开下图中的文件夹 3.下载一个Notepad ...
- 解决 Debug编译时,警告:warning LNK4099: 未找到 PDB“vc90.pdb”
警告:warning LNK4099: 未找到 PDB"vc90.pdb" 当多个Project是分开编译的,主项目和子项目的pdb文件名相同(默认都是vc90.pdb或vc100 ...
最新文章
- Google Brain大牛Jeff dean视频
- r语言绘制精美pcoa图_如何绘制精美的PCoA图形?
- Shell脚本的调试技术
- Arduino 各种模块篇 DHT11 温度湿度 数字模块 单总线
- oracle两个date相减_从 Oracle 到 PostgreSQL:从 Uptime 到数据库实例运行时间
- 带有Angular 11前端的ASP.NET Core微服务
- 日本研发投篮机器人,隔着半个球场都能百发百中,虐翻人类职业球员
- GithubPage自定义腾讯404界面
- 多片段时序数据建模预测实践
- mysql2000清除挂起工具,安装SQL提示挂起操作解决方法
- 毕业季:我和未来有个对话
- python读书笔记2000_python高级编程读书笔记(一)
- 有了AI智能绘画,我也可以成为绘画大师——全球最大规模中文跨模态生成模型ERNIE-ViLG
- 015.路径总和 路径总和II
- WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web appli
- iphone计算机历史信息,“领先业界5年!” 苹果iPhone历史回顾
- 【UE5 水体系统】
- 华为为什么和中兴竞争,水火不容,势不两立?
- 2019-06-17问答系统项目落地调研
- 5.30 USB接口的定义 (10分)