Профессиональное решение
для инженеров-конструкторов и проектировщиков

ГОСТ Р 57700.36-2021



НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ

Оценка производительности высокопроизводительных вычислительных систем на алгоритмах, использующих сверточные нейронные сети

High-performance computing systems. Performance evaluation of high-performance computing systems on algorithms using convolutional neural network



ОКС 35.240.50

Дата введения 2022-01-01



Предисловие

     

1 РАЗРАБОТАН Федеральным государственным унитарным предприятием "Государственный научно-исследовательский институт авиационных систем" (ФГУП "ГосНИИАС") и Федеральным государственным унитарным предприятием "Российский федеральный ядерный центр - Всероссийский научно-исследовательский институт экспериментальной физики" (ФГУП "РФЯЦ-ВНИИЭФ")

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 700 "Математическое моделирование и высокопроизводительные вычислительные технологии"

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 16 сентября 2021 N 980-ст

4 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)

Введение


Развитие вычислительной техники делает возможным постоянное расширение числа прикладных задач, решаемых с помощью технологий искусственного интеллекта. В частности, повсеместное применение в задачах компьютерного зрения находят алгоритмы на основе сверточных нейронных сетей (СНС). Распространение СНС повлекло за собой создание различных специализированных архитектур вычислителей.

СНС обладают своей спецификой, не позволяющей объективно оценить реальную производительность вычислителя или вычислительной системы с помощью только общих технических характеристик. Возникла необходимость в специальной методике для оценки реальной производительности различных вычислительных систем в задачах, использующих алгоритмы на основе СНС.

В настоящем стандарте описана методика оценки производительности высокопроизводительных вычислительных систем (ВВС) и их частей на алгоритмах, использующих СНС. Методика была разработана с целью максимального упрощения задачи оценки производительности для лиц, не знакомых с СНС, сделать возможным оценку производительности без использования источников информации, отличных от настоящего стандарта, в то же время позволяя эффективно применять методику для оценки вычислительных систем любого типа и размера.

В качестве необходимых данных для создания эталонных реализаций тестов производительности в настоящем стандарте приведены описания типовых операций СНС и описания типовых нейронных сетей. Для создания высокопроизводительных реализаций СНС в настоящем стандарте приведена методика верификации реализации СНС. Высокопроизводительные реализации СНС используются в описанной в настоящем стандарте методике оценки производительности.

В настоящем стандарте также приведены рекомендуемые требования к программному обеспечению (ПО), используемому при тестировании производительности согласно приведенной методике, и вычислительным системам, применяемым для вычислений СНС. Несоблюдение требований к ПО может привести либо к невозможности выполнения оценки производительности, либо к получению значений реальной производительности в разы меньших по сравнению со значениями, которые могут быть практически получены на той же вычислительной технике. Несоблюдение требований к вычислительным системам может привести к применению для вычислений СНС ВВС, заведомо не способных продемонстрировать на них удовлетворительный уровень производительности.

Методику оценки производительности, описанную в настоящем стандарте, рекомендуется применять, в том числе, при составлении требований технического задания на ВВС и их части, при составлении требований на прикладное ПО, реализующее вычисления СНС на ВВС и их частях, при описании характеристик ВВС, которые предполагается применять для алгоритмов, использующих СНС.

     1 Область применения


Настоящий стандарт устанавливает методику определения реальной производительности высокопроизводительных вычислительных систем (ВВС) в задачах, использующих алгоритмы на основе сверточных нейронных сетей (СНС), методику верификации реализаций СНС, а также рекомендательные требования к вычислительным системам и программному обеспечению (ПО).

Методика оценки производительности и требования к вычислительным системам и ПО, установленные настоящим стандартом, рекомендуются для использования при оценке производительности вычислительных систем, применяемых для решения задач, использующих алгоритмы на основе СНС. Методика верификации реализаций СНС рекомендуется для использования при реализации алгоритмов на основе СНС.

     2 Нормативные ссылки


