Linux conda中Tensorflow GPU安装配置全面梳理(包含cuda、cudnn)

CPU VS GPU

  • CPU: 中央处理单元。由数百万个晶体管组成,可以有多个处理内核,执行计算机和操作系统所需的命令和流程。
  • GPU: 图形处理单元。由许多更小、更专业的内核组成的处理器。 在多个内核之间划分并执行一项处理任务时,通过协同工作,这些内核可以提供强大的性能。

由于其设计目标的不同,它们分别针对了两种不同的应用场景。

CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。

CPU 基于低延时的设计,具有强大的ALU(算术运算单元),它可以在很少的时钟周期内完成算术计算。

CPU 适用于一系列广泛的工作负载,特别是那些对于延迟和单位内核性能要求较高的工作负载。作为强大的执行引擎,CPU 将它数量相对较少的内核集中用于处理单个任务,并快速将其完成。这使它尤其适合用于处理从串行计算到数据库运行等类型的工作。

GPU是基于大的吞吐量设计,有很多的ALU和很少的cache,访问的数据保存在dram中而不是cache里面,自然不能保证低延时。

GPU的虽然有dram延时,却有非常多的ALU和非常多的thread. 为了平衡内存延时的问题,我们可以中充分利用多的ALU的特性达到一个非常大的吞吐量的效果,尽可能多的分配多的Threads。

综上,与CPU擅长逻辑控制,串行的运算和通用类型数据运算不同,GPU擅长的是大规模并发计算,这也正是密码破解等所需要的。所以GPU除了图像处理,也越来越多的参与到计算当中来。

更具体信息请参考文后链接。

确认GPU信息

首先你的机器上要配置有GPU显卡,目前主流厂商是NVIDIA和AMD。

命令:

% lspci | grep -i vga
0000:05:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 41)
0000:38:00.0 VGA compatible controller: NVIDIA Corporation GV102 (rev a1)
0000:41:00.0 VGA compatible controller: NVIDIA Corporation GV102 (rev a1)
0000:48:00.0 VGA compatible controller: NVIDIA Corporation GV102 (rev a1)
0000:50:00.0 VGA compatible controller: NVIDIA Corporation GV102 (rev a1)

可以看到,我的机器上有4块显卡(第一行是集成显卡,忽略),都是NVIDIA的。

以第一列作为参数查看更详细信息:

% lspci -vvs 0000:38:00.0
0000:38:00.0 VGA compatible controller: NVIDIA Corporation GV102 (rev a1) (prog-if 00 [VGA controller])
	Subsystem: NVIDIA Corporation Device 12fa
	Physical Slot: 9
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 305
	NUMA node: 0
	Region 0: Memory at b7000000 (32-bit, non-prefetchable) [size=16M]
	Region 1: Memory at 6ffe0000000 (64-bit, prefetchable) [size=256M]
	Region 3: Memory at 6fff0000000 (64-bit, prefetchable) [size=32M]
	Region 5: I/O ports at 8000 [size=128]
	[virtual] Expansion ROM at b8000000 [disabled] [size=512K]
	Capabilities: <access denied>
	Kernel driver in use: nvidia
	Kernel modules: nvidiafb, nvidia_drm, nvidia

对于NVIDIA显卡,可以通过特定命令查看显卡信息:

% nvidia-smi
Fri Feb 25 13:54:08 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.44       Driver Version: 440.44       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 208...  Off  | 00000000:38:00.0 Off |                  N/A |
| 31%   37C    P8     6W / 250W |  10537MiB / 11019MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 208...  Off  | 00000000:41:00.0 Off |                  N/A |
| 31%   50C    P2    95W / 250W |   1322MiB / 11019MiB |     35%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce RTX 208...  Off  | 00000000:48:00.0 Off |                  N/A |
| 59%   67C    P2   209W / 250W |   3390MiB / 11019MiB |     71%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce RTX 208...  Off  | 00000000:50:00.0 Off |                  N/A |
| 61%   67C    P2   210W / 250W |   3366MiB / 11019MiB |     67%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     51318      C   /opt/anaconda/envs/test1/bin/python         4487MiB |
|    0     53200      C   /opt/anaconda/envs/test1/bin/python         6039MiB |
|    1     52472      C   /opt/anaconda/envs/test1/bin/python         1311MiB |
|    2     46529      C   /opt/anaconda/envs/test1/bin/python         3379MiB |
|    3     46529      C   /opt/anaconda/envs/test1/bin/python         3355MiB |
+-----------------------------------------------------------------------------+

