在深度学习领域,图形处理单元(GPU)因其并行处理能力而成为加速计算的关键组件。本文将指导如何为TensorFlow-GPU安装和配置GPU环境,并验证安装是否成功。
与中央处理单元(CPU)相比,GPU拥有更多的核心,能够同时处理大量数据,这使得GPU在深度学习中扮演着重要角色。CPU虽然能够快速获取数据,但在处理大量数据时不如GPU高效,因为GPU拥有自己的专用视频内存(VRAM),减少了对主内存的调用次数,从而提高了速度。
要使TensorFlowGPU版本能够工作,需要一块支持CUDA的显卡。大多数近几年生产的NVIDIA显卡都支持CUDA。在继续之前,需要验证显卡是否支持CUDA。
# 打开运行窗口,输入dxdiag查看显卡信息
run dxdiag
集成显卡与CPU位于同一芯片上,依赖系统内存处理图形任务,而独立显卡则与CPU分离,具有更高的图形处理性能。确保机器同时安装了集成显卡和独立显卡。
以下是安装和配置GPU环境的步骤:
Microsoft Visual Studio是一个集成开发环境,用于开发计算机程序、网站、Web应用、Web服务和移动应用。CUDAToolkit包括Visual Studio项目模板和NSight IDE。需要安装VC++ 2017工具集(CUDA尚不支持最新版本的Visual Studio)。
# 从Microsoft官方网站下载Visual Studio,并选择“桌面开发与C++”工作负载进行安装
在安装CUDA Toolkit时,它会安装必要的库,并检查系统中可用的Visual Studio版本,然后安装Visual Studio集成。因此,安装Visual Studio是必要的步骤。
NVIDIA驱动是安装在PC上的NVIDIA图形GPU的软件驱动程序。这是一个用于Windows PC操作系统与设备之间通信的程序。在大多数情况下,硬件设备需要此软件才能正常工作。
# 访问Nvidia.com的下载页面,提供显卡和系统详细信息,然后下载相应的驱动程序
安装下载的NVIDIA驱动后,应该在C盘的程序文件中得到一个包含CUDA子文件夹的NVidia GPU计算工具包文件夹。
Nvidia CUDA Toolkit提供了一个开发环境,用于创建高性能的GPU加速应用程序。使用CUDA Toolkit,可以在GPU加速的嵌入式系统、桌面工作站、企业数据中心、基于云的平台和HPC超级计算机上开发、优化和部署应用程序。该工具包包括GPU加速库、调试和优化工具、C/C++编译器以及构建和部署应用程序的运行时库。
# 访问developer.nvidia.com的CUDA工具包存档,下载TensorFlow支持的CUDA工具包版本
CUDA Toolkit包括GPU加速库、调试和优化工具、C/C++编译器以及构建和部署应用程序的运行时库。
cuDNN是一个包含一组优化的低级原语的库,用于提高CUDA兼容GPU上深度神经网络(DNN)的处理速度。
# 访问developer.nvidia.com的cuDNN下载网页,下载与CUDA版本兼容的cuDNN版本
下载完成后,解压缩下载的文件夹。下载的文件夹应包含一个CUDA文件夹,该文件夹的内容应与程序文件中的NVidia GPU计算工具包文件夹中的CUDA文件夹相匹配。
创建一个虚拟环境,并在其中安装TensorFlowGPU。确保选择的Python版本支持TensorFlow。
# 使用conda创建虚拟环境
conda create -n [env_name] python=[python_version]
# 激活虚拟环境
activate [env_name]
# 在虚拟环境中安装TensorFlow GPU
pip install --upgrade tensorflow-gpu
安装TensorFlow GPU后,检查机器是否安装了基本的Python包,如pandas、numpy、jupyter和Keras。如果没有,请安装它们。
# 安装ipykernel
pip install ipykernel
# 设置内核显示名称并将其链接到虚拟环境变量
python -m ipykernel install --user --name [env_name] --display-name "任何名称"
在Jupyter Notebook中设置Python内核。打开Jupyter Notebook,从菜单栏点击内核并更改为刚刚设置的环境变量。
要检查TensorFlow可用的所有物理GPU设备,运行以下代码:
# 导入TensorFlow
from tensorflow.python.client import device_lib
# 打印所有可用设备
print(device_lib.list_local_devices())
要检查TensorFlow是否启用了CUDA,运行以下代码:
# 导入TensorFlow
import tensorflow as tf
# 打印是否启用CUDA
print(tf.test.is_built_with_cuda())
输出将是一个布尔值,如果TensorFlow是用CUDA构建的,则结果为True。