Вычисления на видеокартах
⭐️ Лекторы
Николай Полярный. CTO Agisoft. Автор курса фотограмметрии и курса алгоритмов на видеокартах.
Борис Симиютин. Старший разработчик, Agisoft. Соавтор курса фотограмметрии и курса алгоритмов на видеокартах.
📢 Анонс
Процессор и видеокарта — в чём между ними разница? Если видеокарты так хороши — зачем нужен процессор? Чем отличаются OpenCL, CUDA и Vulkan? Что и когда выбрать для задачи? Как выглядят алгоритмы на видеокартах?
Обсудим, что такое вычисления в модели массового параллелизма. Что такое hyper-threading, occupancy, code divergence, coalesced memory access? Какие алгоритмы выигрывают от использования видеокарт?
Рассмотрим на примерах:
– merge-sort* за O(N)O(N)11
вместо O(N⋅logN)O(N⋅logN),
– умножение матриц,
– real-time построение BVH-дерева (из этого вырос современный Ray Tracing).
Обсудим, как, понимая архитектуру компьютера хотя бы в общих чертах, можно оценить потенциал для ускорения с помощью разных методов оптимизации — даже без профилировщика.
Лекция будет сопровождаться кодом — с ним можно будет экспериментировать и после лекции. Также на лекции будут карлики и клоуны!
*
merge-sort за O(N)O(N) — на видеокарте он, конечно, не работает строго за линию, но всё равно быстрее, чем на процессоре, в квинвигинтиллион**
раз.
**
В 123.9 раз.
📑 Пререквизиты курса
– умение писать простой C++-код на уровне работы с арифметикой указателей
– понимание асимптотического анализа, базовых алгоритмов и структур данных
– базовые знания многопоточности
– для выполнения заданий достаточно любого ноутбука (видеокарта не требуется, можно тестировать на процессоре)
– для выполнения заданий рекомендуется Ubuntu или Windows, на MacOS потребуются дополнительные усилия
🕑 Первая лекция пройдёт 8 сентября с 18:00 до 19:30. Курс будет проходить по вторникам с 18:00 в Мраморном зале, ПОМИ РАН, наб. реки Фонтанки, 27, Санкт-Петербург. Записаться на курс можно через личный кабинет или в боте:
▶️ Личный кабинет
▶️ Бот
