# setting device on GPU if available, else CPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print('Using device:', device)
print()
#Additional Info when using cuda
if device.type == 'cuda':
print(torch.cuda.get_device_name(0))
print('Memory Usage:')
print('Allocated:', round(torch.cuda.memory_allocated(0)/1024**3,1), 'GB')
print('Cached: ', round(torch.cuda.memory_reserved(0)/1024**3,1), 'GB')
开始运行训练循环后,如果您想从终端手动观察程序是否在使用GPU资源以及使用的程度,则只需使用
watch
,如下所示:这将每隔2秒持续更新使用情况统计信息,直到您按下ctrl+c
如果您需要对可能需要的更多GPU统计数据进行更多控制,可以使用more sophisticated version of ^{} with ^{} 。下面是一个简单的例子:
这将输出类似以下的统计信息:
注意:在
--query-gpu=...
中以逗号分隔的查询名称之间不应存在任何空格。否则这些值将被忽略,并且不会返回任何统计信息此外,您还可以通过执行以下操作检查PyTorch安装是否正确检测到CUDA安装:
True
状态意味着PyTorch配置正确,并且使用GPU是,尽管您必须在代码中移动/放置带有必要语句的张量如果要在Python代码中执行此操作,请查看此模块:
https://github.com/jonsafari/nvidia-ml-py或在pypi中,此处:https://pypi.python.org/pypi/nvidia-ml-py/
由于这里没有提出,我添加了一个使用^{} 的方法,因为这非常方便,在正确的
device
上初始化张量时也是如此编辑:
torch.cuda.memory_cached
已重命名为torch.cuda.memory_reserved
。因此,对旧版本使用memory_cached
输出:
如上所述,使用
device
可以执行以下操作:到将张量移动到相应的
device
:直接在^{上创建一个张量:
这使得在CPU和GPU之间的切换非常舒适,无需更改实际代码
编辑:
由于对缓存的和分配的内存存在一些问题和困惑,我将添加一些关于它的附加信息:
^{}
返回缓存分配器管理的最大GPU内存(以字节为单位) 给定设备
^{}
返回给定设备的当前GPU内存使用量(以字节为单位)
您可以直接将
device
交给帖子中进一步指定的人,也可以将其保留为无,然后它将使用^{附加说明:具有Cuda计算能力3.0或更低版本的旧图形卡可能可见,但Pytorch无法使用
感谢hekimgil指出这一点“发现GPU0 GeForce GT 750M具有cuda能力3.0。PyTorch不再支持此GPU,因为它太旧了。我们支持的最小cuda能力为3.5。”
这应该起作用:
这告诉我CUDA是可用的,可以在您的一个设备(GPU)中使用。目前,
Device 0
或GPUGeForce GTX 950M
正被PyTorch
使用相关问题 更多 >
编程相关推荐