2024年Pytorch + CUDA配置教程(Windows版)手把手教学,详细讲解

2024年Pytorch + CUDA配置教程(Windows版)

请注意,由于PyTorch和其依赖项(如CUDA、cuDNN)会不断更新,因此安装过程中可能需要参考最新的官方文档和指南。

准备工作

确认Python环境:
PyTorch需要Python 3.6或更高版本。可以通过命令行输入python --version或python3 --version来检查Python版本。
如果未安装Python或版本不符合要求,建议从Python官网下载安装。
安装Anaconda(可选但推荐):
Anaconda是一个开源的Python和R语言的分布式版本,用于科学计算(数据科学、机器学习应用、大数据处理和可视化)。它简化了包管理和部署,并允许用户轻松地安装、运行和更新包及其依赖项。
从Anaconda官网下载适合您操作系统的版本并安装。

[Step 1] GPU驱动安装——版本越新越好

Windows系统的显卡驱动应该很好装,全是图形化窗口,显卡驱动的下载网站是:英伟达显卡驱动查找地址

alt text

在这里选择你的显卡并点击“开始搜索”查找驱动,并在下方下载名为GeForce Game Ready驱动程序的驱动即可,其余安装过程直接一直下一步就可以安装完成了。

alt text

[Step 2] 决定Pytorch版本——要在装CUDA之前就确定好

此步骤非常关键,这也是很多人装了卸载,然后再装再卸多次都不能成功的原因之一。

打开这个网页查看pytorch官网支持的两各版本CUDA:Pytorch下载链接

alt text

截至2024年6月22日,官网支持11.8和12.1两个版本的CUDA,因此我们只需要根据一会安装的CUDA来选择安装pytorch的命令即可

[Step 3] CUDA安装及环境变量配置

​此步骤前提为安装好GPU驱动,若驱动没有安装好,请移步[Step 1]。

首先进入cmd命令行,输入如下命令:


nvidia-smi


命令行输出:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 555.42.02              Driver Version: 555.42.02      CUDA Version: 12.5     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4080        Off |   00000000:01:00.0  On |                  N/A |
|  0%   49C    P0             60W /  320W |    1209MiB /  16376MiB |      5%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
等等......

其中, Driver Version: 后面是驱动版本,这个当然越高越好,越高的版本有可能支持更高的CUDA版本;CUDA Version: 后面是支持的最高CUDA版本。也就是说本机安装的CUDA版本不能高于此版本。

最高CUDA版本为11.x的不可以安装12.1版本CUDA所支持的pytorch;

最高CUDA版本为12.x的可以选择安装任意一种pytorch,语法没有差别。

以本机为例,CUDA版本不能高于12.5,也就是说我可以选择安装12.1版本的pytorch

接下来我们来到CUDA Release下载安装CUDA工具包(CUDA Toolkit)

CUDA版本号a.b.c三个位置中,a必须与pytorch对应的CUDA版本相同,b必须高于pytorch对应的CUDA版本,如我想要下载12.1CUDA对应的pytorch,我可以下载12.4版本的CUDA甚至最新版(12.5)CUDA。

下载完成后,安装还是一直下一步,不需要更改安装位置,只需要默认即可。

CUDA会默认安装到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\{版本号}中。

此时打开命令行并输入


nvcc -V


来检查CUDA安装是否成功,并查看CUDA版本号。

若安装成功,则命令行输出类似信息:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Mar_28_02:18:24_PDT_2024
Cuda compilation tools, release 12.4, V12.4.131
Build cuda_12.4.r12.4/compiler.34097967_0

否则找不到nvcc命令。

若安装失败,原因有可能是nvcc目录没有在环境变量中,在此提供一个解决办法:

  1. 进入“编辑系统环境变量”
  2. 添加环境变量CUDA_HOME,值为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\{版本号}
  3. 修改Path变量,在后面追加%CUDA_HOME%\bin
  4. 一路确定
  5. 重新打开命令行窗口
  6. 输入nvcc -V,成功查看上述消息

至此,CUDA安装成功!

[Step 4] Anaconda安装及环境变量配置

Anaconda拥有强大的包管理器和较简单的虚拟环境配置过程。可以说,学习数据处理或者人工智能,这个Anaconda是必备的软件之一。因此这部分不了解的就别跳过啦,好好看完吧!

Anaconda官网

Anaconda安装

进入上述官网进行Anaconda下载,选择Windows平台下载,并进入安装。

安装位置可以选择空间较大的盘,因为以后可能会创建多个虚拟环境。默认的安装位置为C:\ProgramData\anaconda3,为了方便记忆,我只改变盘符而不改变其他路径,我将其修改为D:\ProgramData\anaconda3

这一步骤全选:

alt text

然后点击Install开始安装,等待安装完成。(可能需要一定的时间)

添加CONDA环境变量

