deep learning 到底有多耗 gpu 的内存?

2017-01-22 12:52:36 +08:00
 cpygui

试了下这个

aws g2.2 large w/ 4gb gpu 爆内存

issue里说 最好的 aws g2.x w/ 12gb gpu 勉强能跑,不过需要 500 天。。。

5050 次点击
所在节点    程序员
8 条回复
YongYuan
2017-01-22 13:32:23 +08:00
图库多大?
noahyu
2017-01-22 13:53:19 +08:00
各框架对 gpu 的使用不尽相同,貌似在 VGG16 这一块,加载预训练的模型然后作改动, theano 的表现好一点,代码里面用到的,我尝试过 keras+tf 的方式用低端显卡(GT 系列)也是没法跑,算了对图像这一块无感了;用低端显卡跑一个 attention 的模型跑 nlp 相关的,也要 4-5 天,不过能跑下来已经不错了,可以不用显卡内存,而用主机内存(目前用的是 16G)也可以跑.
bearqq
2017-01-22 14:22:56 +08:00
Current maximum batchsize is 3 for 12 GB memory GPU.
Also it was confirmed that MBP (Late 2016, memory 16 GiB) can run with batchsize 1.

gpu 消耗和单次放入的数据量有关。由于这里放入的是图片,单个数据比较大,所以 batchsize 只能控制比较小。 batchsize 很多人认为越大越好,以 gpu 能放下为标准。

同时,和神经网络本身也有关系,网络的参数有多少占用多大可以直接计算。
rogerchen
2017-01-22 14:54:52 +08:00
全连接参数多,卷积 feature map 多,比实现省内存还看 mxnet ,就是文档如翔。
cpygui
2017-01-22 17:08:15 +08:00
@noahyu 用主机内存跑神经网络的关键词是什么,谢谢
noahyu
2017-01-22 17:29:02 +08:00
@cpygui 没用过 chainer ,但是看了它的文档有 CuPy ,应该是根据 api 的接口来使用 kernel 操作吧;按照我对 tensorflow 的理解和使用,通过对计算时使用具体的 cpu 和 gpu 的显示声明方式,加之 disable gpu 自动加载(在 config 里定义)来实现我之前评论里提到的方式。比如 tensorflow 里面可以定义 with 代码段,来显示声明如下操作用的是 cpu 或 gpu ,同时在多个设备(device)时显示地指定 gpu0,gpu1,...(如果有多个的话)

with tf.name_scope('encode'), tf.device('/gpu:0')

不过我还是觉得这样很费时间,只能作为尝试吧,还是应该选择一个较为合适的框架以及足够先进的硬件资源,那样不用太操心 performance ,最讨厌内存不够硬件太差,心太累……
cpygui
2017-01-23 13:17:37 +08:00
@noahyu 亲身体会了下你说的“心太累”是什么感受了。花了一天也没重现 deeplab 的[attention]( https://bitbucket.org/aquariusjay/deeplab-public-ver2) 模型, bug 太多,脚本里还有 typo...
cpygui
2017-01-23 13:19:55 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/336197

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX