- •Курс лекций
- •Оглавление
- •1. Архитектура и принципы работы обычных эвм с центральным процессором (cpu) 9
- •2. Методы повышения производительности традиционных эвм 27
- •3. Типы архитектур высокопроизводительных вычислительных систем 45
- •4. Потоковые параллельные вычисления для физического моделирования 62
- •5. Применение графических процессоров на примерах сложения матриц и решения дифференциальных уравнений 82
- •6. Молекулярная динамика на графическом процессоре 100
- •7. Высокоскоростное моделирование систем с дальнодействием 125
- •8. Восстановление потенциалов межчастичных взаимодействий по температурной зависимости периода решетки методами высокоскоростного мдм на графических процессорах 145
- •9. Базовые особенности программирования графических процессоров шейдерной модели 4.0 160
- •Введение
- •1.Архитектура и принципы работы обычных эвм с центральным процессором (cpu)
- •1.1.Структура традиционной эвм
- •1.2.Организация работы эвм
- •1.3.Иерархия памяти компьютера
- •1.4. Выполнение команд
- •1.5.Требования к коммуникационным линиям
- •1.6.Устройства ввода-вывода
- •2.Методы повышения производительности традиционных эвм
- •2.1. Распараллеливание расчетов
- •2.2.Конвейерная обработка данных и команд
- •2.3.Высокопроизводительные процессоры
- •2.3.1.Суперскалярные процессоры
- •2.3.2.Процессоры risc с сокращенным набором команд
- •2.3.3.Процессоры со сверхдлинным командным словом
- •2.3.4.Векторные процессоры
- •2.3.5.Процессоры для параллельных компьютеров
- •2.3.6.Процессоры с многопоточной архитектурой
- •2.3.7.Технология Hyper-Threading
- •2.4.Требования к памяти высокопроизводительных эвм
- •2.5.Коммуникационная сеть высокопроизводительных эвм
- •2.5.1.Статические и динамические топологии и маршрутизация коммуникационных систем
- •2.5.2.Многокаскадные сети и методы коммутации
- •2.6.Классификация архитектур параллельных компьютеров
- •3.Типы архитектур высокопроизводительных вычислительных систем
- •3.1.Simd архитектура (с разделяемой и распределенной памятью)
- •3.2. Mimd архитектура с разделяемой и распределенной памятью
- •3.3. Комбинированные системы
- •3.4. Мультипроцессорные и мультикомпьютерные системы
- •3.5.Кластеры пэвм и рабочих станций
- •3.6.Особенности параллельного программирования
- •4.Потоковые параллельные вычисления для физического моделирования
- •4.1.Общие принципы распараллеливания расчётов
- •4.2.Обмен данными между процессором и памятью
- •4.3.Графические процессоры как вычислительные системы для поточно-параллельных расчётов
- •4.3.1.Вычислительные возможности центральных процессоров общего назначения и графических процессоров
- •4.3.2.Графический конвейер
- •4.3.3.История программируемости графических процессоров
- •4.3.4.Требования к алгоритмам для gpu, поддерживающих шейдерную модель 3.0
- •4.3.5.Возможности gpu в рамках шейдерной модели 3.0 и взаимодействие gpu с памятью
- •4.3.6.Проблема одинарной точности
- •4.4.Средства программирования графических процессоров
- •4.4.1.Общая структура программы для физического моделирования на графическом процессоре
- •4.4.2.Необходимое программное обеспечение
- •4.5.Области использования графических процессоров
- •5.Применение графических процессоров на примерах сложения матриц и решения дифференциальных уравнений
- •5.1.Распараллеливание независимых вычислений
- •5.2.Используемый графический процессор
- •5.3.Представление данных для графического процессора
- •5.4.Программирование вычислительного ядра
- •5.5.Взаимодействие центрального и графического процессоров
- •5.5.1.Функции центрального процессора
- •5.5.2.Пример программы
- •6.Молекулярная динамика на графическом процессоре
- •6.1.Принципы моделирования ионных кристаллов методом молекулярной динамики
- •6.2.Программирование графического процессора для расчёта действующих на ионы результирующих сил
- •6.2.1.Исходные данные
- •6.2.2.Представление исходных данных для gpu
- •6.2.3.Алгоритм расчёта результирующих сил с использованием графического процессора
- •6.2.4.Шейдер для расчёта результирующей силы
- •6.3.Исполнение шейдера из программы мд-моделирования на c#
- •6.3.1.Этапы алгоритма моделирования, исполняемые на cpu
- •6.3.2.Процедуры на c#, обеспечивающие работу с графическим процессором
- •6.4.Постановка граничных условий и стабилизация макросостояния молекулярно-динамической системы
- •6.4.1.Компенсация импульса и момента импульса
- •6.4.2.Стабилизация температуры
- •7.Высокоскоростное моделирование систем с дальнодействием
- •7.1.Актуальность моделирования
- •7.2.Высокоскоростные алгоритмы моделирования систем с дальнодействующими силами
- •7.3.Методика высокоскоростного молекулярно-динамического моделирования диоксида урана
- •7.4.Экспериментальные результаты и их обсуждение
- •7.5.Анализ зависимостей среднего квадрата смещений ионов кислорода от времени
- •8.Восстановление потенциалов межчастичных взаимодействий по температурной зависимости периода решетки методами высокоскоростного мдм на графических процессорах
- •8.1.Задача восстановления потенциалов межчастичных взаимодействий в кристаллах
- •8.2.Исходные данные и метод восстановления потенциалов
- •8.3.Модель и детали реализации
- •9.Базовые особенности программирования графических процессоров шейдерной модели 4.0
- •9.1.Предпосылки появления новой шейдерной модели
- •9.2.Архитектура gpu шейдерной модели 4.0. Преимущества этой модели
- •9.2.1.Иерархия вычислительных блоков и памяти в шейдерной модели 4.0
- •9.2.2.Конвейерная обработка данных на gpu sm4
- •9.2.3.Логическая структура вычислений на gpu sm4
- •9.2.4.Преимущества gpu шейдерной модели 4.0
- •9.3.Средства высокоуровневого программирования gpu шейдерной модели 4.0
- •9.3.1.Совместимость с шейдерной моделью 3.0
- •9.3.2.Специальные средства программирования gpu sm4. Cuda
- •9.3.3.Средства для написания и компиляции программ на cuda
- •9.3.4.Структура программы на cuda
- •9.4.Перемножение матриц на cuda
- •9.4.1.Алгоритм перемножения матриц
- •9.4.2.Процедура перемножения матриц на gpu sm4
- •9.4.3.Вызов процедуры перемножения матриц из программы на c
- •9.5.Молекулярная динамика на cuda
- •9.5.1.Алгоритм с использованием разделяемой памяти
- •9.5.2.Расчёт сил на gpu с использованием 3-го закона Ньютона
- •Библиографический список
- •Приложение 1 Операторы и функции языка hlsl, использованные в курсе лекций п.1.2. Типы данных
2.3.2.Процессоры risc с сокращенным набором команд
Идеей создания процессора RISC (Reduced Instruction Set Computer – компьютер с сокращенным набором команд) появившейся в 70-е годы ХХ века было то, что он «воспринимал» минимальный набор команд. Создание таких процессоров было следствием известного правила «80/20»: 80% кода типовой программы использует 20% простейших машинных команд ( ряд сложных команд быстрее выполняются, если разбить их на много простых). К отличительным особенностям RISC-процессоров относят:
Сокращенный набор команд (обычно не более 100).
Фиксированная длина машинных инструкций.
Простой формат команды.
Простая адресация.
Выполнение большинства команд происходит за один такт.
Команды выполняют только простые действия.
Операндами могут быть только регистры.
Большое количество регистров общего назначения.
Несколько жестких многоступенчатых конвейеров.
Большая по объему раздельная кэш-память.
Наличие оптимизирующих компиляторов (они имеют возможность анализировать исходный код и менять последовательность команд).
Для третьего поколения этих процессоров характерно следующее:
Процессор является 64-х разрядным, суперскалярным.
Наличие встроенных конвейерных блоков арифметики с плавающей запятой.
Наличие многоуровневой кэш-памяти.
Реализовывать внеочередное выполнение команд позволяют алгоритмы прогнозирования ветвления, а также переназначение регистров.
Увеличение быстродействия достигается повышением тактовой частоты и усложнением схемы кристалла. В первом направлении работает фирма DEC (процессоры Alpha). Структура процессора Alpha 21064 представлена на рис. 2.1.
Рис. 2.1 Структурная схема процессора Alpha 21064 [4]
Функциональные блоки процессора Alpha 21064 [1]:
I-cache - кэш команд.
IRF - регистровый файл целочисленной арифметики.
F-box - устройство арифметики с плавающей точкой.
E-box - устройство целочисленной арифметики (7 ступеней конвейера).
I-box - командное устройство (управляет кэш команд, выборкой и дешифрацией команд).
A-box - устройство управления загрузкой/сохранением данных. Управляет процессом обмена данными м/у IRF, FRF, кэш данных и внешней памятью.
Write Buffer - буфер обратной записи.
D-cache - КЭШ данных.
BIU - интерфейсный блок, с помощью которого подключаются внешняя кэшпамять, размером 128 Кб-8 Мб.
Одной из последних разработок, сделанных на базе этого процессора, является процессор Alpha 21264. Он может читать до четырех инструкций за одни такт, а исполнять – до шести инструкций. Есть возможность выполнять команды с изменением очередности (Out-of-Order). Эффективность этого алгоритма зависит от количества инструкций, которые может обрабатывать процессор для поиска оптимального порядка следования команд. Для сравнения, процессоры фирмы Intel (Pentium Pro, Xeon) способны одновременно работать с 40 командами, Hewlett-Packard (PA-8000) – 56 команд, Alpha – 80!
Для большей эффективности внеочередной обработки команд, в процессоры Alpha добавлены еще 48 целочисленных регистров и 40 регистров для данных с плавающей запятой. При обработке инструкции не нужно перегружать результат в целевой регистр, вместо этого происходит переименование временного регистра (Register Renaming). Точно также работают и остальные процессоры, но в процессорах Alpha есть существенная особенность, каждый их 80 целочисленных регистров продублирован. Это позволяет существенно повысить частоту процессора.
Ряд технических решений представлен и в процессорах PA-8000. Их отличительной особенностью является большой набор средств для внеочередного выполнения команд. Они позволяют аппаратно планировать загрузку ковейеров. В состав процессора от Hewlett-Packard входят:
Два АЛУ для целочисленных операций.
Два устройства для выполнения операций сдвига.
Два устройства для сложения чисел с плавающей запятой.
Два устройства деления.
Два устройства для выполнения операций записи/загрузки.
Современные RISC-процессоры чаще всего применяют в качестве рабочих станций высшего класса, персональных рабочих станций, серверов.
Как следует из вышесказанного RISC-процессоры это не «надархитектурное « свойство, а просто способ выполнения.