Реализация базовых функций задачи горения на основе операции FMA специализированного векторного сопроцессора Ивасюк Евгений Вячеславович Научно - исследовательский институт системных исследований РАН
Результаты профилирования Метод ETDRK4 для системы ОДУ, кинетика Мааса и Варнаца (горение водорода, 9 компонентов, 19 реакций), газодинамический код с учетом той же кинетики, решение системы проводится 4-х стадийным методом Роземброка Время выполнения Название функции Примечание GetTransport Коэффициенты переноса для газовой смеси на основании молярных масс или плотностей компонентов __ieee754_exp Библиотечная функция вычисления вещественной экспоненты (библиотека libm-2.17.so) 6.88 UpdateExrate Добавка данных от элементарной реакции в интенсивность образования компонент 6.70 ElemCofs Элементарный механизм: коэффициенты для прямой и обратной реакции 5.11 GetThermo 4.02 ExplTurbStep Явная стадия турбулентности 3.53 GetJacobean Вычисление якобиана 3.47 __pow_finite Библиотечная функция возведения в степень (библиотека libm-2.17.so) 2.59 GetDifComp Учет диффузии компонентов 2.53 Y2X Вычисление плотности компонентов в каждой ячейке
Направления оптимизации задачи горения Ускорение выполнения матрично - векторных операций ( умножение, сложение ): Оптимизация библиотеки BLAS Ускорение вычисления скалярных специальных функций ( экспоненты, деление, кв. корень, дробная степень ): Аппаратная поддержка вычисления функций Программно - аппаратная поддержка вычисления функций
Структура базового вычислительного элемента векторного сопроцессора
Структурная схема вычислительного ядра
Выполнение функций GEMM M×N×KM×N×KL2(512К)ZGEMMCGEMMDGEMMSGEMM 4×4×80.34%23.92% 8×4×80.59%34.12% 32×4×82.05%52.24% 256×4×815.72%60.72% 4×8×80.6%30.93%21.18%14.21% 8×8×81.0%40.59%31.07%22.38% 32×8×83.32%55.05%47.19%42.16% 256×8×825.2%61.08%55.52%57.72% 4×8×160.88%35.88%25.83%17.69%11.37% 8×8×161.37%45.13%35.65%26.99%18.73% 32×8×164.3%57.95%49.91%46.34%38.04% 256×8× %62.79%57.15%58.76%55.12% 16×16×163.9%55.30%47.44%42.24%33.33% 1024×4×862.6%61.73% 1024×8×8100.2%61.83%56.56%60.20% 4096×8×8400.2%37.48%42.41% 256×32× %63.92%57.95%61.78%58.47% 64×64×6462,5%63.11%56.61%59.02%54.73% 256×64× %62.15%58.11%61.96%59.53% 1024×8× %58.06%61.66%57.98% 4096×8× %38.22% 1024×16× %58.15%61.86%58.29% Результаты измерения эффективности выполнения функции GEMM векторным сопроцессором, %
Структурная схема аппаратного модуля вычисления экспоненты
Приведение аргумента Внутренняя разрядность представления данных : Формула приведения : - число старших нулей при вычитании - разрядность мантиссы
Наихудший случай приведения
Обход проблемы наихудшего случая Формула приведения : Увеличение разрядности константы С : FMS – multiply-sub fused, умножение с вычитанием
Структурная схема модуля FMA c модернизацией
Вычисление полинома 2. Снижение степени разложением на множители 1. Прямое вычисление полинома по схеме Горнера 3. Рациональная аппроксимация
Структурные схемы потоковых вычислителей полинома а : T total =T red +T fma *N+T reconstr +T rnd b : T total =T red +T fma *N/2+T div +T reconstr +T rnd c : T total =T red +T fma *N/2+T fma +T reconstr +T rnd
Зависимость степени полинома от константы приведения
Зависимость задержки вычисления полинома от константы приведения
Применение компенсированных операций Сложение Умножение Обычная схема Горнера Компенсированная схема Горнера
Структурная схема вычислителя полинома компенсированного типа
Результаты Проведена оптимизация библиотеки BLAS под перспективный векторный сопроцессор Проведена оценка эффективности выполнения функций библиотеки ( достигает 64%) Предложена модернизация модуля FMA для обеспечения эффективного выполнения стадии приведения аргумента Предложены варианты организации потоковых вычислителей полиномов по схеме Горнера Предложен вариант компенсированного вычислителя полинома, использующий основной блок вещественной арифметики и сопроцессор Работа выполнена в рамках проекта РФФИ « Фундаментальные проблемы создания микропроцессоров и коммуникационных сред супер - ЭВМ эксафлопсного класса, ориентированных на предсказательное моделирование задачи горения ».