从上图可以看出GPU(图像处理器,Graphics Processing Unit)和CPU(中央处理器,Central Processing Unit)在设计上的主要差异在于GPU有更多的运算单元(如图中绿色的ALU),而Control和Cache单元不如CPU多,这是因为GPU在进行并行计算的时候每个运算单元都是执行相同的程序,而不需要太多的控制。Cache单元是用来做数据缓存的,CPU可以通过Cache来减少存取主内存的次数,也就是减少内存延迟(memory latency)。GPU中Cache很小或者没有,因为GPU可以通过并行计算的方式来减少内存延迟。因此CPU的Cahce设计主要是实现低延迟,Control主要是通用性,复杂的逻辑控制单元可以保证CPU高效分发任务和指令。所以CPU擅长逻辑控制,是串行计算,而GPU擅长高强度计算,是并行计算。打个比方,GPU就像成千上万的苦力,每个人干的都是类似的苦力活,相互之间没有依赖,都是独立的,简单的人多力量大;CPU就像包工头,虽然也能干苦力的活,但是人少,所以一般负责任务分配,人员调度等工作。
可以看出GPU加速是通过大量线程并行实现的,因此对于不能高度并行化的工作而言,GPU就没什么效果了。而CPU则是串行操作,需要很强的通用性,主要起到统管和分配任务的作用。
桌面右击鼠标,打开NVIDIA控制面板,点击 帮助——>系统信息——>组件,查看自己电脑支持的cuda版本
432版本对应的cuda有10.1版本以下,可以兼容低版本,比如可以选择9.2。我这选择的cuda 10.1版本
官网:https://developer.nvidia.com/cuda-10.1-download-archive-update2
CUDA10的安装包可直接从NVIDIA官网下载。
根据相应的系统选项,我选择的是cuda_10.1.243_426.00_win10.exe(大小为2.5G),安装的时候建议选择自定义 而不是“精简”(从下面的英文解释可以看出,其实这里的精简写成完整应该更贴切,它会安装所有组件并覆盖现有驱动,然而我并不想安装全家桶,何况我的官方显卡驱动比它的新)。
我的选择如下
https://developer.nvidia.com/cuda-10.1-download-archive-update2?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
自定义安装,傻瓜式默认安装即可
win+R,打开cmd窗口,输入nvcc –V,显示CUDA版本信息,安装成功
cuda安装完成之后,还需要下载与CUDA对应的相应版本的cuDNN,到下图所示的下载页面,下载完成后,将这个压缩包里的所有文件放到CUDA10安装目录相应文件夹下即可。
下载地址:
https://developer.nvidia.com/rdp/cudnn-download
注意:以上链接,初次登陆需要注册账号。
点击10.1版本的cuDNN Library for Windows10 (x86)
下载之后,
(1)解压:会生成cuda/include、cuda/lib、cuda/bin三个目录;
(2)分别将cuda/include、cuda/lib、cuda/bin三个目录中的内容分别拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1对应的include、lib、bin目录下即可。
注意:不是替换文件夹,而是将文件放入对应的文件夹中(如果提示是否替换,说明操作有问题)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
此电脑→“高级系统设置”→“环境变量”→“系统变量”→“path”→“编辑”→“新建”加入该路径即可。
CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
设置清华源:
#### 设置清华源镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
#### 设置pytorch镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
打开pytorch 官网:https://pytorch.org/
获取pytorch的安装命令,None表示CPU版本,本人选择cuda10.1:
注意要把后面的-c pytorch去掉,不然还是使用的默认源下载。
官方默认的命令安装后检测缺少dll。点击左下角Previous versions of PyTorch,查看以前版本。
conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.1
验证是否安装成功
import torch
print(torch.version)
torch.cuda.is_available()//查看pytorch是否支持CUDA
Error loading “xx\lib\site-packages\torch\lib\asmjit.dll” or one of its dependencies.
pytorch版本过高,重新安装低版本pytorch
打开官网 https://pytorch.org/get-started/previous-versions/
选择1.5.0版本
先卸载
conda uninstall pytorch torchvision cudatoolkit=10.1 -c pytorch
再安装
conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.1
参考
https://www.cnblogs.com/luckyplj/p/13179220.html
https://blog.csdn.net/MrCharles/article/details/89193619