【PyTorch&TensorBoard实战】GPU与CPU的计算速度对比（附代码）

1. 准备工作

1.2 Tensorboard

Tensorboard是TensorFlow官方提供的一个可视化工具，用于可视化训练过程中的模型图、训练误差、准确率、训练后的模型参数等，同时还提供了交互式的界面，让用户可以更加方便、直观地观察和分析模型。

pip install tensorboardX
pip install tensorboard

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("../logs")  #这里有两个"."

writer.close()

• main_tag：字符串类型，要绘制的曲线主标题，本实例为“GPU vs CPU”
• tag_scalar_dict：字典类型，要绘制多条曲线的因变量，本实例为GPU和CPU的计算时间

{'GPU':CUDA,'CPU':CPU}

• global_step: 标量，要绘制多条曲线的因变量，本实例为张量的大小tensor_size

2. 对比GPU与CPU的计算速度

CPU：AMD Ryzen 9 7940H

GPU：NVIDIA GeForce RTX 4060

CPU计算时间：

import torch
import time

def CPU_calc_time(tensor_size):
a = torch.rand([tensor_size,tensor_size])
b = torch.rand([tensor_size,tensor_size])
start_time = time.time()
torch.matmul(a,b)
end_time = time.time()

return end_time - start_time

GPU计算时间：

import torch
import time

def CUDA_calc_time(tensor_size):
device = torch.device('cuda')

a = torch.rand([tensor_size,tensor_size]).to(device)
b = torch.rand([tensor_size,tensor_size]).to(device)
start_time = time.time()
torch.matmul(a,b).to(device)
end_time = time.time()

return end_time - start_time

4. 完整代码

import torch
import time
from torch.utils.tensorboard import SummaryWriter
from tqdm import tqdm

torch.manual_seed(1)

def CPU_calc_time(tensor_size):
a = torch.rand([tensor_size,tensor_size])
b = torch.rand([tensor_size,tensor_size])
start_time = time.time()
torch.matmul(a,b)
end_time = time.time()

return end_time - start_time

def CUDA_calc_time(tensor_size):
device = torch.device('cuda')

a = torch.rand([tensor_size,tensor_size]).to(device)
b = torch.rand([tensor_size,tensor_size]).to(device)
start_time = time.time()
torch.matmul(a,b).to(device)
end_time = time.time()

return end_time - start_time

if __name__ == "__main__":

writer = SummaryWriter("../logs")

for tensor_size in tqdm(range(1,10000,50)):

CPU = CPU_calc_time(tensor_size)
CUDA = CUDA_calc_time(tensor_size)

writer.close()

# Command Prompt   "tensorboard --logdir=logs"

|
13天前
|

【PyTorch实战演练】Fast R-CNN中的RoI(Region of Interest)池化详解
【PyTorch实战演练】Fast R-CNN中的RoI(Region of Interest)池化详解
42 1
|
5天前
|

【深度学习】与【PyTorch实战】
【深度学习】与【PyTorch实战】
9 0
|
13天前
|

Docker详解（十一）——Docker容器CPU资源限额实战Docker详解
Docker详解（十一）——Docker容器CPU资源限额实战
34 5
|
13天前
|

PyTorch与NLP：自然语言处理的深度学习实战

102 0
|
13天前
|

PyTorch实战：图像分类任务的实现与优化
【4月更文挑战第17天】本文介绍了使用PyTorch实现图像分类任务的步骤，包括数据集准备（如使用CIFAR-10数据集）、构建简单的CNN模型、训练与优化模型以及测试模型性能。在训练过程中，使用了交叉熵损失和SGD优化器。此外，文章还讨论了提升模型性能的策略，如调整模型结构、数据增强、正则化和利用预训练模型。通过本文，读者可掌握基础的PyTorch图像分类实践。
49 1
|
13天前
|

Anaconda+Cuda+Cudnn+Pytorch（GPU版）+Pycharm+Win11深度学习环境配置
Anaconda+Cuda+Cudnn+Pytorch（GPU版）+Pycharm+Win11深度学习环境配置
165 3
|
13天前
|

GPU云服务器_GPU云计算_异构计算_弹性计算-阿里云

23 0
|
13天前
|

【多GPU炼丹-绝对有用】PyTorch多GPU并行训练：深度解析与实战代码指南

235 2
|
13天前
|

【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
145 2
|
13天前
|

【PyTorch实战演练】基于全连接网络构建RNN并生成人名
【PyTorch实战演练】基于全连接网络构建RNN并生成人名
24 0