CNTK - CPU 和 GPU

  • 简述

    Microsoft Cognitive Toolkit 提供两种不同的构建版本,即仅 CPU 和仅 GPU。
  • 仅 CPU 构建版本

    CNTK 的仅 CPU 构建版本使用优化的英特尔 MKLML,其中 MKLML 是 MKL(数学内核库)的子集,并与英特尔 MKL-DNN 一起发布,作为英特尔 MKL 的终止版本,用于 MKL-DNN。
  • 仅 GPU 构建版本

    另一方面,CNTK 的纯 GPU 构建版本使用高度优化的 NVIDIA 库,例如CUBcuDNN。它支持跨多个 GPU 和多台机器的分布式训练。为了在 CNTK 中进行更快的分布式训练,GPU 构建版本还包括 -
    • MSR 开发的 1 位量化 SGD。
    • 块动量 SGD 并行训练算法。
  • 在 Windows 上使用 CNTK 启用 GPU

    在上一节中,我们看到了如何安装 CNTK 的基本版本以与 CPU 一起使用。现在让我们讨论如何安装 CNTK 以与 GPU 一起使用。但是,在深入研究之前,首先你应该有一个受支持的显卡。
    目前 CNTK 支持的 NVIDIA 显卡至少支持 CUDA 3.0。为确保,您可以在 https://developer.nvidia.com/cuda-gpus检查您的 GPU 是否支持 CUDA。
    那么,让我们看看在 Windows 操作系统上使用 CNTK 启用 GPU 的步骤 -
    第 1 步- 根据您使用的显卡,首先您需要为您的显卡安装最新的 GeForce 或 Quadro 驱动程序。
    第 2 步- 下载驱动程序后,您需要从 NVIDIA 网站https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows⌖_arch=x86_64安装适用于 Windows 的 CUDA 工具包 9.0 版。安装后,运行安装程序并按照说明进行操作。
    第 3 步- 接下来,您需要从 NVIDIA 网站https://developer.nvidia.com/rdp/form/cudnn-download-survey安装 cuDNN 二进制文件。使用 CUDA 9.0 版本,cuDNN 7.4.1 运行良好。基本上,cuDNN 是 CUDA 之上的一层,由 CNTK 使用。
    第 4 步- 下载 cuDNN 二进制文件后,您需要将 zip 文件解压缩到 CUDA 工具包安装的根文件夹中。
    第 5 步- 这是在 CNTK 中启用 GPU 使用的最后一步。在 Windows 操作系统的 Anaconda 提示符下执行以下命令 -
    
    
    pip install cntk-gpu
    
    
  • 在 Linux 上使用 CNTK 启用 GPU

    让我们看看如何在 Linux OS 上使用 CNTK 启用 GPU -

    下载 CUDA 工具包

    运行安装程序

    现在,一旦你在磁盘上有二进制文件,通过打开终端并执行以下命令和屏幕上的指令来运行安装程序 -
    
    
    sh cuda_9.0.176_384.81_linux-run
    
    

    修改 Bash 配置文件脚本

    在您的 Linux 机器上安装 CUDA 工具包后,您需要修改 BASH 配置文件脚本。为此,首先在文本编辑器中打开 $HOME/.bashrc 文件。现在,在脚本的末尾,包括以下几行 -
    
    
    export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
    
    export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\
    
    ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    
    Installing
    
    
  • 安装 cuDNN 库

    最后,我们需要安装 cuDNN 二进制文件。可以从 NVIDIA 网站https://developer.nvidia.com/rdp/form/cudnn-download-survey下载。使用 CUDA 9.0 版本,cuDNN 7.4.1 运行良好。基本上,cuDNN 是 CUDA 之上的一层,由 CNTK 使用。
    下载 Linux 版本后,使用以下命令将其解压缩到/usr/local/cuda-9.0文件夹 -
    
    
    tar xvzf -C /usr/local/cuda-9.0/ cudnn-9.0-linux-x64-v7.4.1.5.tgz
    
    
    根据需要更改文件名的路径。