【发布时间】:2016-01-31 20:26:34
【问题描述】:
我正在迭代地运行交叉验证深度学习训练 (nfolds=4),以通过 R 在 H2O 上进行特征选择。目前,我只有 2 层(即不深),每层有 8 到 50 个神经元。只有 323 个输入和 12 个输出类。
在我的 Intel 4770K(32 GB 内存)上训练一个模型平均需要大约 40 秒。在训练期间,H2o 能够最大化所有 CPU 核心。
现在,为了加快训练速度,我在亚马逊云中设置了一个 EC2 实例。我尝试了最大的计算单元(c4.8xlarge),但速度提升很小。用相同的设置训练一个模型大约需要 24 秒。因此,我怀疑我忽略了一些东西。 我是这样开始训练的:
localH2O <- h2o.init(ip = 'localhost', port = 54321, max_mem_size = '24G', nthreads=-1)
只是为了比较处理器,4770K 在 cpu 基准测试中获得了 10163,而 Intel Xeon E5-2666 v3 获得了 24804(vCPU 为 36)。
至少可以说,这种加速非常令人失望,不值得在亚马逊云中安装和设置所有东西的所有额外工作,同时支付超过 2 美元/小时。
除了设置 nthreads=-1 之外,是否还需要做其他事情才能让所有内核正常工作?
我是否需要开始创建多个集群以缩短训练时间,还是应该开始使用支持 GPU 的新深度学习库?
【问题讨论】:
-
投反对票的人,请解释你投反对票的原因。
-
这里没有足够的元素来回答。而且这个问题太宽泛了。
-
我的博客 post 与 H2O 相比,DNN 的并行加速。
-
如果 cpumark 是可靠的,你有 2.4 倍的速度,但只有 1.67 的加速。我打算建议它可能是 36 核的开销,但我认为它实际上是 9 核。 (请参阅本页中间的 cpuinfo:cmips.net/2015/01/14/benchmarking-the-new-amazon-c4-instances)我猜您自己的机器上有 4 个或 8 个内核?可能值得在您自己的每台机器和 EC2 机器上运行一些 CPU 基准测试,看看它是否真的快 2.4 倍。
标签: r amazon-ec2 deep-learning h2o