МОДУЛЯРНЫЕ ВЫСОКОТОЧНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТЕВЫХ ТЕХНОЛОГИЙ
- Авторы: Ростовцев В.С.1, Зорин Е.И.1, Грачёв Е.А.1
-
Учреждения:
- Вятский государственный университет
- Выпуск: Том 14, № 4 (2013)
- Страницы: 71-74
- Раздел: Статьи
- URL: https://journals.eco-vector.com/2712-8970/article/view/503688
- ID: 503688
Цитировать
Полный текст
Аннотация
Моделируются высокоточные параллельные вычисления с повышенной разрядностью, основанные на модулярной арифметике с преобразованием чисел из позиционной системы счисления в систему остаточных классов и обратно с помощью нейронных сетей. Применение нейронных технологий позволяет распараллелить вычисления на уровне алгоритма решения задачи, а применение модулярной арифметики дает возможность повысить быстродействие высокоточных вычислений за счёт перехода к обработке малоразрядных данных и применения параллельной обработки на уровне выполнения элементарных арифметических операций. Построены нейронные сети для перевода из позиционной системы счисления в систему остаточных классов и обратно. Получены зависимости времени перевода от изменения разрядности. Получены зависимости времени выполнения операций сложения, вычитания и умножения для чисел с фиксированной запятой от изменения разрядности.
Полный текст
С ростом производительности современных ЭВМ расширяется спектр и размерность решаемых на ЭВМ задач, повышаются требования к точности компьютерных вычислений. Большинство компьютерных вычислений проводятся в арифметике с плавающей точкой с жестко ограниченной длиной мантиссы, что приводит к появлению неустранимых ошибок округления. В настоящее время существует множество библиотек, поддерживающих высокоточные вычисления ZREAL (Россия), MP ARITH (Германия), GMP (США) и др., применение которых сдерживается сильной зависимостью роста времени выполнения арифметических операций от точности вычислений. Одним из способов решения данной проблемы является использование модулярной арифметики [1], которая обеспечивает вычисление задач большой алгоритмической сложности. Модулярной системе счисления присущи возможность глубокого распараллеливания вычислений и отсутствие обмена данными в процессе вычислений [2]. При аппаратной реализации этих операций на программируемых логических интегральных схемах (ПЛИС) обеспечивается параллельное выполнение операций над элементами векторов [3]. В отличие от позиционной системы счисления ошибка в одной позиции вектора не влияет на расчеты в других позициях вектора. Этот факт позволяет проектировать устройства с повышенной отказоустойчивостью и с коррекцией ошибок [2; 3]. В модулярной арифметике успешно применяются нейронные сети (НС) [2-8]. Разные модели нейросе-тевых алгоритмов различаются по требованиям к ресурсам системы. Наряду с универсальными моделями НС были исследованы несколько модификаций специальных нейросетевых алгоритмов, разработанных для выполнения преобразования чисел из позиционной системы счисления (ПСС) в систему остаточных классов (СОК). Нейронная сеть конечного кольца (НСКК) представляет специализированный механизм преобразования чисел из ПСС в СОК и обратно [4-6]. Применение НСКК обеспечивает преобразования из одной системы счисления в другую быстрее классических методов и отличается меньшим количеством узлов сети и простотой их организации [4-8]. Например, при использовании НСКК прямого распространения с модульными операциями в каждой ступени для преобразования числа A = 253 по модулю 5 понадобилось 6 операций: три операции сложения и три операции сокращения по модулю. Структурная схема НСКК подробно рассмотрена в [5] и включает входной слой, скрытые слои и выход ной слой. В работе исследовались высокоточные вычисления с числами большой разрядности. Поэтому при разработке алгоритма перевода чисел из ПСС в СОК были выбраны различные основания системы счисления - система счисления с основанием 2 и с основанием 232. По результатам моделирования НСКК продемост-рировали лучшие показатели по сравнению с универсальными НС как по скорости и точности выполнения операции преобразования чисел из ПСС в СОК, так и по требуемым для его реализации ресурсам. Специализированные алгоритмы преобразования чисел из ПСС в СОК являются эффективным решением проблемы обеспечения высокоточных вычислений, особенно при их аппаратной реализации [3]. Архитектура НСКК прямого распространения с модульной операцией только на финишной ступени является эффективнее по затратам оборудования и ресурсов по сравнению с НСКК прямого распространения с модульными операциями в каждой ступени. Нейроны скрытого слоя представляют собой обычные сумматоры и не требуют реализации операций сокращения по модулю. Основной акцент в работе был сделан на обеспечение высокоточных вычислений за счёт повышения разрядности обрабатываемых чисел, что потребовало увеличение значения основания системы счисления, которое ведёт к уменьшению размера массива весов и объёма используемой памяти. Для перевода из системы остаточных классов в позиционную систему счисления используется также нейронная сеть [2]. Для реализации выбранного алгоритма преобразования чисел из ПСС в СОК и обратно был выбран язык программирования C++, так как основная программа предназначена для работы на высокопроизводительном кластере с использованием технологии MPI [8] со следующими характеристиками: - пиковая производительность системы - 19 TFlops; - количество вычислительных узлов - 288; - количество вычислительных ядер - 2304; - каждый узел содержит 4-ядерные процессоры Quad-CoreIntelXeon® 5345 EM64T (тактовая частота 2,33 ГГц, процессорный КЭШ - 8 M6, оперативная память - 2 GB). Экспериментальные вычисления проводились на одном вычислительном узле кластера. Реализация распараллеливания программы выполнена с помощью библиотеки MPICH2. Для реализации НСКК при переводе из ПСС в СОК использовалась библиотека 72 Математика, механика, информатика GMP и компилятор фирмы Intel. Для экспериментального моделирования разработан комплекс программ высокоточных вычислений в системе остаточных классов. Использованы числа в формате с фиксированной запятой с изменяемой разрядностью данных (в пределах от 64 до 2048 бит с шагом 64) и изменяемой размерностью массива обрабатываемых данных (в пределах от 104 до 109), который осуществляет операции сложения, вычитания и умножения [8]. Разрядность преобразуемых и обрабатываемых данных задавалась пользователем как аргумент программы в пределах от 64 до 2048 с шагом 64. Основаниями СОК выбраны самые большие 31-разрядные простые числа, так как вычисления с большими основаниями происходят быстрее, но необходимо учитывать возможность переполнения стандартного диапазона процессора (64 бита). В первой серии экспериментов использовался формат чисел с фиксированной точкой, количество кото рых составляло 1000. Количество оснований определялось разрядностью данных. Так, например, для 64битных данных было использовано 5 оснований, для 2048-битных - 133 основания. Затраты времени для перевода из ПСС в СОК, представленные на рис. 1, показывают выигрыш в 3 раза по сравнению с классическими методами только на повышенной разрядности чисел (более 62048) и увеличении размера основания до 232. На рис. 2 приведен график зависимости времени перевода чисел из СОК в ПСС с использованием НСКК с К = 232 и К = 264. Общее количество переводимых данных составляет 1000. Разрядность изменяется от 2048 бит до 65536 бит с шагом 2048 бит. Результаты экспериментов показывают, что затраты времени преобразования чисел из СОК в ПСС соответствуют затратам времени при использовании классических методов. Рис. 1. График зависимости перевода чисел из ПСС в СОК Рис. 2. График зависимости перевода чисел из СОК в ПСС 73 Вестник СибГАУ. № 4(50). 2013 Эксперименты демонстрируют [8], что время перевода чисел из ПСС в СОК и обратно из СОК в ПСС зависит от разрядности и объёма входных данных (рис. 1, 2). Выигрыш по быстродействию в формате с плавающей точкой наблюдается только при использовании чисел повышенной разрядности (более 2048 разрядов). В экспериментах разрядность изменялась от 2048 бит до 65536 бит с шагом 2048 бит. Таким образом, для обеспечения высокоточных вычислений целесообразно повысить разрядность обрабатываемых данных, использовать перевод чисел в систему остаточных классов и произвести распараллеливание задач, при аппаратной реализации использовать ПЛИС. При использовании нейросетевых технологий перевод чисел из ПСС в СОК и обратно необходимо производить с помощью нейронной сети конечного кольца, которые не требуют специальной библиотеки для работы с длинными числами в отличие от классических методов перевода чисел. Время выполнения операций сложения, вычитания и умножения для чисел с фиксированной запятой в системе остаточных классов значительно меньше, чем время выполнения аналогичных операций, вычисленных в позиционной системе счисления с использованием библиотеки GMP. Сложение и вычитание чисел в СОК выполняется быстрее примерно на 30 %, чем в ПСС, а умножение в СОК в несколько раз быстрее, чем в ПСС. Применение чисел с плавающей запятой дает эффект только при повышенной разрядности чисел.×
Об авторах
Владимир Сергеевич Ростовцев
Вятский государственный университет
Email: rostov_kirov@mail.ru
кандидат технических наук, доцент кафедры ЭВМ Российская Федерация, 610000, Киров, ул. Московская, 36
Егор Иванович Зорин
Вятский государственный университет
Email: cvc575@gmail.com
выпускник кафедры ЭВМ Российская Федерация, 610000, Киров, ул. Московская, 36
Егор Александрович Грачёв
Вятский государственный университет
Email: rook.mail@mail.ru
выпускник кафедры ЭВМ Российская Федерация, 610000, Киров, ул. Московская, 36
Список литературы
- Акушский И. Я., Юдицкий Д. И. Машинная арифметика в остаточных классах. М. : Советское радио, 1968.
- Червяков Н. И. Методы и принципы построения модулярных нейрокомпьютеров // 50 лет модулярной арифметике : тр. Юбилейной Междунар. науч.-техн. конф. (23-25 ноября 2005, Москва, Зеленоград). Зеленоград : Изд-во МИЭТ, 2006.
- Евдокимов А. А. Реализация модулярных нейронных вычислительных структур на базе ПЛИС // 50 лет модулярной арифметике : тр. Юбилейной Междунар. науч.-техн. конф. (23-25 ноября 2005, Москва, Зеленоград). Зеленоград : Изд-во МИЭТ, 2006.
- Червяков Н. И., Сивоплясов Д. В. Нейронная сеть конечного кольца прямого распространения с модульной операцией на финишной ступени // Вестник СевКавГТУ. Сер. «Физико-химическая». 2004. № 1 (8). С. 159-161.
- Пат. РФ № RU 2279132 C2 Нейронная сеть конечного кольца / Н. И. Червяков, В. А. Галкина, Ю. А. Стрекалов, С. В. Лавриненко. Опубл. 27.06.2006.
- Пат. РФ № RU 2317584 С1 Конвейерная нейронная сеть конечного кольца / Н. И. Червяков. Опубл. 20.02.2008.
- Сахнюк П. А., Шапошников А. В. Оптимизация структуры нейронных сетей конечного кольца // Нейрокомпьютеры: разработка, применение. 2001. № 10. С. 13-18.
- А. с. о регистрации программы для ЭВМ № 2013613857. Программный комплекс моделирования модулярных вычислений на базе нейронной сети конечного кольца. / В. С. Ростовцев, Е. А. Грачёв, Е. И. Зорин. № 20136611269 ; заявл. 27.02.2013 ; опубл. 17.04.2013.