其中,主要关注:

  • Temp:温度,过高可能是哪里出了问题
  • Memory-Usage:显存使用情况
  • GPU-Util:GPU使用率
  • CUDA Version: 后面要对应到TensorFlow版本

关于显卡更详细的信息可参考相关资料。

确定TensorFlow版本

TensorFlow版本不是随便安装的,对GPU的支持需要对应的驱动库,版本不对应会导致问题。

所以真正开始动手安装之前一定要确认好版本。

确认版本的顺序:

机器上显卡类型 -> 显卡的CUDA版本 -> TensorFlow版本

具体版本间对应关系官网上有:https://tensorflow.google.cn/install/source 。

截图示例:

在这里插入图片描述

对于我的CUDA Version: 10.2来说,可以选择TensorFlow 2.4以下所有版本。

安装TensorFlow 2.3.0

首先确保你的Anaconda环境无误,我对应的python版本为3.6,创建conda虚拟环境命令如下:

conda create -n tf2 python=3.6

需要安装的包:

  • cudatoolkit,版本10.1
  • cudnn:版本7.6
  • tensorflow:2.3.0

注意,如果你已经安装了tensorflow,但没有安装前两个库,使用GPU时会提示找不到CUDA驱动库,无法使用GPU。把前两个库的对应版本安装上即可。

具体的安装步骤(仅四行指令):

conda activate tf2

conda install cudatoolkit=10.1
conda install cudnn=7.6 # 对应的是7.4,但是没有这个版本,装更高版本即可
pip install tensorflow==2.3.0
pip install --upgrade keras # 安装最新版本keras

ok,tensorflow:2.3.0安装完毕,使用下面的测试程序跑一下:

# --coding: utf8--

import tensorflow as tf

if __name__ == '__main__':
    print('tf version: {}'.format(tf.__version__))
    print('keras version: {}'.format(tf.keras.__version__))
    # print('GPU: {}'.format(tf.test.is_gpu_available())) # 1.x版本的TF使用此行
    print('GPU: {}'.format(tf.config.list_physical_devices('GPU'))) # 2.x版本的TF使用

输出如下:

% python show_tf_version.py
tf version: 2.3.0
keras version: 2.4.0
GPU: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'), PhysicalDevice(name='/physical_device:GPU:1', device_type='GPU'), PhysicalDevice(name='/physical_device:GPU:2', device_type='GPU'), PhysicalDevice(name='/physical_device:GPU:3', device_type='GPU')]

ok了。

安装TensorFlow 1.13.1

1.x版本的TensorFlow,cpu和gpu版本是分开的,如果只安装了cpu版本的,无法使用GPU,直接上安装命令:

conda activate tf1

conda install cudatoolkit=10.1
conda install cudnn=7.6 
pip install tensorflow-gpu==1.13.1
pip install keras==2.2.4 # 安装指定版本的keras

输出如下:

tf version: 1.13.1
keras version: 2.2.4-tf
GPU: True
小节

  • 使用conda管理虚拟环境,简单省力,搞错了可以删除再搞一遍
  • 开始安装前确认好版本
  • 如果之前没有安装CUDA驱动库,再安装一下即可
参考

