代码之家  ›  专栏  ›  技术社区  ›  Re'em

在Skylake CPU上运行xgboost的速度明显较慢

  •  1
  • Re'em  · 技术社区  · 8 年前

    最近,我们尝试了新的EC2 c5实例类型,这应该是Intel Skylake gen CPU。非常奇怪的是,新C5s上相同的docker图像在时间上会产生明显更差的结果。中间带慢3倍。

    关于为什么会这样的想法?


    使用-march=skylake-avx512编译xgboost时仍然适用

    2 回复  |  直到 8 年前
        1
  •  0
  •   Re'em    8 年前
        2
  •  0
  •   Marigold    7 年前

    在迁移到谷歌云上的Skylake gen CPU时,我们也遇到了类似的问题(延迟降低了3倍)。然而,事实证明,真正的问题是由使用具有大量内核(32个内核)的实例引起的。出于某种原因,XGBoost在每个XGBoost实例中产生了30个线程(尽管 predict 应该只在单个线程中运行)。更多细节在这里 https://github.com/dmlc/xgboost/issues/1345 .

    model._Booster.set_param("nthread", 1)
    

    刚加载完模型。