【问题标题】:Hardware requirement for installing cntk安装cntk的硬件要求
【发布时间】:2017-01-13 16:05:34
【问题描述】:

Microsoft Cognitive Network Toolkit 是否有任何推荐或最低系统要求?我在 git 上的任何地方都找不到此信息。

【问题讨论】:

  • 您可以从使用 Azure 开始并进行一些实验
  • 为使用 Azure 笔记本点赞。一切都很容易安装,您可以立即开始使用。

标签: cntk


【解决方案1】:

GPU 要求是具有 3.0 或更高计算能力的支持 CUDA 的卡。我尝试在带有 GPU GeForce GT 610 的 PC 上运行训练并收到此消息:

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

【讨论】:

    【解决方案2】:

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

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

    我在一台较旧的台式机上测试了一些简单的图像识别教程,GPU 分数太低(所以只使用 CPU),完成训练花了一个多小时。在 Surface Book(第一代)上,这需要几分钟。第一代 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(第一代)只有 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))
    

    【讨论】:

    • 有人有 Nvidia GTX 1080 可以测试吗?很高兴看到这种 GPU 的数字!
    【解决方案3】:

    CNTK 本身具有最低要求。然而,训练一些更大、要求更高的模型可能会很慢,因此使用 GPU(或 8 个)会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 2014-07-27
      • 2015-02-24
      • 2020-02-28
      相关资源
      最近更新 更多