Добавить
Уведомления

Реализация динамического полиморфизма для свободных функций (Кирилл Колодяжный)

24 мая в Санкт-Петербурге состоялся первый System Level Meetup от компании YADRO. В рамках мероприятия спикер из YADRO, Кирилл Колодяжный, выступил с докладом "Реализация динамического полиморфизма для свободных функций". Он рассказал про один из вариантов реализации механизма динамического полиморфизма для свободных функций. Под этим подразумевается использование одной сигнатуры функции, но вызов различных ее реализаций в зависимости от значений аргументов. В рамках ООП такая задача может быть реализована с использованием виртуальных функций. Однако Кирилл показал, как можно автоматизировать процедурный подход, используя подобие таблицы виртуальных вызовов. А также рассказал про составные ключи и type-erasure для упаковки функций. Данное решение используется, например, в платформах машинного обучения, позволяя создавать код для тензорных вычислений, который можно без изменения запускать на разных аппаратных вычислителях и в разных сценариях. 00:20 - О докладе. 00:45 - Динамический полиморфизм для свободные функцийв контексте математический библиотек для машинного обучения. 05:20 - Таблица вызовов - FunctionTable. 08:22 - DispatchKey – индекс в массиве функций. 10:22 - Класс Dispatcher. 12:15 - Анализ аргументов, извлечение значений, перебор аргументов функций. 14:49 - Получение значения типа устройства. 16:04 - Производительность в PyTorch: Dispatcher vs LazyTensor. 17:11 - Выводы. 18:10 - Вопросы участников. Подробности о докладах и анонсы следующих митапов вы найдете на нашем Хабре https://habr.com/ru/companies/yadro/articles/

Иконка канала Истовый Инженер
1 268 подписчиков
12+
61 просмотр
5 месяцев назад
3 июня 2025 г.
12+
61 просмотр
5 месяцев назад
3 июня 2025 г.

24 мая в Санкт-Петербурге состоялся первый System Level Meetup от компании YADRO. В рамках мероприятия спикер из YADRO, Кирилл Колодяжный, выступил с докладом "Реализация динамического полиморфизма для свободных функций". Он рассказал про один из вариантов реализации механизма динамического полиморфизма для свободных функций. Под этим подразумевается использование одной сигнатуры функции, но вызов различных ее реализаций в зависимости от значений аргументов. В рамках ООП такая задача может быть реализована с использованием виртуальных функций. Однако Кирилл показал, как можно автоматизировать процедурный подход, используя подобие таблицы виртуальных вызовов. А также рассказал про составные ключи и type-erasure для упаковки функций. Данное решение используется, например, в платформах машинного обучения, позволяя создавать код для тензорных вычислений, который можно без изменения запускать на разных аппаратных вычислителях и в разных сценариях. 00:20 - О докладе. 00:45 - Динамический полиморфизм для свободные функцийв контексте математический библиотек для машинного обучения. 05:20 - Таблица вызовов - FunctionTable. 08:22 - DispatchKey – индекс в массиве функций. 10:22 - Класс Dispatcher. 12:15 - Анализ аргументов, извлечение значений, перебор аргументов функций. 14:49 - Получение значения типа устройства. 16:04 - Производительность в PyTorch: Dispatcher vs LazyTensor. 17:11 - Выводы. 18:10 - Вопросы участников. Подробности о докладах и анонсы следующих митапов вы найдете на нашем Хабре https://habr.com/ru/companies/yadro/articles/

, чтобы оставлять комментарии