Запуск xgboost на процессоре Skylake значительно медленнее - PullRequest
0 голосов
/ 29 мая 2018

Мы компилируем xgboost v0.7 из исходного кода на ванильном образе докера Ubuntu.Этот образ запускается на наших экземплярах EC2 в критических по времени настройках.

Недавно мы попробовали новый тип экземпляров EC2 c5, который должен быть процессором Intel Skylake gen.Очень странно, что тот же образ докера на новых C5s дает значительно худшие результаты по времени.В среднем в 3 раза медленнее.

Идеи о том, почему это может иметь место?


Все еще остается верным при компиляции xgboost с -march = skylake-avx512

Ответы [ 2 ]

0 голосов
/ 16 января 2019

У нас была похожая проблема (в 3 раза хуже латентность) при переходе на процессоры Skylake gen в Google Cloud.Однако оказалось, что настоящая проблема была вызвана использованием экземпляров с большим количеством ядер (32 ядра).По какой-то причине XGBoost порождал 30 потоков на каждый экземпляр XGBoost (хотя predict должен работать только в одном потоке).Больше подробностей здесь https://github.com/dmlc/xgboost/issues/1345.

Мы исправили это, установив

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

сразу после загрузки модели.

0 голосов
/ 19 июня 2018

Только что встретил этот пост, очень похоже на то, что мы видим.

https://aloiskraus.wordpress.com/2018/06/16/why-skylakex-cpus-are-sometimes-50-slower-how-intel-has-broken-existing-code/

...