显存充足,但是却出现CUDA error:out of memory错误

之前一开始以为是cuda和cudnn安装错误导致的,所以重装了,但是后来发现重装也出错了。
后来重装后的用了一会也出现了问题。确定其实是Tensorflow和pytorch冲突导致的,因为我发现当我同学在0号GPU上运行程序我就会出问题。
详见pytorch官方论坛:
https://discuss.pytorch.org/t/gpu-is-not-utilized-while-occur-runtimeerror-cuda-runtime-error-out-of-memory-at/34780

因此最好的方法就是运行的时候使用CUDA_VISIBLE_DEVICES限制一下使用的GPU。
比如有0,1,2,3号GPU,CUDA_VISIBLE_DEVICES=2,3,则当前进程的可见GPU只有物理上的2、3号GPU,此时它们的编号也对应变成了0、1,即cuda:0对应2号GPU,cuda:1对应3号GPU。

如何设置CUDA_VISIBLE_DEVICES:
① 使用python的os模块
import os
os.environ['CUDA_VISIBLE_DEVICES']='2, 3'
②直接设置环境变量(linux系统)
export CUDA_VISIBLE_DEVICES=2,3
分割线~~~~~
猜测有可能是cuda和cudnn安装错误导致的,决定重装。
卸载CUDA
https://blog.csdn.net/huang_owen/article/details/80811738
https://blog.csdn.net/u014561933/article/details/79968580
由于之前使用的是deb安装,
sudo apt-get autoremove --purge cuda
卸载后,进入/usr/local,发现还残留有cuda的文件夹,据说是cudnn,但是我好像没发现??

进入cuda-9.0

删除文件夹

重新安装cuda
这次使用.run进行安装
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html


安装完成

之前已经在/etc/profile添加过环境变量了


然后也安装补丁

安装cudnn
https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installlinux
使用deb方式安装

并验证cudnn的安装是否成功


最后删掉该例程

最后解决了上述虚假报错的问题

显存充足,但是却出现CUDA error:out of memory错误的更多相关文章
- 6G显卡显存不足出现CUDA Error:out of memory解决办法
		
 从6月初开始,6G显存的显卡开始出现CUDA Error:out of memory的问题,这是因为dag文件一直在增加,不过要增加到6G还需要最少两年的时间. 现在出现问题的原因是1.内核太古老 ...
 - ubuntu查看并杀死自己之前运行的进程解决办法RuntimeError: CUDA error: out of memory
		
问题描述:在跑深度学习算法的时候,发现服务器上只有自己在使用GPU,但使用GPU总是会报RuntimeError: CUDA error: out of memory,这是因为自己之前运行的进程还存在 ...
 - 问题-Delphi编译到最后Linking时总是出现与ntdll.dll有关的错误还有Fatal Error Out of memory错误
		
1.跳出错误法 ===================================================在主界面的implementation {$R *.dfm} 下放入以下代码: ...
 - CUDA Error
		
第一个问题:CUDA Error: out of memory darknet: ./src/cuda.c:36: check_error: Assertion `0' failed. 已放弃 (核心 ...
 - CUDA 显存操作:CUDA支持的C++11
		
CUDA9的编译器和语言改进 使用CUDA 9,nvcc编译器增加了对C ++ 14的支持,其中包括新功能 通用的lambda表达式,其中使用auto关键字代替参数类型; auto lambda = ...
 - 显卡、显卡驱动、显存、GPU、CUDA、cuDNN
		
显卡 Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的数字信号转换成模拟 ...
 - [Pytorch]深度模型的显存计算以及优化
		
原文链接:https://oldpan.me/archives/how-to-calculate-gpu-memory 前言 亲,显存炸了,你的显卡快冒烟了! torch.FatalError: cu ...
 - Pytorch训练时显存分配过程探究
		
对于显存不充足的炼丹研究者来说,弄清楚Pytorch显存的分配机制是很有必要的.下面直接通过实验来推出Pytorch显存的分配过程. 实验实验代码如下: import torch from torch ...
 - 深度学习中GPU和显存分析
		
刚入门深度学习时,没有显存的概念,后来在实验中才渐渐建立了这个意识. 下面这篇文章很好的对GPU和显存总结了一番,于是我转载了过来. 作者:陈云 链接:https://zhuanlan.zhihu. ...
 
随机推荐
- Leetcode-35.搜索插入位置
			
题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6 ...
 - spring boot 框架设计步骤
			
spring boot 框架设计步骤: 1.poem.xml配置 2.application.yml配置 3.entiry实体 4.realm.Myrealm extends AuthorizingR ...
 - Java定时清理过期文件
			
项目中经常需要自动定时去清理一些过期文件,这个其实Java实现挺简单的,核心部分就2个,一个定时任务,一个递归删除文件,不过前提是你的文件放在以“2018-12-05”这样命名的文件夹下,下面直接上核 ...
 - JSP随记
			
JSP简介: JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun公司倡导.许多公司参与一起建立的一种动态网页技术标准. Se ...
 - sql 语句中count()有条件的时候为什么要加上or null
			
参考:https://blog.csdn.net/qq_32719287/article/details/79513164 1.sql 语句中count()有条件的时候为什么要加上or null. 如 ...
 - Java 后台POST模拟文件上传
			
概述 废话不多说,直接撸代码 代码 1.引入Maven包 <dependency> <groupId>org.apache.httpcomponents</groupId ...
 - Helm - Kubernetes服务编排的利器
			
Helm介绍 在Kubernetes中部署容器云应用(容器或微服务编排)是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具.通过Helm能够帮助开发者 ...
 - python入门编程之mysql编程
			
python关于mysql方面的连接编程 前提:引入mysql模块MySQLdb,即:MySQL_python-1.2.5-cp27-none-win_amd64.whl 如果要用线程池,则要引用模块 ...
 - SpringBoot报错
			
同时生成了两个mapper,删除一个就行了
 - IO流2
			
一.IO流简介及分类 1.IO流简介 IO流: 简单理解数据从一个地方流向另外一个地方 2.IO流分类 按照数据流动的方向 分为 输入流和输出流 按照数据流动的单位分为 字节流和字符流 二.四大 ...