Один такт — много данных: зачем Go-разработчику SIMD
SIMD (Single Instruction, Multiple Data) — один из ключевых инструментов для ускорения вычислений на современных процессорах. Несмотря на то что возможности SIMD постепенно появляются и в Go, для многих разработчиков эта тема остаётся малознакомой из-за низкоуровневой специфики. В этом докладе разберёмся, как работает SIMD, какие возможности уже доступны в Go и где они действительно помогают получить прирост производительности. Поговорим о том, как устроены векторные инструкции, почему ускорение не всегда оказывается бесплатным, какие ограничения накладывает современное железо и почему в некоторых случаях использование AVX может даже снизить производительность. Доклад поможет разобраться, что происходит «под капотом» новых возможностей Go, понять, когда стоит использовать SIMD на практике, а когда лучше выбрать более простые решения.
Спикер
Роман ЧалыйВедущий разработчик · ex-VK