本人筆記本所帶的gpu是gtx 1650
import torch
print
(torch.cuda.get_device_name(
))
geforce gtx 1650
import torch
print
(torch.cuda.device_count(
))
1
import torch
print
(torch.cuda.current_device(
))
0
import torch
x = torch.tensor([[
1,2,
3],[
4,5,
6]])
print
(x.device)
cpu
5.1法一 在進行tensor變數命名的時候定義好device即可import torch
x = torch.tensor([[
1,2,
3],[
4,5,
6]],device = torch.device(
'cuda'))
print
(x.device)
cuda:0
5.2法二 提前在外部定義好cuda,然後每次定義tensor的時候直接引用變數import torch
cuda0 = torch.device(
'cuda:0'
)x = torch.tensor([[
1,2,
3],[
4,5,
6]],device = cuda0)
print
(x.device)
cuda:0
應用tensor.to(device) 其中device應該是torch.device的物件
import torch
device0 = torch.device(
'cuda:0'
)x = torch.rand((2
,3))
print
(x.device)
y = x.to(device0)
print
(y.device)
cpu
cuda:0
在網路計算中,參與計算的主要是兩個部分,乙個是模型的引數,乙個是實際輸入的訓練資料。將這兩部分的資料都移動到gpu中進行計算才能將網路搬移到gpu中
這句話的本質是將某乙個模型的引數以tensor的形式輸入到device中,這樣引數的計算就是在gpu裡面了
import torch
device = torch.device(
'cuda:0'
)m = torch.nn.linear(10,
10)m = m.to(device)
linear(in_features=10, out_features=10, bias=true)
for batch_idx,
(inputs, targets)
inenumerate
(trainloader)
: inputs, targets = inputs.to(device)
, targets.to(device)
CUDA記憶體使用
cuda執行緒可以在執行過程中從多中記憶體空間訪問資料,分為三個層次 1,區域性記憶體 每乙個執行緒有其私有的區域性記憶體。2,共享記憶體 每乙個執行緒塊 thread block 有乙個共享記憶體,可以被該執行緒塊中的所有執行緒訪問。3,全域性記憶體 所有的執行緒都能訪問。此外還有兩個能被所有執行...
cuda 本地記憶體使用 cuda實戰入門
cuda compute unified device architecture 是 nvidia 所推出的一種平行計算平台和平行計算 api。cuda 在平行計算上可以大顯神威,因此,我們先要找到乙個可並行的問題。乙個很簡單的可並行問題就是計算無窮級數 infinite series 圓周率 pi...
CUDA使用筆記(一)矩陣乘法
簡介 本文介紹cublassgemm 函式的使用。在c c 中,通常我們將2維矩陣按行儲存為一維陣列。但是在視訊記憶體中,矩陣是按列儲存的。因此,我們在實際使用時,對cublassgemm 中的各個引數的賦值可能會搞不清楚。本文,以乙個具體的矩陣乘法案例為例子,介紹cublassgemm 函式的使用...