В настоящем стандарте использована нормативная ссылка на следующий стандарт:

ГОСТ Р 57700.27 Высокопроизводительные вычислительные системы. Термины и определения

Примечание - При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящего стандарта в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется применять в части, не затрагивающей эту ссылку

     3 Термины и определения


В настоящем стандарте применены термины по ГОСТ Р 57700.27, а также следующие термины с соответствующими определениями:

3.1 искусственный интеллект (artificial intelligence): Комплекс технологических и программных решений, приводящих к результату, аналогичному или превосходящему результат интеллектуальной деятельности человека (включая способность к самообучению), и используемых для решения прикладных задач на основе данных, в том числе с помощью систем компьютерного зрения, систем обработки естественного языка, рекомендательных систем и интеллектуальных систем поддержки принятия решений и робототехники.

3.2 машинное обучение (machine learning): Процесс обучения алгоритмов искусственного интеллекта с использованием вычислительной техники.

3.3 обучение (training): Процесс создания или улучшения определенной функциональности алгоритмов искусственного интеллекта либо путем использования набора данных в качестве примеров для предполагаемого отношения вопрос/ответ, либо путем обеспечения положительной или отрицательной обратной связи с выходными данными, полученными для соответствующих входных данных.

3.4 нейронная сеть (neural network): Алгоритм из класса алгоритмов искусственного интеллекта, представляющий собой предопределенную последовательность действий с множеством регулируемых параметров, в котором значения выходных данных сложным образом зависят от значений входных данных.

3.5 алгоритм (algorithm): Точно установленное предписание о выполнении в определенном порядке некоторой последовательности операций, однозначно ведущих к решению той или иной конкретной задачи.

3.6 среда машинного обучения (machine learning framework): Программное обеспечение, упрощающее создание пользователем реализаций СНС, обучение СНС и применение СНС.

3.7 тест производительности (benchmark): Типовая тестовая программа, используемая при тестировании производительности вычислительной системы или ее части.

3.8 умножение с накоплением (multiply-accumulate, MAC): Трехоперандная математическая операция или четырехоперандная математическая операция , являющаяся комбинацией из операций умножения и сложения, применяемая в качестве единицы исчисления вычислительной сложности алгоритмов на базе СНС.

3.9 относительная реальная производительность (relative real performance): Отношение реальной производительности к теоретической пиковой производительности.

3.10 вычислительная ячейка (computing cell): Часть ВВС, которая может включать в себя части подсистем ВВС, в том числе вычислительные узлы ВВС, выделение которой удобно с точки зрения высокопроизводительной реализации конкретной программы.

Примечание - Вычислительные ячейки ВВС не могут пересекаться друг с другом.

3.11 однородные вычислительные компоненты (homogeneous computing components): Компоненты ВВС с одинаковым функционалом и характеристиками.

3.12 слой нейронной сети (neural network layer): Фрагмент нейронной сети, который можно выделить в отдельную типовую параметризованную процедуру.

3.13 обучение методом обратного распространения ошибки (back propagation): Итеративный способ обучения, каждая итерация которого состоит из четырех шагов: прямого хода, обратного хода, вычисления градиента и изменения значений весов.

3.14 сверточный слой (convolutional layer): Тип слоя нейронной сети, в основе которого лежат процедуры свертки и матричного умножения.

3.15 сверточная нейронная сеть (convolutional neural network); СНС: Вид нейронной сети, в которой используются сверточные слои.

3.16 вход нейронной сети (input): Начало нейронной сети как алгоритма.

3.17 входной массив нейронной сети (input): Массив данных, подаваемый на вход нейронной сети.

3.18 выход нейронной сети (output): Конец нейронной сети как алгоритма.

3.19 выходной массив нейронной сети (output): Массив данных, генерируемый нейронной сетью на выходе нейронной сети.

3.20 веса (weights): Параметры нейронной сети, настраиваемые во время процесса машинного обучения.

