发新帖

tensorflow下分配tensor占用2倍显存。

[复制链接]
618 0

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
在Tensorflow下分配大片内存时,显存占用和期望值不符。重现方法如下:

```python
import tensorflow as tf

sess_conf = tf.ConfigProto()
sess_conf.gpu_options.allow_growth = True    # 关掉预分配功能
sess = tf.Session(config=sess_conf)


input()  # 暂停,用于观察当前显存占用

X = tf.get_variable("X", [100_000_000], dtype=tf.float32)  # 分配100m的变量,理论上应当占据400m左右内存
sess.run(tf.global_variables_initializer())  # 初始化X

input()  # 暂停,用于观察当前显存占用
```

通过gpustat观察可知,第一次暂停时,显存占用为143M,第二次暂停时显存占用为1167M,和期望值400M左右差距较大。

同样行为用pytorch如下:
```python
import torch
x = torch.rand(100, dtype=torch.float32, device='cuda')
input()  # 暂停,用于观察当前显存占用
y = torch.rand(500_000_000, dtype=torch.float32, device='cuda')
input()  # 暂停,用于观察当前显存占用
```

通过gpustat观察,第一次暂停时显存占用为509M,第二次为2417M,和预期值2000M左右相符。

求高人指点
我知道答案 回答被采纳将会获得10 金币 + 5 金币 已有0人回答
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

4

积分
快速回复 返回顶部 返回列表