Как совмещать несовместимое, ускоряя неускоряемое, используя ассемблер Go ☠️

Хардкор

GO
Оптимизация

Доклад принят в программу конференции

Мнение Программного комитета о докладе

3/4 Go-программистов ничего не знают и знать не желают о Go’шной черной магии. Могут себе позволить! Но в Go есть черная магия, и чернейший ее раздел — применение Go-ассемблера. Что происходит в самых темных глубинах стека вплотную к ядру системы и камням процессоров, расскажет черный маг Игорь.

Целевая аудитория

Go-разработчики, которые слышали про ассемблер и им было бы интересно научиться оптимизировать код с его помощью.

Тезисы

Расскажу, как можно ускорять код, используя абстрактный ассемблер Go. Разберу часто используемые SIMD-инструкции, покажу, как можно пользоваться инструкциями, которые не поддержаны из коробки, затрону gccgo и Cgo. Приведу и разберу примеры программ.


Подготовительные материалы:
https://www.youtube.com/watch?v=KINIAgRpkDA
https://habr.com/ru/companies/badoo/articles/317864/ (дублирующая статья)
https://habr.com/ru/companies/vk/articles/358088/
https://go.dev/doc/asm

Работает в финтехе Яндекса, любит Go, преподает в университете и на частных курсах.

Яндекс

Яндекс — технологическая компания, которая создает инновационные продукты на основе машинного обучения и нейронных сетей. Команда талантливых математиков и программистов развивает самую популярную в России поисковую систему и более 85 пользовательских сервисов, которые помогают людям в повседневных заботах.

Видео

Подготовительное задание
Видео:
https://www.youtube.com/watch?v=KINIAgRpkDA
https://habr.com/ru/companies/badoo/articles/317864/ (дублирующая статья)

Статья на habr'е:
https://habr.com/ru/companies/vk/articles/358088/

Прочитать статью на go.dev:
https://go.dev/doc/asm