3.21 архитектура нейронной сети (neural network architecture): Описание нейронной сети, в котором приведено, из каких слоев состоит нейронная сеть, каковы параметры этих слоев, описан процесс передачи данных между этими слоями, а также входом и выходом нейронной сети, но не указаны конкретные значения весов нейронной сети.

3.22 применение нейронной сети (inference): Использование нейронной сети как алгоритма для получения выходных данных по входным данным с целью извлечения практической пользы.

3.23 размер пакета (batch size, batchsize): Параметр, устанавливающий для процесса обучения количество комплектов входных массивов нейронной сети, обрабатываемых нейронной сетью в одной итерации обучения, либо устанавливающий для применения нейронной сети количество одновременно обрабатываемых комплектов входных данных.

3.24 реализация сверточной нейронной сети (implementation of a convolutional neural network): Прикладная программа или программный компонент, выполняющая вычисления, заданные нейронной сетью как алгоритм, для процедуры обучения нейронной сети или для процедуры применения нейронной сети.

3.25 эталонная реализация сверточной нейронной сети (reference implementation of a convolutional neural network): Реализация сверточной нейронной сети, относительно которой принимается допущение, что она не содержит ошибок, а погрешности округлений и вычислений в ней можно игнорировать.

Примечание - Эталонная реализация сверточной нейронной сети также является корректной реализацией сверточной нейронной сети.

3.26 корректная реализация сверточной нейронной сети (correct implementation of a convolutional neural network): Реализация сверточной нейронной сети, которая не обязательно считается эталонной, но для которой известно, что она выдает корректный результат с допустимой точностью.

3.27 высокопроизводительная реализация сверточной нейронной сети (high-performance implementation of a convolutional neural network): Реализация сверточной нейронной сети, реализованная таким образом, чтобы она выдавала корректный результат с допустимой точностью за минимальное время.

3.28 прямой ход (forward): Первый из четырех шагов обучения методом обратного распространения ошибки, заключающийся в применении нейронной сети и получении выходных данных по заданным входным.

3.29 карты признаков (feature map): Промежуточные массивы данных, возникающие во время вычислений прямого хода в сверточной нейронной сети.

Примечание - Для общности к картам признаков также относятся входной и выходной массивы нейронной сети.

3.30 обратный ход (backward): Второй из четырех шагов обучения методом обратного распространения ошибки, заключающийся в вычислении специальных промежуточных данных, облегчающих вычисления следующего шага.

3.31 невязки (residual): Промежуточные данные, возникающие во время вычислений обратного хода в сверточной нейронной сети аналогично тому, как карты признаков возникают во время вычислений прямого хода.

3.32 вычисление градиента (gradient calculation): Третий из четырех шагов обучения методом обратного распространения ошибки, заключающийся в вычислении массива приращений для весов.

3.33 градиент (gradient): Массив приращений для весов.

3.34 изменение значений весов (updating weights): Четвертый из четырех шагов обучения методом обратного распространения ошибки, заключающийся в замене текущих весов нейронной сети новыми значениями с использованием градиента.

3.35 итерация обучения (training iteration): Итерация процесса обучения методом обратного распространения ошибки, состоящая из последовательных вызовов четырех шагов обучения.

3.36 фильтр (filter): Массив с определенной структурой, в который объединяются веса некоторых слоев сверточной нейронной сети.

3.37 смещение (bias): Один из типов весов, используемый в различных слоях сверточной нейронной сети.

3.38 ядро пулинга (pooling kernel): Прямоугольная рамка, умозрительная прикладываемая к входной карте признаков в слое пулинга.

3.39 канал карты признаков (channel): Группа значений, выделяемая в карте признаков, объединяющая значения карты признаков с одним индексом глубины.

3.40 шаг свертки/шаг пулинга (stride): Величина, регулирующая число вычислений в слое нейронной сети.

3.41 расширение (padding): Величина, регулирующая ширину и высоту выходной карты признаков.

Доступ к полной версии документа ограничен
Этот документ или информация о нем доступны в системах «Техэксперт» и «Кодекс».