Pytorch torch无法在GPU上分配小尺寸张量(<;1GB),但它可以为同一节点上的CPU分配400+;数据库磁盘上的GB内存

Pytorch torch无法在GPU上分配小尺寸张量(<;1GB),但它可以为同一节点上的CPU分配400+;数据库磁盘上的GB内存,pytorch,gpu,tensor,torch,Pytorch,Gpu,Tensor,Torch,我的问题与我的前一个问题有关。 但是,它是不同的,所以我创建了一个新的线程 在这个问题中,我改变了输入张量的大小 import torch from torch import nn import numpy as np num_embedding, num_dim = 14000, 300 embedding = nn.Embedding(num_embedding, num_dim) row, col = 8000, 302 t = [[x for x in range(col

我的问题与我的前一个问题有关。 但是,它是不同的,所以我创建了一个新的线程

在这个问题中,我改变了输入张量的大小

 import torch
 from torch import nn
 import numpy as np
 num_embedding, num_dim = 14000, 300
 embedding = nn.Embedding(num_embedding, num_dim)

 row, col = 8000, 302
 t = [[x for x in range(col)] for _ in range(row)] 
 
 t1 = torch.tensor(t)
 print(t1.shape)  # torch.Size([8000, 302])

 type(t1), t1.device, (t1.nelement() * t1.element_size())/(1024**3) # (torch.Tensor, device(type='cpu'), 0.01800060272216797)

 tt = embedding(t1)
 embedding.forward(t1)

 t2 = t1.cuda()
 t2.device, t2.shape, t2.grad, t2.nelement(), t2.element_size(), (t2.nelement() * t2.element_size())/(1024**3) # (device(type='cuda', index=0), torch.Size([8000, 302]), None, 2416000, 8, 0.01800060272216797)

 embedding_cuda = embedding.cuda()
 torch.cuda.empty_cache()
 embedding_cuda(t2) # RuntimeError: CUDA out of memory. Tried to allocate 2.70 GiB (GPU 0; 11.17 GiB total capacity; 7.19 GiB already allocated; 2.01 GiB free; 8.88 GiB reserved in total by PyTorch)
为什么小型张量(0.018 GB)可以分配给cpu,但不能分配给同一节点上的gpu(p2.8XL)?为什么它需要2.7GB,它至少比原来的大小大100倍

我已经检查了网站上的大多数帖子 但是,没有人能帮我解决这个问题