Azure 数据科学 VM 上的 CNTK

Posted

技术标签:

【中文标题】Azure 数据科学 VM 上的 CNTK【英文标题】:CNTK on Azure Data Science VM 【发布时间】:2017-05-28 05:57:16 【问题描述】:

我有一个带有 Tesla K80 GPU 的 N 系列 Azure VM(数据科学 VM)。根据 NVIDIA 扫描仪,我的 GPU 驱动程序是最新的。 当我运行我的 CNTK Brainscript 时,它显示“未找到 GPU”并在 CPU 模式下运行。我可以做些什么来解决问题?

requestnodes [MPIWrapper]: using 1 out of 1 MPI nodes on a single host (1 reques
ted); we (0) are in (participating)
-------------------------------------------------------------------
Build info:

            Built time: Dec 22 2016 01:43:24
            Last modified date: Thu Dec 22 01:35:04 2016
            Build type: Release
            Build target: GPU
            With 1bit-SGD: yes
            With ASGD: yes
            Math lib: mkl
            CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8
.0
            CUB_PATH: c:\src\cub-1.4.1
            CUDNN_PATH: C:\local\cudnn-8.0-windows10-x64-v5.1
            Build Branch: HEAD
            Build SHA1: 8e8b5ff92eff4647be5d41a5a515956907567126
            Built by svcphil on DPHAIM-24
            Build Path: C:\jenkins\workspace\CNTK-Build-Windows\Source\CNTK\

-------------------------------------------------------------------
No GPUs found

编辑:这是 NVidia_smi.exe 的输出:

C:\Program Files\NVIDIA Corporation\NVSMI>.\nvidia-smi.exe
Fri Jan 13 19:00:43 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 369.30                 Driver Version: 369.30                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla K80           TCC  | 0BD1:00:00.0     Off |                  Off |
| N/A   43C    P8    27W / 149W |      0MiB / 12189MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla K80           TCC  | 5871:00:00.0     Off |                  Off |
| N/A   35C    P8    34W / 149W |      0MiB / 12189MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

【问题讨论】:

还有一点需要注意:VM 是 Windows Server 2012 R2。它是标准 NC12 Azure 实例。 我尝试从 NVIDIA 安装驱动程序,但驱动程序安装失败。 377.35-特斯拉-桌面-winserver2008-2012r2-64bit-international-whql 【参考方案1】:

Windows Data Science VM 默认不附带 GPU 驱动程序、CUDA 等。我们确实有一个名为“DSVM 的深度学习工具包”的扩展程序,它添加了驱动程序、CUDA 和 GPU 版本的深度学习软件,如 CNTK、Tensorflow ,MxNet。

更多信息:http://aka.ms/dsvm/deeplearning

我们最近还发布了一个Ubuntu version of DSVM,它带有内置的 CUDA、GPU 驱动程序和更多的深度学习工具,可以部署在 Azure 上的 GPU 虚拟机或仅 CPU 的虚拟机上。

【讨论】:

更新:Windows 2016 Data Science VM (aka.ms/dsvm/win2016) 附带 GPU 驱动程序、CUDA 和几个框架,如 Tensorflow、Mxnet、Microsoft Cognitive Toolkit、Chainer。我们一直在添加新工具。请查看产品页面以获取最新信息。【参考方案2】:

您是否可以运行 python 笔记本并查看是否可以在将设备设置为 gpu(id) 的情况下运行它们?或者从激活的 CNTK python 环境中你可以尝试设置一些设备。

import cntk as C
from cntk.device import set_default_device, gpu
C.device.set_default_device(C.device.gpu(0))

这可能会给你一些线索,是否是 Brainscript 特定的问题。

【讨论】:

感谢您的跟进。这是该脚本的输出: Traceback(最近一次调用最后一次):文件“.\testGPU.py”,第 3 行,在 C.device.set_default_device(C.device.gpu(0)) 文件“E: \local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34\lib\site-packages \cntk\device.py",第 76 行,在 gpu 中返回 cntk_py.DeviceDescriptor.gpu_device(device_id) ValueError: Specified GPU设备 ID (0) 无效。 现在运行 NVIDIA 诊断工具,我会回过头来。 这让我走上了正确的道路。如果 install.ps 在安装支持 GPU 的 CNTK 时警告缺少 CUDA 依赖项,那就太好了。【参考方案3】:

在安装 CUDA 之后,python 脚本和 Brainscript 现在可以工作了(我安装它是为了运行 NVIDIA_SMI)。我不应该假设 Azure 数据科学映像(仅适用于 N 系列 VM)已预先安装了必要的 NVIDIA 库。 :-)

【讨论】:

很高兴知道这一点。感谢您的报告。将把它传递给支持 N 系列 VM 的相关团队以供将来升级。

以上是关于Azure 数据科学 VM 上的 CNTK的主要内容,如果未能解决你的问题,请参考以下文章

Jupyter 笔记本内核上的 CNTK 无法正常工作

Google Cloud 相当于 Azure 的数据科学 VM

如何将 SSD(高级)磁盘附加到我的 NC6 - Microsoft Azure 中的数据科学 VM?

Azure 数据科学 VM 和 Azure 深度学习 VM 之间的区别

Azure DSVM 上的 Theano

如何从 Azure 数据科学虚拟机使用 SSL 保护我的 Jupyter 笔记本?