安装cntk的硬件要求

时间:2017-01-07 06:15:25

标签: cntk

Microsoft Cognitive Network Toolkit是否有任何建议或最低系统要求?我无法在git的任何地方找到这些信息。

3 个答案:

答案 0 :(得分:1)

您可以在此处找到对GPU硬件要求的一些参考:

https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-Windows

我在旧桌面计算机上测试了一些简单的图像识别教程,其中GPU的分数太低(因此仅使用CPU),完成培训需要一个多小时。在Surface Book(1.代)上花了几分钟。第一代Surface Book使用了AnandTech所说的大致相当于GeForce GT 940M的东西。我没有在台式机上测试过一些较新的高端GPU卡,看看它们的表现如何,但知道它会很有趣。

我使用本教程进行了一些测试:https://github.com/Microsoft/CNTK/blob/master/Tutorials/CNTK_201B_CIFAR-10_ImageHandsOn.ipynb

在我的Surface Book(1.代)上,我得到以下结果:1。培训部分:

Finished Epoch [1]: [Training] loss = 2.063133 * 50000, metric = 75.6% * 50000 16.486s (3032.8 samples per second)
Finished Epoch [2]: [Training] loss = 1.677638 * 50000, metric = 61.5% * 50000 16.717s (2990.9 samples per second)
Finished Epoch [3]: [Training] loss = 1.524161 * 50000, metric = 55.4% * 50000 16.758s (2983.7 samples per second)

这些是在带有一个Nvidia K80 GPU的C6 Azure VM上运行的结果:

Finished Epoch [1]: [Training] loss = 2.061817 * 50000, metric = 75.5% * 50000 9.766s (5120.0 samples per second)
Finished Epoch [2]: [Training] loss = 1.679222 * 50000, metric = 61.5% * 50000 10.312s (4848.5 samples per second)
Finished Epoch [3]: [Training] loss = 1.524643 * 50000, metric = 55.6% * 50000 8.375s (5970.1 samples per second)

正如您所看到的,Azure VM的速度比Surface Book快2倍,因此如果您需要进行实验并且没有具有强大GPU的计算机,则可以选择Azure。 K80 GPU也有更多的内存,因此它可以运行具有更高内存要求的型号。只有在需要时才能启动Azure中的VM以节省成本。

在我的Surface Book上,我很容易出现这样的内存错误:

RuntimeError: CUDA failure 2: out of memory ; GPU=0 ; hostname=OLAVT01 ; expr=cudaMalloc((void**) &deviceBufferPtr, sizeof(AllocatedElemType) * numElements)

这是因为Surface Book(1.代)只有1GB的GPU内存。

更新:当我第一次运行测试时,代码在CPU上运行。以上结果均来自使用GPU。

要检查您是在CPU还是GPU上运行,请使用以下代码:

import cntk as C
if C.device.default().type() == 0:
    print('running on CPU')
else:
    print('running on GPU')

要求CNTK使用GPU:

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

答案 1 :(得分:1)

GPU要求是具有CUDA功能的卡,其计算能力为3.0或更高。我曾尝试使用GPU GeForce GT 610在PC上进行培训,并得到了这样的信息:

  

GPU(GeForce GT 610)具有2.1的计算能力。 CNTK是唯一的   在计算能力为3.0或更高的GPU上支持

答案 2 :(得分:0)

CNTK本身的要求很低。然而,训练一些更大的更苛刻的模型可能会很慢,因此拥有GPU(或8)可以提供帮助。