Ускорение вычислений векторными инструкциями на примере алгоритма DRS системы виртуализации.

Инфраструктура и эксплуатация

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

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

Разработчики go заинтересованные в применении векторных инструкций, сложностей кодогенерации, решении задач требующих нетривиальных вычислений.

Тезисы

Время от времени в решении бизнес задач мы сталкиваемся с NP полными проблемами, задачами поиск оптимального решения которых имеет экспоненциальную сложность. Обычно мы прибегаем к аппроксимационным алгоритмам, чтобы уложится в требуемое время, но что если есть другой путь. Прогресс в производительности процессоров и видеокарт привёл к тому, что мы можем использовать полный перебор, там где мы раньше обходились приближениями.

На примере алгоритма DRS платформы Evolution компании Cloud.ru, рассмотрим как он может быть решён на разных версиях операций с плавающей точкой процессоров x86 и Arm. В чём сложности задействования SIMD операций. Почему это сложнее на go и как это обойти. Бонус - сравнения со скоростью видеокарты, так ли они сильны.

Писал ОС для телефонов ещё до Android и первых iOS. Разрабатывал сетевой стеки для умных лампочек. С 2010 года занимаюсь разработкой облачных услуг. Сначала в компании Parallels, теперь в компании Cloud.ru.

Cloud.ru

Cloud.ru – ведущий провайдер облачных и AI‑технологий. Мы создаем персональные решения, оказываем экспертную поддержку и решаем задачи бизнеса любого масштаба: от ритейла и телекома до тяжелой промышленности и банков.

Видео