Просто переписать на CUDA. Просто ли? Опыт адаптации CatBoost под GPU


Details
Телега: https://t.me/furor_hpc
На второй встрече 4R HPC поговорим о нюансах и проблемах при адаптации существующих решений под вычисления на GPU.
Докладчик: Василий Ершов, Яндекс.
Василий является автором GPU версии CatBoost https://ru.wikipedia.org/wiki/CatBoost — open-source библиотеки машинного обучения, которая широко применяется как в самом Яндексе, так и во вне. Также Василий занимается разработкой различных инструментов машинного обучения и их ускорением с помощью GPU.
В докладе речь пойдет о GPU версии CatBoost — реализации градиентного бустинга от Яндекса.
В отличии от других докладов о CatBoost, ориентированных на специалистов по машинному обучению и data science, в данном докладе фокус будет на техническом опыте, полученном при разработке CatBoost и его предшественников за 10 лет.
Рассмотрим нюансы при адаптации существующих инструментов с CPU на GPU и реализацию на нескольких GPU (multi-GPU); убедимся, что слепое переписывание computational bottlenecks на CUDA не всегда может дать ожидаемый прирост производительности.
Рассмотрим случаи, когда простые модификации алгоритмов позволяют, практически без потерь в качестве, эффективно перенести CPU алгоритм на GPU.
Посмотрим, как попытки выжать максимум производительности на синтетических бенчмарках, принятых в open-source, слабо коррелируют с реальностью, так как библиотеки машинного обучения тесно связанные со всей HPC-инфраструктурой компании, и при принятии архитектурных решений нужно думать о всем pipeline работы продукта, а не только о конкретной его части.
Обсудим некоторые наиболее важные вычислительные блоки в GDBT (gradient boosting on decision trees) и идеи того, как их эффективно переносить на GPU.
По окончанию предлагается проследовать в бар Kriek (в одной минуте ходьбы от места проведения) для обсуждения услышанного и увиденного.
Место проведения: офис компании BIOCAD, Итальянская 17А, БЦ "Пассаж" (не путать с ТЦ "Пассаж"), 2 этаж

Просто переписать на CUDA. Просто ли? Опыт адаптации CatBoost под GPU