1、安装TensorFlow

打开cmd输入:pip install tensorflow-gpu

(默认是安装最新版,如果需要指定安装版本,例如2.5.0版本,则可以输入:pip install tensorflow-gpu==2.5.0

2、安装cuda11.7

理论上来说下载11.1或以上版本的CUDA都可以,这里以11.7为例:

点击进入官网下载 如图所示:

如何下载带gpu版本的xgboost_tensorflow

Win10用户可以点击下面链接直接下载:
点击下载cuda11.7

3、安装cudnn8.3.3

点击官网下载cudnn 需要登录NVIDIA账号之后才能下载,嫌麻烦的,点击下面链接可以直接下载:点击直接下载cudnn8.3.3

下载完成之后解压好,把文件名改成cudnn。然后放进刚刚安装好的CUDA的文件夹里,如下图所示:

如何下载带gpu版本的xgboost_如何下载带gpu版本的xgboost_02

4、添加进环境变量

接下来就是把cuda和cudnn添加进环境变量。一共是放两个:

  1. 需要把extras文件夹里边的CUPTI的lib64放进环境变量。请看我的例子: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cudnn\bin
  2. 需要把cudnn文件里边的bin文件放进环境变量。请看我的例子: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\extras\CUPTI\lib64
  3. 注意,有可能还需要添加这个环境变量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin

如图所示:

如何下载带gpu版本的xgboost_如何下载带gpu版本的xgboost_03

(注意:添加完后最好把他们都移到所有环境变量的最上边,防止出BUG)

5、下载zlibwapi

按照以上教程配置好之后,如果运行程序,可能会报这个错:

Could not locate zlibwapi.dll. Please make sure it is in your library path!
Process finished with exit code -1073740791 (0xC0000409)

这是因为缺少了zlibwapi导致的,点击下载zlibwapi 下载好并解压后,放到C:\Windows\System32文件夹内,然后添加下面路径到环境变量:C:\Windows\System32\zlib123dllx64\dll_x64,最后重启电脑!!!

按照上述的步骤配置好后,GPU就可以正常使用了!

报错解决:

  1. 如果运行代码,成功加载了所有的.dll,但是遇到了import时找不到DLL的错误。 解决方法请看我的另一篇博客:解决:ImportError: DLL load failed while importing _pywrap_tensorflow_internal: 找不到指定的模块
  2. 如果成功加载了所有的.dll,GPU也被读取出来了,但是还是报错:tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm.“。中文解释为:无法获取卷积算法,这可能是因为cuDNN初始化失败。 解决方法请看我的另一篇博客:解决:Failed to get convolution algorithm
  3. 如果代码能跑通,但是运行到中途就卡死,这目测是个BUG,我这里提供两个解决方法,亲测超级适用:1、如果代码有@tf.function加速,把@tf.function这行注释掉再运行;2、把TensorFlow的nightly版、cuda和cudnn更新一遍,然后再运行。