首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测量(手动)我的GPU内存已使用/可用

如何测量(手动)我的GPU内存已使用/可用
EN

Stack Overflow用户
提问于 2019-09-13 06:00:05
回答 1查看 986关注 0票数 2

我正在通过创建不同的模型并对其进行测试来尝试Tensorflow。我现在遇到的问题是,在我面对OOM (内存不足)错误之前,我不清楚我的模型可能有多大。当然,我可以继续添加图层或者让它们变得更大,看看什么时候我达到了极限。但如果我能测量我的模型占用了多少内存,那就太好了。

使用nvidia-smi命令,我可以看到:

代码语言:javascript
复制
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.40       Driver Version: 430.40       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:01:00.0 Off |                  N/A |
| 14%   56C    P2    87W / 280W |  10767MiB / 11178MiB |     37%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     24329      C   python                                     10747MiB |
+-----------------------------------------------------------------------------+

但是我这里的内存使用的问题是,无论我的模型是大是小,它总是显示相同的数字!似乎Tensorflow无论如何都会得到一切。

我正在寻找一个公式,它通过提供模型参数的数量、批量大小和样本大小来为我提供所需的内存。

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 07:09:43

您可以使用next函数:

代码语言:javascript
复制
def get_max_memory_usage(sess):
    """Might be unprecise. Run after training"""
    if sess is None: sess = tf.get_default_session()
    max_mem = int(sess.run(tf.contrib.memory_stats.MaxBytesInUse()))
    print("Contrib max memory: %f G" % (max_mem / 1024. / 1024. / 1024.))
    return max_mem

或者看看弗拉迪斯拉夫·布拉托夫的“mem_utils

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57915007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档