*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Технология Hyper-Threading в играх на реальных примерах Максим Перминов
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Программа Обзор технологии Hyper-Threading Обзор технологии Hyper-Threading Многопоточность в играх: проблемы и решения Многопоточность в играх: проблемы и решения Примеры Примеры Выводы Выводы
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Как работает Hyper-Threading Физические процессоры Логические процессоры, видимые ОС Использование ресурсов физического процессора Полезная работа Время Ресурс 1 Ресурс 2 Ресурс 3 Поток 2 Поток 1 Без Hyper- Threading С Hyper- Threading Поток 2 Поток 1 Ресурс 1 Ресурс 2 Ресурс 3 + Чем лучше задействуются ресурсы процессора, тем больше суммарная полезная работа
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Как работает Hyper-Threading Многопроцессорная система Hyper-Threading Архитектурное состояние Кэш-память Препро- цессор Блок исполнения Технология HT увеличивает производительность за счёт лучшего использования ресурсов Архитектурное состояние Кэш-память Препро- цессор Блок исполнения Архитект. состояние Кэш-память Препро- цессор Блок исполнения Архитект. состояние
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Программа Обзор технологии Hyper-Threading Обзор технологии Hyper-Threading Многопоточность в играх: проблемы и решения Многопоточность в играх: проблемы и решения Примеры Примеры Выводы Выводы
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Почему в играх так сложно приживается многопоточность? Бизнес причины Бизнес причины –Малый опыт использования многопоточности у разработчиков –Ограниченная доля систем HT на рынке (например, по сравнению с SSE) Технические причины Технические причины –Последовательная модель обработки с сильными зависимостями данных между стадиями –Для внедрения многопоточности в игру часто требуется значительные изменения дизайна приложения
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Почему Вам следует внедрить многопоточность в свою игру? Бизнес причины Бизнес причины –Выделитесь на фоне конкурентов! –Все платформы PC будут поддерживать многопоточность аппаратно –Многопоточные программы лучше масштабируются, увеличивая срок жизни продукта –Навыки параллельного программирования окажутся полезными на многих платформах Технические причины Технические причины –Параллелизм – будущее микропроцессорных архитектур –Делайте полезную работу, а не ждите видеокарту –Дизайн многопоточного движка - хороший дизайн, не требующий постоянных переделок
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Основные вопросы многопоточного программирования Что распараллеливать? Методы многопоточности Что распараллеливать? Методы многопоточности При помощи чего это делать? Реализация многопоточности При помощи чего это делать? Реализация многопоточности
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Стратегии многопоточности Использовать параллелизм задач Использовать параллелизм задач –Обрабатывайте слабосвязанные задачи одновременно Использовать параллелизм данных Использовать параллелизм данных –Обрабатывайте несвязанные области данных одновременно
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Модель конвейера в играх Нари- совать мир Обновить мир Данные мира в игре Зависимости по данным
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Параллелизм данных в играх Можно использовать в таких задачах, как Можно использовать в таких задачах, как –Системы частиц, другие эффекты –Физика, ИИ (в т.ч. в Java/ C#) –Спекулятивная загрузка и распаковка данных уровня –Процедурное создание контента – геометрии, текстур, окружающей среды. Потенциал метода Потенциал метода –Хорош для игр, завязанных на процессор –Прост для внедрения Нари- совать мир Обно- вить мир 2 Подмн ожеств о 2 Обно- вить мир 1 Подмн ожеств о 1
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Параллелизм задач в играх Распараллельте весь конвейер Распараллельте весь конвейер –Поток 1 = Render Frame (n) –Поток 2 = Update Frame (n+1) Потенциал метода Потенциал метода –Хорош для игр, завязанных на графическую карту –Непросто реализуется из-за зависимостей данных, но не невозможно Нари- совать мир Обно- вить мир Мир t = n+1 Мир t = n...
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Реализация многопоточности API / Библиотеки API / Библиотеки –Системные вызовы Win32 –P-threads Языки программирования Языки программирования –Ява* –C# Расширения к языкам программирования Расширения к языкам программирования –OpenMP My_thrd_func(void* params) { begin, end
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Программа Обзор технологии Hyper-Threading Обзор технологии Hyper-Threading Многопоточность в играх: проблемы и решения Многопоточность в играх: проблемы и решения Примеры Примеры Выводы Выводы
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Поток 1 Поток 2 K-D LAB Периметр – Дизайн приложения Логика & AI Фиксированное количествокадров – 10 или 20 раз в секунду Фиксированное количествокадров – 10 или 20 раз в секунду Расчет состояний юнитов для момента времени (t) и (t+1) Расчет состояний юнитов для момента времени (t) и (t+1) Логика & AI Фиксированное количествокадров – 10 или 20 раз в секунду Фиксированное количествокадров – 10 или 20 раз в секунду Расчет состояний юнитов для момента времени (t) и (t+1) Расчет состояний юнитов для момента времени (t) и (t+1) Отрисовка 3D Максимально возможное количество кадров Максимально возможное количество кадров Интерполяция между состояниями (t) and (t+1) Интерполяция между состояниями (t) and (t+1) Отрисовка 3D Максимально возможное количество кадров Максимально возможное количество кадров Интерполяция между состояниями (t) and (t+1) Интерполяция между состояниями (t) and (t+1) Интерфейс Действия пользователя через мышь и клавиатуру Действия пользователя через мышь и клавиатуру Отображение игровой информации Отображение игровой информацииИнтерфейс Действия пользователя через мышь и клавиатуру Действия пользователя через мышь и клавиатуру Отображение игровой информации Отображение игровой информации
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation K-D LAB Периметр - параллелизм задач в действии Время Абстра - ктные данные Графи - ческие данные Отри- совать мир Обно- вить мир... HT = 0 Графи - ческие данные Абстра - ктные данные Лог обновлений Обно- вить мир... Отри- совать мир HT = 1 Поток 1 Поток 2
*Other names and brands may be claimed as the property of others.. Copyright © 2003 Intel Corporation Выводы Распараллельте свою игру – это реально сделать! Распараллельте свою игру – это реально сделать! Навыки и испытанные методы помогают, но будьте изобретательными и экспериментируйте Навыки и испытанные методы помогают, но будьте изобретательными и экспериментируйте Внедряйте многопоточность как можно раньше, в идеале на стадии дизайна Внедряйте многопоточность как можно раньше, в идеале на стадии дизайна Используйте Intel® Software Tools для получения максимального выигрыша от многопоточности Используйте Intel® Software Tools для получения максимального выигрыша от многопоточности