https://tensorflow.google.cn/install/source
https://tensorflow.google.cn/install/pip

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是在 Anaconda 安装 TensorFlow GPU 版本的步骤: 1. 首先,确保已经安装了 Nvidia 显卡驱动程序,并且 CUDAcuDNN 库与您的显卡驱动程序兼容。您可以在 Nvidia 的官方网站上下载这些软件。 2. 然后,打开 Anaconda Navigator,选择 "Environments"(环境)选项卡,然后单击 "Create"(创建)按钮,创建一个新环境。给新环境取一个名称,比如 "tensorflow-gpu",并选择要安装的 Python 版本。建议使用 Python 3.6、3.7、3.8 或 3.9 版本。 3. 环境创建完成后,选择新环境,然后单击 "Open Terminal"(打开终端)按钮,打开终端窗口。 4. 在终端输入以下命令,以安装 TensorFlow GPU 版本: ```conda install tensorflow-gpu``` 这将安装最新版本的 TensorFlow GPU。 5. 安装完成后,可以在终端输入以下命令来验证 TensorFlow 是否正确安装: ```python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"``` 如果 TensorFlow 能够成功导入并计算张量,那么安装就成功了。 请注意,安装 TensorFlow GPU 版本需要具备一定的计算机技术知识和经验,如果您不确定操作步骤或不熟悉相关术语,请谨慎操作,并在遇到问题时咨询专业人士。 ### 回答2: anaconda是一个开源的Python发行版本,它包含了很多常用的科学计算库和工具,可以方便地进行机器学习和深度学习的开发。 安装anaconda:首先需要从anaconda官网(https://www.anaconda.com/products/individual)下载适合自己操作系统的安装包,然后根据安装向导进行安装安装完成后,可以在命令行输入"conda"命令来验证是否安装成功。 安装tensorflow-gpu:如果需要使用GPU加速的tensorflow版本,可以使用以下步骤安装: 1. 打开Anaconda Prompt(Windows)或Terminal(Linux/Mac)。 2. 创建一个新的虚拟环境,并激活该环境: ``` conda create -n tf_gpu_env python=3.8 conda activate tf_gpu_env ``` 这里创建了一个名为"tf_gpu_env"的虚拟环境,并使用python 3.8版本。 3. 安装CUDA工具包和cuDNN库: 在安装tensorflow-gpu之前,需要先安装CUDA工具包和cuDNN库。可以根据自己的显卡型号和操作系统版本从NVIDIA官网(https://developer.nvidia.com/cuda-toolkit-archive)下载对应的CUDAcuDNN安装包,并按照官方文档进行安装配置。 4. 安装tensorflow-gpu: 在创建的虚拟环境,使用以下命令安装tensorflow-gpu: ``` conda install tensorflow-gpu ``` 这将会自动安装当前可用的tensorflow-gpu版本,并解决依赖项。 5. 验证tensorflow-gpu安装成功: 在激活的虚拟环境,运行Python解释器,导入tensorflow并输出版本号,以验证安装是否成功: ``` python >>> import tensorflow as tf >>> print(tf.__version__) ``` 如果成功输出了tensorflow版本号,则表示安装成功。 通过以上步骤,我们可以在anaconda成功安装tensorflow-gpu,从而方便地进行深度学习任务的开发和运行。 ### 回答3: 安装AnacondaTensorFlow-GPU是使用深度学习库TensorFlow进行机器学习研究的常见步骤。下面是一个简单的教程,以帮助您安装配置AnacondaTensorFlow-GPU。 1. 首先,您需要从Anaconda官方网站(https://www.anaconda.com/)下载和安装最新的Anaconda发行版。选择适用于您操作系统的版本并按照安装向导进行安装安装完成后,确保您已将Anaconda加入系统环境变量。 2. 打开命令提示符或终端,并输入以下命令来创建一个新的Anaconda环境: ``` conda create -n tensorflow-gpu ``` 3. 激活新创建的环境: ``` conda activate tensorflow-gpu ``` 4. 然后,您需要安装适用于您的GPU的NVIDIA驱动程序。您可以从NVIDIA官方网站(https://www.nvidia.com/drivers)下载并按照指示安装驱动程序。确保选择与您的GPU兼容的驱动程序版本。 5. 安装CUDA工具包。您可以从NVIDIA官方网站上找到与您的GPU和操作系统兼容的CUDA版本,并按照安装指南进行安装安装完成后,确保将CUDA路径添加到系统环境变量。 6. 安装cuDNNcuDNN是一个高度优化的深度神经网络库,用于加速深度学习模型的训练和推理。您需要从NVIDIA开发者网站(https://developer.nvidia.com/cudnn)下载适用于您的CUDA版本的cuDNN,并按照指示进行安装。 7. 最后,输入以下命令来安装TensorFlow-GPU: ``` conda install tensorflow-gpu ``` 此命令将会自动安装TensorFlow-GPU及其依赖项。安装完成后,您可以在Python交互式解释器或Python脚本导入TensorFlow-GPU库,并开始使用其功能。 请注意,以上步骤假设您已经正确配置了NVIDIA GPU和相应的驱动程序、CUDA工具包和cuDNN。如果您遇到任何问题,请参考相关文档或咨询相关论坛以获取帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值