По четвергам, начиная с 13 февраля 2025 года, в 18:50 в аудитории 505 будет читаться спецкурс "Моделирование и архитектура вычислительных систем". Лекторы д.т.н. Сухомлин В.А. (ВМК) и к.ф.-м.н. Канахин А.А. (Хуавей).
Аннотация
Вычислительная сложность современных программ кратно возрастает с развитием технологий машинного обучения и искусственного интеллекта. При этом также возрастает потребность в повышении энергоэффективности вычислительных устройств. Разработка архитектуры вычислительной системы является фундаментальной задачей для достижения целевых показателей производительности и энергопотребления.
В программе курса рассматриваются комплексные вопросы организации современных вычислительных систем в приложении к открытой системе команд RISC-V. Материал курса и применимы и к другим системам, поскольку освещает общие вопросы построения архитектуры, такие как: иерархия памяти (кэши, виртуальная память, когерентность памяти), параллелизм уровня инструкций (конвейеризация, суперскалярное выполнение операций, внеочередное исполнение инструкций), векторные и многопоточные вычисления.
Теоретический материал курса сопровождается практическими заданиями по разработке моделей модулей процессора и тестовых программ. В качестве платформы моделирования используется открытый симулятор gem5, активно применяемый в академической среде. Данный практико-ориентированный подход позволяет студентам наглядно оценить влия¬ние архитектурных изменений компонентов процессора на производительность всей системы в целом.
Программа курса
1. Количественный подход к анализу и разработке архитектуры вычислительных систем (ВС)
2. Архитектура команд RISC-V (расширения M, F, V, A.)
3. Дискретно-событийное моделирование вычислительных систем с использованием симулятора gem5
4. Организация иерархии памяти, архитектура фон Неймана и Гарвардская архитектура, кэши, политики вытеснения
5. Принципы работы виртуальной памяти, устройство буфера ассоциативной трансляции
6. Устройство вычислительного конвейера, баланс между частотой процессора и глубиной конвейеризация
7. Зависимости исполнения инструкций, предсказатели переходов, спекулятивное исполнение
8. Суперскалярное выполнение операций
9. Внеочередное исполнение инструкций, статическое и динамическое планирование
10. Устройство векторных процессоров, параллелизм уровня данных
11. Исполнение программ на нескольких вычислительных ядрах, механизмы когерентности кэшей
12. Примитивы синхронизации потоков исполнения, атомарные инструкции и их использование
13. Особенности модели программирования графических процессоров (GPU), архитектура GPU
14. Предметно-ориентированные архитектуры, ускорители матричных вычислений для задач искусственного интеллекта
15. Крупномасштабные вычислительные системы, модель программирования MapReduce