社区
CUDA
帖子详情
模型的数据是放在内存还是显存
星星89757
2016-11-30 03:03:17
机器学习,深度学习,GPU方案探索中遇到问题,如题。
...全文
1070
回复
打赏
收藏
模型的数据是放在内存还是显存
机器学习,深度学习,GPU方案探索中遇到问题,如题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
【
模型
训练】
数据
在各个硬件上的流存
数据
最终被加载到 GPU 的
内存
中,在这里进行
模型
的训练。是 PyTorch 中的一个类,它负责以批次的方式迭代地加载
数据
,并支持多线程
数据
预处理,这可以大大加速
数据
的准备过程。这里需要注意的是,
数据
从磁盘到 CPU 再到 GPU 的过程是分步骤进行的,而不是一次性全部加载。:在
数据
被加载到
内存
之后,CPU 可能会对
数据
进行预处理,比如
数据
增强、归一化、类型转换等操作。来分批次地加载
数据
,这样可以有效地管理
内存
使用,避免因一次性加载过多
数据
而导致的
内存
溢出。的多线程特性,以保证
数据
的顺序。
pytorch 将
数据
集加载到
内存
后再训练
当我们
数据
比较大时,加载
数据
,然后再将
数据
丢到
模型
中训练时,有时候由于IO的原因,绝大部分时间
放在
了加载
数据
上,这时为了提高
模型
的训练速度,,详细间代码下面是一个图片分类的
数据
集 原理很简单,在第一次读取
数据
的时候就一边读取,一边将
数据
加载到
内存
中,所以如果是第一次迭代的时候,还是很慢的,这个时候迭代的时候并没有从
内存
中读取
数据
,所以在使用的时候,我会先对
数据
加载一边,但这时候什么都不做,不将
数据
丢到网络中训练,只为将
数据
加载到
内存
中,具体看下面代码用法和常规的
数据
使用方法有点小区别 上面是正常操作,目的
NVIDIA GPU
内存
结构
模型
由于局部存储器中的
数据
被保存在
显存
中,而不是片上的寄存器或者缓存中,因此对local memory的访问速度很慢。常量
内存
数量有限,一共仅有 64 KB,由于有缓存,常量
内存
的访问速度比全局
内存
高,但得到高访问速度的前提是一个线程束中的线程(一个线程块中相邻的 32 个线程)要读取相同的常量
内存
数据
。如果每个线程使用了过多的寄存器,或声明了大型结构体或
数据
,或者编译器无法确定
数据
的大小,线程的私有
数据
就有可能被分配到local memory中,一个线程的输入和中间变量将被保存在寄存器或者是局部存储器中。
当
显存
不够时是否会调用共享GPU
内存
?
深度学习训练时当
显存
不够时是否会调用共享GPU
内存
进行训练? 问题来源: 在用pycharm做一个
模型
训练时,想着能否同时再跑一个
模型
进行训练,但是发现
显存
已经不足1G了,于是就产生了上述的问题,在
显存
已然不足情况下能否通过占用共享GPU
内存
再对第二个深度学习
模型
进行训练? 测试 1、单个神经网络进行训练 于是做了如下的测试,下图是仅仅训练单个神经网络时的GPU
内存
占用大小,目前
显存
占用10.2,共享GPU
内存
占用0.1 2、两个神经网络同时训练 在此基础上我又开始训练了第二个网络,但这个网络层数很少,
计算 Python 代码的
内存
和
模型
显存
消耗的小技巧
了解Python代码的
内存
消耗是每一个开发人员都必须要解决的问题,这个问题不仅在我们使用pandas读取和处理CSV文件的时候非常重要,在我们使用GPU训练的时候还需要规划GPU的
内存
使用。尤其是我们在白嫖使用kaggle和colab时显得更为重要。 本篇文章我们将介绍两个 Python 库 memory_profiler和Pytorch-Memory-Utils这两个库可以帮助我们了解
内存
和
显存
的消耗。 memory_profiler pip install memory_profiler#Load it
CUDA
589
社区成员
2,924
社区内容
发帖
与我相关
我的任务
CUDA
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
复制链接
扫一扫
分享
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章