我需要直接在GPU上创建变量,因为我的CPU内存非常有限。
我在这里找到了执行此操作的方法
https://discuss.pytorch.org/t/how-to-create-a-tensor-on-gpu-as-default/2128/3
提到使用
torch.set_default_tensor_type(‘torch.cuda.FloatTensor’)
但是,当我尝试
torch.set_default_tensor_type('torch.cuda.FloatTensor')
pytorchGPUDirectCreate = torch.FloatTensor(20000000, 128).uniform_(-1, 1).cuda()
在转移到GPU ram之前,它似乎仍然占据了大部分CPU RAM。
我正在使用Google Colab。要在变量创建过程中查看RAM使用情况,请在运行单元后,转到运行时->管理会话
在使用和不使用torch.set_default_tensor_type('torch.cuda.FloatTensor')
的情况下,CPU RAM最高达到11.34 GB,而GPU内存保持较低,然后GPU RAM达到9.85,CPU内存又下降。
torch.set_default_tensor_type(‘torch.cuda.FloatTensor’)
似乎没什么作用
为方便起见,这是任何人都可以直接运行的笔记本的直接链接
https://colab.research.google.com/drive/1LxPMHl8yFAATH0i0PBYRURo5tqj0_An7