Статья опубликована в рамках: Научного журнала «Студенческий» № 28(240)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4
ТЕНЗОРНЫЕ ЯДРА. ИСТОРИЯ СОЗДАНИЯ, ВОЗМОЖНОСТИ И ПОТЕНЦИАЛ
TENSOR CORES. THE HISTORY OF CREATION, OPPORTUNITIES AND POTENTIAL
Alexey Milkevich
Student, Faculty of Information Technology and Control, St. Petersburg State Technological Institute,
Russia, St. Petersburg
Igor Ananchenko
Scientific Supervisor, Candidate of Technical Sciences, Assoc., St. Petersburg State Technological Institute,
Russia, St. Petersburg
АННОТАЦИЯ
Развитие нейросетей, а также растущие потребности в вычислительных мощностях задач научного моделирования побудило создание и дальнейшую модернизацию новой технологии тензорных ядер и процессоров – специализированных интегральных схем, способных многократно ускорить процесс вычисления самых трудоёмких математических операций. В статье рассматривается история их появления, текущие возможности и дальнейший потенциал.
ABSTRACT
The development of neural networks, as well as the growing need for computing power for scientific modeling tasks, prompted the creation and further modernization of a new technology of tensor cores and processors – specialized integrated circuits capable of repeatedly speeding up the process of calculating the most time-consuming mathematical operations. The article discusses the history of their appearance, current opportunities, and further potential.
Ключевые слова: тензорные ядра, тензор, процессор, нейросети.
Keywords: tensor cores, tensor, processor, neural networks.
Центральный процессор (далее ЦП) – это электронный блок либо интегральная схема, исполняющая машинные инструкции (код программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Зачастую этот компонент называют просто процессором.
Первым однокристальным микропроцессором считается 4-битный Intel 4004, вышедший 15 ноября 1971 года. Его рабочая частота составляла 108 кГц, а кол-во операций, выполняемых за одну секунду, составляло 92600. С дальнейшим развитием технологий процессоры многократно улучшили свои показатели [5]. Хорошим отражением этого является существование эмпирического закона Мура, согласно которому количество транзисторов на кристалле процессора увеличивается в 2 раза каждые 24 месяца.
Со временем перед инженерами возникло препятствие – размер транзистора (главного компонента процессора) достиг своего физического минимума, дальнейшее уменьшение невозможно из-за влияния квантовых эффектов. Данный барьер вынудил прибегнуть к иным мерам, для дальнейшего развития технологии. Таким образом стали появляться многоядерные процессоры – ЦП, содержащий два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе.
Дальнейшие улучшения процессоров на данный момент осуществимы за счёт двух способов: увеличения количества вычислительных ядер и улучшения микроархитектуры процессора. Последний пункт являет собой целый комплекс мер по улучшения взаимодействия составляющих процессора: увеличение количества исполняемых машинных инструкций за такт, увеличения объема кэша (быстрой памяти), усовершенствование предсказателя переходов и т.д.
ЦП изначально разрабатывался для последовательного решения большого количества разнообразных задач, поэтому количество ядер не велико, но каждое из них обладает собственным блоком управления. Однако есть тип задач, для которых не требуется сложная логика, самое важное – это множество однотипных вычислений [3].
Яркими примерами таких задач являются трёхмерная графика и научные вычисления. Данные задачи хорошо подходят для распараллеливания – процесса, при котором вычислительная задача разбивается на множество маленьких одинаковых подзадач. Так что для их решения были придуманы видеокарты – устройства в основу которых заложен графический процессор, имеющий большое количество (до нескольких тысяч) простых АЛУ(Арифметико-логическое устройство), а так же компоненты необходимые для их максимального быстродействия, среди которых главным является видеопамять, так как взаимодействие с ней хорошо оптимизировано, а следовательно потенциал АЛУ раскрывается в полной мере.
С ростом вычислительной мощности всё активнее в повседневную жизнь стали проникать нейросети – математические модели, позволяющие быстро решать задачи классификации, регрессии, кластеризации, прогнозирования и генерации. При разработке модели, основной проблемой является её обучение – процесс корректировки параметров, влияющих на работу модели.
Именно задача обучения моделей нейросетей способствовало появлению и дальнейшему развитию новой технологии – тензорный процессор (далее ТП) или тензорные вычислительные ядра (далее ТЯ). ТЯ – специализированная интегральная схема, оперирующая особыми объектами(тензорами), и рассчитанная на выполнение узкого круга математических операций. Тензор – это математический объект, описывающий соотношения между другими математическими объектами, связанными друг с другом. Обычно они отображаются в виде массива чисел, размерность которого показана ниже.
Рисунок 1. Размерность тензоров
Основная идея, которой придерживались инженеры при разработке, являлось создание элемента, способного максимально быстро производить операции GEMM (general matrix multiplication – основное матричное умножение) – это «склеенная» математическая операция, состоящая из матричного умножения с последующим суммированием результата с еще одной матрицей.
Рисунок 2. Операция GEMM
Для её реализации была выбрана архитектура конвейерного массива – схема, при которой вычислительные элементы на физическом уровне связаны между собой. Это позволяет нивелировать ограничения в скорости передачи данных, так как вычисления и данные распределены по всему конвейеру. К примеру, для тензорного процессора от компании Google Cloud TPUv2 – конвейерный массив состоит из двух вычислительных матриц 128 на 128, что даёт 32 768 АЛУ для 16-битных значений с плавающей точкой [4].
Для максимальной оптимизации данные ядра могут выполнять ограниченный круг операций, в основном завязанный на операциях GEMM с разной точностью (цифра означает количество бит выделяемых на данный тип данных): Int8 (целые числа), Int4, Float Point 8 (далее FP – числа с плавающей точкой), FP16, и самое главное FP64 – именно этот формат необходим для научных вычислений, так как позволяет сохранить максимальную точность вычислений при минимальных временных затратах [2].
Современные архитектурные решения тензорных ядер показывают впечатляющие результаты. Так, по сравнению с вычислениями, производимыми на графическом процессоре, ускорение достигает следующих показателей [1]:
Рисунок 3. Результаты измерений вычислительной способности тензорных ядер: Первый столбец – вычисления на графическом процессоре, следующие на тензорных ядрах с точностью FP16, INT8, INT4 соответственно
Уже сейчас можно наблюдать преимущества технологий ТЯ, приходящих на помощь традиционным вычислительным средствам. Пока что они способны дополнять и ускорять уже существующие системы без необходимости глобальных изменений в логике их работы (в том числе программном коде), особенно это стало заметно с созданием облачных вычислительных центров (от компаний Google и Nvidia), что за разумную плату способны предоставить мощности под любые цели. Своё применение они нашли и в бытовой сфере человеческой жизни – компьютерные игры и профессиональное программное обеспечение. Именно за счёт появления ТЯ появилась возможность подвергать обработке нейросетью изображение, выводимое на экран пользователя, что создало новое направление разработки – технология суперсемплирования и устранения помех. Дальнейшее развитие технологии тензорных ядер и процессоров позволит ускорить, упростить и, главное, удешевить множество трудоёмких вычислений как в сфере научных задач, так и в сфере нейросетей.
Список литературы:
- NVIDIA Tensor Cores [Электронный ресурс] // Компания Nvidia. – Режим доступа: https://www.nvidia.com/en-us/data-center/tensor-cores/ (дата обращения: 14.08.23)
- Understanding Tensor Cores [Электронный ресурс] // Блог Paperspace. – Режим доступа: https://blog.paperspace.com/understanding-tensor-cores/ (дата обращения: 14.08.23)
- В чем разница между CPU и GPU? [Электронный ресурс] // Интернет-издание Tpoger. – Режим доступа: https://tproger.ru/articles/cpu-and-gpu (дата обращения: 15.08.23)
- Почему TPU так хорошо подходят для глубинного обучения? [Электронный ресурс] // Коллективный блог Habr. – Режим доступа: https:// https://habr.com/ru/articles/422317/ (дата обращения: 15.08.23)
- Центральный процессор [Электронный ресурс] : Материал из Википедии — свободной энциклопедии : Режим доступа: https://ru.wikipedia.org/?curid=18874&oldid=131303577
Оставить комментарий