快来加入 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人回答
|