安装之后需要主动将conda执行文件配置到环境变量中:

  1. 首先创建环境变量CONDA_HOME,值为{anaconda3文件夹位置},例如,在本人的例子中为D:\ProgramData\anaconda3

  2. 然后在Path变量中追加以下五条内容:

    %CONDA_HOME%

    %CONDA_HOME%\Library\bin

    %CONDA_HOME%\Library\usr\bin

    %CONDA_HOME%\Library\mingw-w64\bin

    %CONDA_HOME%\Scripts

  3. 添加完毕后新打开一个命令行窗口输入conda --version来测试conda是否可用。

  4. 初始化conda命令:

    依次输入以下两条命令:

    conda init
    conda init cmd.exe
    
    

至此,conda配置成功

[Step 5] 新建Python虚拟环境

此步骤使用conda创建虚拟环境

conda换源<可选步骤>

若不能使用魔法从官方库下载,或连接十分缓慢,可选择此步骤。此步骤将conda源换为清华源

  1. 执行conda config --set show_channel_urls yes生成.condarc文件之后进行修改。.condarc文件生成于C:\Users\{电脑用户名}文件夹下。

  2. 打开此文件后将其修改为如下内容并保存:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

  1. 运行conda clean -i,清空索引缓存,确保使用的是清华源

创建适合于pytorch的虚拟环境

  1. 我们新建一个虚拟环境,使用如下命令创建(命令中{虚拟环境名}替换为你想创建的名字,使用英文):

    conda create -n {虚拟环境名} python=3.9 matplotlib numpy pandas jupyter
    
    

    我们新建一个python版本为3.9的虚拟环境,初始化安装了matplotlib, numpy, pandas库,以避免后续依次安装而造成的依赖版本冲突问题。

    Tips: 经验得出的结论,这样安装的python包会自动协调版本内容,避免冲突。所以尽可能在创建时一次安装完成。但有些python包比较大,下载如果过慢会导致创建时间随之延长。

    等环境创建完毕后进入此虚拟环境,命令为:

    conda activate {虚拟环境名}
    
    
  2. 新建完虚拟环境后,就可以正式安装pytorch了。

    我们回到pytorch的官网

    选择Stable的build版本,Windows平台,Conda包管理器,Python语言和与自己安装的CUDA版本兼容的CUDA

    复制下面的安装指令,以我的电脑为例,大概长这个样子:

    conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
    
    
  3. 经过漫长的等待之后,pytorch安装成功

验证安装

安装完成后,可以通过Python脚本来验证PyTorch是否安装成功,并检查是否可以正确利用GPU(如果安装了GPU版本)。

测试GPU是否可用

  1. 在本虚拟环境中,使用python命令进入python控制台

  2. 导入pytorch包,并验证cuda是否可用

>>> import torch
>>> torch.cuda.is_available()

  1. python控制台输出True,则GPU可用,环境安装完毕

在这里插入图片描述

### 实现支持并发执行的自定义Promise函数 为了创建一个能够并行处理多个异步操作的 `Promise` 函数,可以借鉴 JavaScript 中现有的模式和技术。具体来说,可以通过构建一个类似于 `Promise.all()` 的功能来管理一组并发的任务。 #### 设计思路 核心概念在于维护一个池(pool),该池负责跟踪当前正在运行的请求数量以及待处理的任务列表。每当有新的任务加入时,如果未达到最大并发数,则立即启动;否则等待已有任务完成后再启动新任务。这种方式既能保证高效利用资源又不会造成过多的同时连接。 #### 关键技术点 - 使用 `Promise` 对象封装每一个单独的操作。 - 利用 `async/await` 结合 `try/catch` 来简化错误处理逻辑[^1]。 - 应用闭包特性保存上下文环境中的变量状态。 - 通过事件监听机制监控已完成的工作项,并据此决定何时发起下一批次的新工作项。 #### 代码实现 下面是一个简单的基于上述原理的手写 `concurrentPromises` 方法: ```javascript function concurrentPromises(tasks, limit) { let executing = []; const makeRequest = async (task) => { try { await task; } catch(error){ console.error('Error occurred:', error); } finally { executing.splice(executing.indexOf(task), 1); if (tasks.length > 0) { startNext(); } } }; const startNext = () => { while (executing.length < limit && tasks.length > 0) { const promiseTask = tasks.shift().promiseFunction(); // Assume each item has .promiseFunction() executing.push(promiseTask); makeRequest(promiseTask); } }; return new Promise((resolve) => { startNext(); if (executing.length === 0) resolve(); for(const p of executing){ p.then(() => { if (executing.length === 0 && tasks.length === 0) resolve(); }); } }); } ``` 此段代码实现了对给定任务集合按指定的最大并发度(`limit`)进行调度的功能。它会持续监测已提交的任务进度,在条件允许的情况下不断向系统注入新的作业直到整个队列清空为止。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值