个人笔记本安装CUDA并配合Pytorch使用NVIDIA GPU训练神经网络的计算以及CPUvsGPU计算时间的测试代码

2024小白安装Pytorch-GPU版(Anaconda,CUDA,cuDNN讲解)

安装CUDA并使用PyTorch进行GPU加速的神经网络训练,需要遵循以下步骤:

1. 检查GPU兼容性

在开始之前,需要确认你的个人笔记本的GPU是否支持CUDA。可以通过NVIDIA官方网站查询CUDA兼容性。

2. 下载并安装CUDA Toolkit

  • 访问NVIDIA的官方网站下载适合你GPU和操作系统版本的CUDA Toolkit。
  • 选择适当的安装包,并按照提示完成安装。

3. 配置环境变量

安装完成后,需要配置环境变量以便系统可以找到CUDA。

  • 在Windows系统中,需要将CUDA的路径添加到系统环境变量Path中。

  • 在Linux系统中,需要将以下行添加到~/.bashrc~/.zshrc文件中:

    bash 复制代码
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

之后,运行source ~/.bashrc(或对应的shell配置文件)来更新当前会话。

4. 验证CUDA安装

通过运行nvcc --version命令来验证CUDA是否正确安装。

5. 安装cuDNN

  • 从NVIDIA官网下载与CUDA版本兼容的cuDNN。
  • 将下载的cuDNN文件解压并放置到CUDA Toolkit目录下。

6. 安装PyTorch

  • 访问PyTorch官网,根据你的系统和CUDA版本选择合适的安装命令。
  • 使用conda或pip安装PyTorch,确保选择带有cuda后缀的版本。
    例如,使用pip安装命令可能如下所示:
bash 复制代码
pip install torch torchvision torchaudio cudatoolkit=xx.x  # xx.x 是CUDA版本号

7. 验证PyTorch是否可以识别GPU

在Python中运行以下代码来验证PyTorch是否能够识别和使用GPU:

python 复制代码
import torch
print(torch.cuda.is_available())

如果返回True,则表示安装成功。

8. 使用GPU进行训练

在编写PyTorch代码时,确保将你的模型和数据移动到GPU上。以下是一个简单的例子:

python 复制代码
# 定义模型
model = YourModel().cuda()  # 将模型移至GPU
# 定义损失函数和优化器
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
# 训练数据
for data, target in train_loader:
    data, target = data.cuda(), target.cuda()  # 将数据移至GPU
    optimizer.zero_grad()
    output = model(data)
    loss = criterion(output, target)
    loss.backward()
    optimizer.step()

以上步骤概述了在个人笔记本上安装CUDA和PyTorch,并使用GPU进行神经网络训练的过程。每个步骤的详细说明和可能的问题解决方法,你可以在相应的官方网站找到。在安装和配置过程中,务必确保所有组件的版本兼容性。

测试CPU和GPU计算差异:

运行CPU vs GPU.py代码

python 复制代码
import time
import torch

# 定义一个函数来测量时间
def measure_time(device, X):
    X = X.to(device)
    time_start = time.time()
    Z = torch.mm(X, X)
    time_end = time.time()
    return round((time_end - time_start) * 1000, 2), device

# 检查CUDA是否可用
if torch.cuda.is_available():
    gpu_device = 'cuda:0'
else:
    print("CUDA is not available. Using CPU instead.")
    # gpu_device = 'cpu'

# 计算量较大的任务
X_large = torch.rand((10000, 10000))
cpu_time_large, cpu_device = measure_time('cpu', X_large)
gpu_time_large, gpu_device = measure_time(gpu_device, X_large)
print(f'Large task - CPU time cost: {cpu_time_large}ms on {cpu_device}')
print(f'Large task - GPU time cost: {gpu_time_large}ms on {gpu_device}')

# 计算量很小的任务
X_small = torch.rand((5000, 5000))
cpu_time_small, cpu_device = measure_time('cpu', X_small)
gpu_time_small, gpu_device = measure_time(gpu_device, X_small)
print(f'Small task - CPU time cost: {cpu_time_small}ms on {cpu_device}')
print(f'Small task - GPU time cost: {gpu_time_small}ms on {gpu_device}')

个人笔记本运行结果

python 复制代码
Large task - CPU time cost: 2216.92ms on cpu
Large task - GPU time cost: 15.62ms on cuda:0
Small task - CPU time cost: 297.88ms on cpu
Small task - GPU time cost: 1.64ms on cuda:0
相关推荐
emperinter几秒前
WordCloudStudio Now Supports AliPay for Subscriptions !
人工智能·macos·ios·信息可视化·中文分词
浦东新村轱天乐3 分钟前
神经网络反向传播算法公式推导
神经网络·算法·机器学习
南门听露29 分钟前
无监督跨域目标检测的语义一致性知识转移
人工智能·目标检测·计算机视觉
夏沫の梦30 分钟前
常见LLM大模型概览与详解
人工智能·深度学习·chatgpt·llama
WeeJot嵌入式1 小时前
线性代数与数据挖掘:人工智能中的核心工具
人工智能·线性代数·数据挖掘
AI小白龙*2 小时前
Windows环境下搭建Qwen开发环境
人工智能·windows·自然语言处理·llm·llama·ai大模型·ollama
cetcht88882 小时前
光伏电站项目-视频监控、微气象及安全警卫系统
运维·人工智能·物联网
惯师科技2 小时前
TDK推出第二代用于汽车安全应用的6轴IMU
人工智能·安全·机器人·汽车·imu
HPC_fac130520678163 小时前
科研深度学习:如何精选GPU以优化服务器性能
服务器·人工智能·深度学习·神经网络·机器学习·数据挖掘·gpu算力