【问题标题】:Is H2O supposed to be so slow?H2O应该这么慢吗?
【发布时间】: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


【解决方案1】:

要直接回答您的问题,不,H2O 不应该很慢。 :-) 看起来您有一台不错的 PC,而 Amazon 实例(即使有更多 vCPU)没有使用最好的处理器(就像您在游戏 PC 中发现的那样)。您的 PC 处理器的基本/最大涡轮频率为 3.5GHz / 3.9GHz,而 c4.8xlarge 仅为 2.9GHz / 3.5GHz

我不确定这是否必要,但由于 c4.8xlarge 实例有 60GB 的 RAM,您可以将 max_mem_size'24G' 增加到至少 '32G',因为这就是您的 PC 所拥有的,或者甚至更大的东西。 (虽然不确定这会做任何事情,因为内存通常不是限制因素,但可能值得一试)。

另外,如果您担心 EC2 的价格,不妨考虑使用 Spot 实例。如果您需要额外的实际加速,您应该考虑使用multiple nodes in your EC2 H2O cluster,而不是单个节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多