CUDA——Python基础与实现

CUDA是NVIDIA针对GPU加速计算而开发的编程框架。通过PyTorch可以很方便地使用CUDA,无须过多地改变代码。

一、numpy运算和python运算

使用 numpy 进行矩阵乘法比使用 Python 的效能会提高很多。
import torch
import numpy

# 方形矩阵大小
size = 600

a = numpy.random.rand(size, size)
b = numpy.random.rand(size, size)

使用numpy将两个数列相乘,使用timeeit进行计时:

%%timeit

x = numpy.dot(a,b)

直接使用python相乘:

%%timeit

c = numpy.zeros((size,size))

for i in range(size):
  for j in range(size):
    for k in range(size):
      c[i,j] += a[i,k] * b[k,j]
    pass
  pass

比较二者的用时差异:

 第二个用时到达了3分钟多,没有截屏。

二、GPU上的torch张量

创建一个 GPU 中的张量,并检查数据格式。
x = torch.cuda.FloatTensor([3.5])
x.type()
x.device

 

三、试验GPU性能

# 将前面的numpy数据转换为cuda格式

aa = torch.cuda.FloatTensor(a)
bb = torch.cuda.FloatTensor(b)

开始运算:

%%timeit

cc = torch.matmul(aa, bb)

比之前还快。

四、检查CUDA是否可用的标准代码

# 检查CUDA是否可用
# 如果可用,转换为cuda格式

if torch.cuda.is_available():
  torch.set_default_tensor_type(torch.cuda.FloatTensor)
  print("using cuda:", torch.cuda.get_device_name(0))
  pass

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

device

猜你喜欢

转载自blog.csdn.net/weixin_44727682/article/details/128408738