该代码
c = torch.rand((2000, 64, 64)).to('cuda') d = torch.rand((2000, 64, 64)).to('cuda') t3 = time.time() s1 = c+d s2 = torch.concat((a, b), dim=2) t4 = time.time()
s1设备是GPU,而s2的设备是CPU。所以我看不懂,这里面的原理是什么?
kpbpu0081#
如果操作所需的所有变量都在同一设备上,则焊炬将执行操作。我假设a和b在CPU上,因此torch.concat((a, b), dim=2)也是。当您执行.to('cuda')时,您已将c和d移至GPU,因此s1也位于GPU上。
a
b
torch.concat((a, b), dim=2)
.to('cuda')
c
d
1条答案
按热度按时间kpbpu0081#
如果操作所需的所有变量都在同一设备上,则焊炬将执行操作。
我假设
a
和b
在CPU上,因此torch.concat((a, b), dim=2)
也是。当您执行
.to('cuda')
时,您已将c
和d
移至GPU,因此s1也位于GPU上。