构建机器学习服务器

构建机器学习服务器

我们需要使用 TensorFlow 训练大型网络,这需要几天时间才能在 GPU 上完成。亚马逊提供 GPU 实例,例如p2.16xlarge16 个 GPU(NVIDIA K80)。现在我想知道 TensorFlow 是否能有效利用多个 GPU,或者使用带有单个 Titan X 的桌面是否同样快?

这些 GPU 实例非常昂贵,所以我想自己构建一台机器(基于 Linux)。SLI 似乎不适用于 CUDA,所以我只能一次使用 1 个 GPU 吗?

答案1

如果使用适当的脚本,TensorFlow 确实可以非常有效地利用多个 GPU,例如cifar10_multi_gpu_train.py

python cifar10_multi_gpu_train.py --num_gpus=X

X用 GPU 数量来代替。工作负载被划分并分布在 GPU 上,并且他们已经考虑到诸如 GPU 之间的数据传输相对较慢等问题,因此让 CPU 参与进来以帮助补偿。

使用 16 x Nvidia k80 应该比使用单个 Titan X 快得多,但很难说快多少。如果你愿意花更长的时间,那么显然就不要花钱了——节省的时间是否值得花费取决于你。

更多细节: https://www.tensorflow.org/tutorials/deep_cnn/#training_a_model_using_multiple_gpu_cards

相关内容