当前位置: 首页 > news >正文

Jupyter Notebook中使用GPU进行计算

要在Jupyter Notebook中使用GPU进行计算,请按照以下步骤操作:

  1. 检查GPU可用性

    在终端/Anaconda Prompt中运行以下命令以确认是否有可用的GPU:

    nvidia-smi
    
  2. 安装所需的库

    首先,在终端/Anaconda Prompt中,依次安装PyTorch及其相关的CPU和GPU支持包:

    pip install torch torchvision torchaudio
    # 如果需要多线程支持:
    export OMP_NUM_THREADS=4
    # 扩展CuDNN库的搜索路径(可选):
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64
    
  3. 设置环境变量

    在终端/Anaconda Prompt中,修改或新增.bashrc文件中的内容以配置以下环境变量(在每个新行后按Enter):

    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64
    PATH=/usr/local/cuda-12.0/bin:$PATH
    

    重新运行所有上述步骤可能需要多次登录别机或系统重启。

  4. 配置PyTorch使用GPU

    在Jupyter Notebook中添加以下代码来配置 PyTorch 使用可用的 GPU:

    import torch
    
    if torch.cuda.is_available():
        print('Current device:', torch.cuda.current_device())
        print('Device name:', torch.cuda.get_device_name(0))
        # 设置多个可用GPU时,将索引从0开始设置
    else:
        print('Using CPU!')
    
    # 如果需要指定显卡:
    torch.cuda.set_device(0)  # 替换为要使用的GPU索引
    
  5. 运行计算在GPU上

    示例代码中创建两个张量 ab 并执行GPU上的矩阵乘法:

    a = torch.randn(2, 3).cuda()  # 将张量移动到GPU上
    b = torch.randn(3, 4).cuda()
    c = torch.mm(a, b)            # 使用PyTorch内置的矩阵乘法
    d = a @ b                      # 添加Python 3.5+支持的短阵乘法
    
  6. 保存和重新载入修改

    • 保存修改后的 Jupyter Notebook文件。
    • 关闭前一个会话后,打开新会话并重新加载文件,否则新的代码更改可能不会生效。
  7. 验证计算是否在GPU上运行

    运行以下命令查看 cd 的设备:

    print(f'张量 c位于{c.device}上')
    print(f'张量 d位于{d.device}上')
    

    检查是否有错误,比如 GPU可用性返回False或输出显示"cuda:0"。

  8. 处理常见问题

    • 安装问题:确保 PyTorch 和_cuda版本与您的NVIDIA显卡匹配,并查阅[Pip Install guide](https://pytorch.org/docs/stable/get started.html# Install).
    • 不支持的错误信息:如遇到无法导入模块,请检查PyTorch是否正确安装、路径是否设置正确或环境变量是否被正确识别。
    • 无法使用GPU:确认命令是否执行后才指定 GPU(即修改代码后重新运行会话)。
  9. 扩展功能

    如果需要,可以启用以下PyTorch选项以进一步优化 GPU 性能:

    # 多GPU计算示例:
    if torch.cuda.device_count() > 1:
        print("Let's use multiple GPUs!")
      
    # 使用混合精度训练:
    scaler = torch.cuda.amp.GradScaler()
      
    # 启用自动混合精度(AMP)和执行优化选项:
    with torch.amp.autocast():
        outputs = model(inputs)
    
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    

通过遵循这些步骤,您可以在 Jupyter Notebook 中有效地利用 GPU 进行计算。确保在每次运行时重新加载会话以应用新设置的参数。如果有问题出现,请检查所有环境变量和安装指令是否正确配置。

相关文章:

  • ubuntu离线安装Ollama并部署Llama3.1 70B INT4
  • 刷题总结 栈和队列:单调栈
  • 玩机日记 14 飞牛fnOS部署qBittorrent、AList、Jellyfin,实现下载、存取、刮削、观看一体的家庭影音中心
  • 基于 CFD 预测的机器学习第 2 部分:在 Benchmark 应用程序上使用 Stochos 预测流场
  • VMware建立linux虚拟机
  • github 部署前端静态网页(react vite)
  • 【PLL】相位检测器:PFD
  • Java多线程安全
  • QT零基础学习之路(四)--信号和槽机制
  • 第五章:队列管理模块
  • DAY40|动态规划Part08|LeetCode: 121. 买卖股票的最佳时机 、 122.买卖股票的最佳时机II 、 123.买卖股票的最佳时机III
  • 文本编辑器使用指南:Linux中的文本编辑器大冒险
  • 算法题(76):跳跃游戏II
  • 【JavaWeb13】了解ES6的核心特性,对于提高JavaScript编程效率有哪些潜在影响?
  • 静止的钉子
  • transformer架构嵌入层位置编码之动态NTK-aware位置编码
  • 第四章 哈希表
  • 每天一个Flutter开发小项目 (4) : 构建收藏地点应用 - 深入Flutter状态管理
  • 递归、搜索与回溯算法 —— 名词解析
  • Elasticsearch面试宝典【刷题系列】
  • 自己有云主机 怎么网站备案/百度竞价seo排名
  • 电子商务网站建设及维护管理/免费网站统计代码
  • 如何开始做网站/青岛关键词优化seo
  • 动态倒计时网站模板/青岛seo用户体验
  • 淘宝网站优化实例/网络电商推广方案
  • 小小水蜜桃视频高清在线观看/seo管理系统