RU2732201C1 - Method for constructing processors for output in convolutional neural networks based on data-flow computing - Google Patents
Method for constructing processors for output in convolutional neural networks based on data-flow computing Download PDFInfo
- Publication number
- RU2732201C1 RU2732201C1 RU2020107116A RU2020107116A RU2732201C1 RU 2732201 C1 RU2732201 C1 RU 2732201C1 RU 2020107116 A RU2020107116 A RU 2020107116A RU 2020107116 A RU2020107116 A RU 2020107116A RU 2732201 C1 RU2732201 C1 RU 2732201C1
- Authority
- RU
- Russia
- Prior art keywords
- neural network
- shared register
- network processor
- register files
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Advance Control (AREA)
Abstract
Description
Область техникиTechnology area
Изобретение относится к области «Компьютерные системы, использующие модели, основанные на знаниях - способы или устройства для вывода» может быть использовано для ускорения выполнения алгоритмов статистического вывода, использующих сверточные нейронные сети, и уменьшения энергопотребления систем, использующих такие алгоритмы.The invention relates to the field of "Computer systems using knowledge-based models - methods or devices for inference" can be used to accelerate the execution of statistical inference algorithms using convolutional neural networks, and reduce the power consumption of systems using such algorithms.
Предшествующий уровень техникиPrior art
Известен ряд технических решений в виде устройств, предназначенных для ускорения исполнения алгоритмов, основанных на нейронных сетях, например, патент США № US 20110029471 А1. Недостатком этого устройства является отсутствие возможности локального переиспользования данных из-за необходимости хранения промежуточных результатов во внешнем запоминающем устройстве, что приводит к избыточному энергопотреблению. Также, структура устройства предназначена для ускорения определенного класса алгоритмов и не позволяет ускорять нейронные сети со сложной взаимосвязью между слоями, специальными слоями и непредусмотренными активационными функциями.A number of technical solutions are known in the form of devices designed to accelerate the execution of algorithms based on neural networks, for example, US patent No. US 20110029471 A1. The disadvantage of this device is the lack of the possibility of local reuse of data due to the need to store intermediate results in an external memory device, which leads to excessive power consumption. Also, the structure of the device is designed to accelerate a certain class of algorithms and does not allow accelerating neural networks with complex relationships between layers, special layers, and unintended activation functions.
Наиболее близким по технической сущности к заявляемому изобретению является патент № WO 2016186811 А1, в котором предложен способ вычисления сверток, используя нейросетевой процессор, основанный на систолическом массиве, содержащий модуль прямого доступа к памяти, унифицированный буфер, выполняющий функцию промежуточного хранения нейронных активаций, модуль матричных вычислений, выполненный в виде систолического массива, блок векторных вычислений, выполняющий вычисление активационных функций и объединение результирующих активаций и систему управления, выполняющую поток поступающих извне инструкций, управляющую конфигурацией и работой всех блоков.The closest in technical essence to the claimed invention is patent No. WO 2016186811 A1, which proposes a method for calculating convolutions using a neural network processor based on a systolic array, containing a direct memory access module, a unified buffer that performs the function of intermediate storage of neural activations, a matrix module computations, executed in the form of a systolic array, a vector computation unit that calculates activation functions and combines the resulting activations; and a control system that executes a stream of instructions coming from outside that controls the configuration and operation of all units.
Недостатком данного способа является низкая программируемость, приводящая к ограничению количества различных алгоритмов, которые устройство способно выполнять с помощью предложенного способа.The disadvantage of this method is low programmability, leading to a limitation of the number of different algorithms that the device is capable of performing using the proposed method.
Раскрытие изобретенияDisclosure of invention
Задачей, решаемой в представленном изобретении, является уменьшение объема данных, передаваемых из и во внешнюю память в нейросетевом процессоре для ускорения работы сверточных нейронных сетей, а также оптимизация энергопотребления при переиспользовании локально сохраненных данных, что позволяет уменьшить энергопотребление и реализовать программируемость вычислительных элементов нейросетевого процессора. Программируемость позволяет выполнять произвольные нейросетевые алгоритмы, не ограничиваясь их конечным количеством, заданным на этапе создания нейросетевого процессора. Также, для ускорения специфичных для сверточных нейронных сетей тензорных операций, нейросетевой процессор должен содержать специальные блоки, позволяющие выполнять такие операции с высокой эффективностью.The problem solved in the presented invention is to reduce the amount of data transferred from and to external memory in the neural network processor to speed up the operation of convolutional neural networks, as well as to optimize energy consumption when reusing locally stored data, which allows to reduce power consumption and implement the programmability of the computational elements of the neural network processor. Programmability allows executing arbitrary neural network algorithms, not being limited to their finite number, specified at the stage of creating a neural network processor. Also, to speed up tensor operations specific to convolutional neural networks, the neural network processor must contain special blocks that allow performing such operations with high efficiency.
Решение задачи достигается с помощью следующих приемов.The solution to the problem is achieved using the following techniques.
Способ построения нейросетевых процессоров заключается в размещении на одной интегральной схеме вычислительных элементов, причем вычислительные элементы располагаются в узлах регулярной сетки, и функционально соседние вычислительные элементы соединяются с разделяемыми регистровыми файлами, через которые осуществляется обмен локальными данными в нейросетевом процессоре, причем используется явное управление хранением и обменом локальными данными для достижения детерминированности работы: каждый вычислительный элемент по очереди осуществляет обработку данных из разделяемых регистровых файлов, а потом хранение выходных данных вычислений в этих разделяемых регистровых файлах. Для осуществления обмена данными с внешними процессорами в целях увеличения общей вычислительной мощности и поддерживания работы вычислительной системы, состоящей из нескольких нейросетевых процессоров, на одной или нескольких сторонах интегральной схемы к совокупности крайних разделяемых регистровых файлов подсоединяются располагающиеся на той же стороне контроллеры ввода-вывода.The method for constructing neural network processors consists in placing computational elements on one integrated circuit, and the computational elements are located at the nodes of a regular grid, and functionally adjacent computational elements are connected to shared register files through which local data is exchanged in the neural network processor, and explicit storage control and exchange of local data to achieve determinism of work: each computational element in turn processes data from shared register files, and then stores the output data of calculations in these shared register files. To exchange data with external processors in order to increase the total computing power and support the operation of a computing system consisting of several neural network processors, I / O controllers located on the same side are connected to the set of extreme shared register files on one or several sides of the integrated circuit.
Для реализации описанного выше способа предлагается устройство нейросетевого процессора, содержащее вычислительные элементы, разделяемые регистровые файлы, каждый из которых соединен с несколькими соседними вычислительными элементами, а совокупность крайних разделяемых регистровых файлов на одной или нескольких сторонах интегральной схемы подсоединена к располагающимся на тех же сторонах контроллерам ввода-вывода.To implement the method described above, a neural network processor device is proposed, containing computing elements, shared register files, each of which is connected to several neighboring computing elements, and a set of extreme shared register files on one or more sides of the integrated circuit is connected to input controllers located on the same sides - withdrawal.
Для минимизации объема управляющей логики разделяемые регистровые файлы состоят из банков, причем, к каждому банку в отдельный момент времени может иметь доступ только один вычислительный элемент.To minimize the amount of control logic, the shared register files consist of banks, and only one computational element can have access to each bank at a given time.
Для технологичности проектирования и изготовления вычислительные элементы нейросетевого процессора могут быть расположены в узлах прямоугольной регулярной сетки, а каждый разделяемый регистровый файл функционально соединен с двумя соседними вычислительными элементами.For manufacturability of design and manufacture, the computing elements of the neural network processor can be located at the nodes of a rectangular regular grid, and each shared register file is functionally connected to two adjacent computing elements.
Для корректной работы нейросетевого процессора в его состав включены:For the correct operation of the neural network processor, it includes:
- блок обработки исключений, передающий информацию о возникших ошибочных и исключительных ситуациях всем вычислительным элементам;- an exception handling unit that transmits information about errors and exceptions that have occurred to all computational elements;
- блок синхронизации, содержащий набор регистров, при этом, каждый вычислительный элемент может приостановить свои функции до возникновения определенного значения в этих регистрах или изменить эти регистры в соответствии с исполняемой нейросетевым процессором программой;- a synchronization block containing a set of registers, in this case, each computational element can suspend its functions until a certain value occurs in these registers or change these registers in accordance with the program executed by the neural network processor;
- блок реконфигурации, который позволяет изменять операции, выполняемые вычислительными элементами в процессе работы.- a reconfiguration block that allows you to change the operations performed by computing elements in the process.
Для иллюстрации приведенного выше описания на фиг. 1 приведена структурная схема предлагаемого нейросетевого процессора, где позициями отмечены:To illustrate the above description, FIG. 1 shows a block diagram of the proposed neural network processor, where the positions are marked:
1 - вычислительный элемент (ВЭ);1 - computing element (CE);
2 - разделяемый регистровый файл (РРФ);2 - shared register file (RRF);
3 - контроллер ввода-вывода (КВВ);3 - input-output controller (KVV);
4 - блок синхронизации;4 - synchronization block;
5 - блок обработки исключений;5 - block for processing exceptions;
6 - блок реконфигурации.6 - reconfiguration block.
Для решения задач, решаемых в предлагаемом изобретении ВЭ нейросетевого процессора содержат память инструкций, декодер инструкций, блок логики счетчика инструкций, аппаратный вычислитель тензорных сечений, арифметико-логический модуль, блоки выборки и записи данных в РРФ, а выполняемая в каждый момент инструкция определяется блоком логики счетчика инструкций, способным обрабатывать инструкции изменения текущей выполняемой инструкции - инструкции перехода.To solve the problems solved in the proposed invention, the CEs of the neural network processor contain an instruction memory, an instruction decoder, an instruction counter logic block, a hardware tensor section calculator, an arithmetic-logic module, blocks for fetching and recording data in the RFP, and the instruction executed at each moment is determined by the logic an instruction counter capable of processing instructions for modifying the currently executing instruction — branch instructions.
В свою очередь арифметико-логический модуль состоит из тензорного конвейера, скалярного конвейера и системы передачи данных, при этом тензорный конвейер предназначен для выполнения операций свертки с накоплением.In turn, the arithmetic-logic module consists of a tensor pipeline, a scalar pipeline and a data transmission system, while the tensor pipeline is designed to perform convolution-accumulation operations.
Блоки выборки и записи данных в РРФ включают в себя модуль чтения регистров, модуль записи регистров, коммутатор памяти, арбитр, статусные регистры.The blocks for sampling and writing data in the RFR include a register reading module, a register writing module, a memory switch, an arbiter, and status registers.
Отметим, что арифметико-логический модуль и блоки выборки и записи данных в РРФ реализуются способными обрабатывать одновременно несколько операндов, выполняя несколько однородных операций над данными, расположенными в РРФ.Note that the arithmetic-logic module and blocks for sampling and recording data in the RRF are implemented capable of processing several operands simultaneously, performing several homogeneous operations on the data located in the RRF.
Блок логики счетчика инструкций ВЭ нейросетевого процессора способен обрабатывать помимо инструкций перехода так же и инструкции управления циклами, которые позволяют выполнить определенный блок инструкций определенное количество раз без дополнительных накладных расходов, связанных с выполнением инструкций перехода расходов - тактов работы нейросетевого процессора, связанных с выполнением инструкций перехода.The block of logic of the counter of instructions of the SE of the neural network processor is capable of processing, in addition to the transition instructions, also instructions for controlling cycles, which allow you to execute a certain block of instructions a certain number of times without additional overheads associated with the execution of instructions for the transition of costs - cycles of the neural network processor associated with the execution of instructions ...
Кроме того, ВЭ снабжен аппаратным вычислителем тензорных сечений, управляемым блоком логики счетчика инструкций, который вычисляет адрес в многомерном массиве - тензоре, на основании его размеров и текущих значений счетчиков индексов элементов тензора. Следует заметить, что элементы РРФ, адрес которых вычисляется аппаратным вычислителем тензорных сечений, проецируются в другие предопределенные программой, исполняемой нейросетевым процессором, РРФ с помощью коммутатора памяти.In addition, the SE is equipped with a hardware tensor section calculator controlled by an instruction counter logic unit, which calculates the address in a multidimensional array - tensor, based on its size and current values of the tensor element index counters. It should be noted that the elements of the RRF, the address of which is calculated by the hardware tensor section calculator, are projected into other predefined programs executed by the neural network processor, the RRF, using the memory switch.
Для иллюстрации приведенного выше описания ВЭ на фиг. 2 изображена структурная схема вычислительного элемента и его взаимосвязи с разделяемыми регистровыми файлами, где позициями отмечены:To illustrate the above description of SE, FIG. 2 shows a block diagram of a computing element and its relationship with shared register files, where the positions are marked:
7 - аппаратный вычислитель тензорных сечений (АВТС);7 - hardware tensor section calculator (AVTS);
8 - память инструкций (ПИ);8 - instruction memory (PI);
9 - блок логики счетчика инструкций (БЛСИ);9 - block of logic counter instructions (BLSI);
10 - декодер инструкций (ДИ).10 - instruction decoder (ID).
Блоки выборки и записи данных в РРФ:Blocks of sampling and data recording in the RFR:
11 - модуль чтения регистров (МЧР);11 - register reading module (CDM);
15 - арбитр;15 - referee;
16 - модуль записи регистра (МЗР);16 - register writing module (MZR);
17 - коммутатор памяти (КП);17 - memory switch (KP);
18 - статусные регистры (CP).18 - status registers (CP).
Арифметико-логический модуль:Arithmetic logic module:
12 - тензорный конвейер (ТК);12 - tensor conveyor (TC);
13 - скалярный конвейер (СК);13 - scalar conveyor (SC);
14 - система передачи данных (СПД).14 - data transmission system (SPD).
Следует отметить, что подсоединенные к РРФ КВВ способны передавать поступающую извне информацию ВЭ.It should be noted that the HVCs connected to the RRF are capable of transmitting information from the external EE coming from the outside.
КВВ представляют из себя вычислительный элемент с дополнительной возможностью прямого доступа к внешней динамической памяти.KVV represent a computational element with the additional possibility of direct access to external dynamic memory.
КВВ позволяют организовать прозрачную передачу данных в такой же нейросетевой процессор, установленный рядом.KVV allows you to organize transparent data transmission to the same neural network processor installed nearby.
Изложенное выше позволяет создать вычислительную систему, состоящую из нескольких соединенных нейросетевых процессоров для увеличения общей вычислительной мощности.The above allows you to create a computing system consisting of several connected neural network processors to increase the total computing power.
Для достижения результата предлагаемый нейросетевой процессор состоит из набора ВЭ, каждый из которых способен обмениваться данными с набором других аналогичных ВЭ. Причем обмен данными происходит за счет того, что, как правило, РРФ одновременно доступен нескольким ВЭ. Каждый ВЭ способен оперировать с данными, расположенных в РРФ, как в достаточной степени произвольное сечение тензора и способен, за счет своей программируемости, выполнить операции тензорного умножения на произвольных сечениях. Для этого ВЭ содержит специальный ТК, как часть арифметико-логического модуля, рассчитывающий свертку части данных, а также АВТС, управляющий выборкой данных, поступающих в ТК.To achieve the result, the proposed neural network processor consists of a set of SEs, each of which is able to exchange data with a set of other similar SEs. Moreover, the exchange of data occurs due to the fact that, as a rule, the RRF is simultaneously available to several EEs. Each VE is able to operate with data located in the RRF as a sufficiently arbitrary section of a tensor and is capable, due to its programmability, to perform tensor multiplication operations on arbitrary sections. For this purpose, the VE contains a special TC, as part of the arithmetic-logical module, which calculates the convolution of a part of the data, as well as the ATS, which controls the selection of data entering the TC.
Кроме того, для повышения плотности кода (англ. Code density), БЛСИ способен обрабатывать не только последовательное выполнение программы и операции перехода, но также особые команды аппаратных циклов, позволяющие выполнить определенный блок команд заданное число раз без дополнительных накладных расходов на выполнение инструкций перехода и сравнения. Кроме того, БЛСИ поддерживает вложенные циклы определенной глубины и команду преждевременного выхода из цикла, позволяющую прервать выполнение заданного количества вложенных циклов. Это позволяет увеличить плотность вычислительного кода за счет минимизации количества выполняемых вспомогательных операций (например, операций сравнения и условного перехода), не выполняющих непосредственно арифметических действий, составляющих основу нейросетевого алгоритма.In addition, to increase the code density, the BLSI is able to process not only sequential program execution and branch operations, but also special instructions of hardware cycles that allow executing a certain block of instructions a given number of times without additional overhead for executing branch instructions and comparisons. In addition, BLSI supports nested loops of a certain depth and the command to exit the loop early, which allows you to interrupt the execution of a specified number of nested loops. This allows you to increase the density of the computational code by minimizing the number of auxiliary operations performed (for example, comparison and conditional branch operations) that do not directly perform arithmetic operations that form the basis of the neural network algorithm.
Кроме того, архитектура нейросетевого процессора позволяет управлять АВТС с помощью индексов аппаратных циклов, вычисляемых БЛСИ. Такой подход позволяет выполнять произвольные операции матричного умножения таким образом, что непосредственно ТК ВЭ выполняет только арифметические операции, а вся адресная арифметика выполняется исключительно на аппаратном уровне. Такой подход позволяет довести плотность кода до максимально теоретически возможной.In addition, the architecture of the neural network processor makes it possible to control the ATS using the hardware cycle indices calculated by the BLSI. This approach allows performing arbitrary operations of matrix multiplication in such a way that the TC SE directly performs only arithmetic operations, and all address arithmetic is performed exclusively at the hardware level. This approach allows you to bring the code density to the maximum theoretically possible.
В качестве иллюстрации на фиг. 3 приведена структурная схема ТК для нахождения скалярного произведения:By way of illustration, FIG. 3 shows a structural diagram of the TC for finding the dot product:
19 - нулевой скаляр;19 - zero scalar;
20 - входной скаляр;20 - input scalar;
21 - левый умножаемый вектор;21 - left vector to be multiplied;
22 - правый умножаемый вектор;22 - the right vector to be multiplied;
23 - мультиплексор;23 - multiplexer;
24 - умножитель;24 - multiplier;
25 - сумматор;25 - adder;
26 - регистр;26 - register;
27 - результат.27 is the result.
Подробное описание.Detailed description.
Нейросетевой процессор (фиг. 1) состоит из совокупности набора выполненных на одной интегральной схеме ВЭ 1. ВЭ расположены в узлах регулярной сетки, и соседние ВЭ имеют общий РРФ 2, за счет чего осуществляется обмен данными в системе, причем используется явное управление хранением и обменом данными для достижения детерминированности работы. Сетка, в которой расположены ВЭ 1 выполняется предпочтительно прямоугольной, соответственно каждый РРФ 2 разделяется между двумя соседними ВЭ 1.The neural network processor (Fig. 1) consists of a set of
Предпочтительно, с каждой из четырех сторон сетки, в которой находятся ВЭ 1, установлены КВВ 3, способные передавать поступающую извне информацию в ВЭ 1. При этом между крайними ВЭ 1 и КВВ 3 находятся РРФ 2. Сами КВВ 3 представляют из себя вычислительный элемент с дополнительной возможностью прямого доступа к внешней динамической памяти. Наличие КВВ 3 позволяет организовать прозрачную передачу данных, например, в такой же нейросетевой процессор, установленный рядом. Таким образом, можно построить вычислительную систему, которая состоит из нескольких нейросетевых процессоров, объединенных при помощи КВВ 3 для увеличения общей вычислительной мощности.Preferably, on each of the four sides of the grid, in which the
Структурная схема ВЭ 1 представлен на фиг. 2. Каждый ВЭ 1 содержит память инструкций ПИ 8, ДИ 10, арифметико-логический модуль, состоящий из ТК 12, СК 13 и СПД 14, блоков выборки и записи данных в РРФ, включающих Арбитр 15, МЗР 16, МЧР 11 и КП 17, а выполняемая в каждый момент инструкция определяется БЛСИ 9, способным обрабатывать инструкции изменения текущей выполняемой инструкции (инструкции перехода). Сами РРФ 2 предпочтительно разделены на банки, причем для минимизации объема управляющей логики, к каждому банку в отдельный момент времени может иметь доступ только один ВЭ.The block diagram of
Арифметико-логический модуль и блоки выборки и записи данных в РРФ каждого ВЭ выполнены таким образом, что способны обрабатывать одновременно несколько операндов, выполняя несколько однородных операций над данными, расположенными в РРФ определенным образом. Сам арифметико-логический модуль состоит из ТК 12, СК 13 и СПД 14, при этом, ТК 12 предназначен для выполнения операций свертки с накоплением, структурная схема ТК для нахождения скалярного произведения показана на фиг. 3.The arithmetic logic module and blocks for sampling and recording data in the RFR of each VE are designed in such a way that they are capable of processing several operands simultaneously, performing several homogeneous operations on data located in the RFR in a certain way. The arithmetic logic module itself consists of
БЛСИ 9 каждого ВЭ 1 способен обрабатывать помимо инструкций перехода так же и инструкции управления циклами, которые позволяют выполнить определенный блок инструкций определенное количество раз без дополнительных накладных расходов, связанных с выполнением инструкций перехода.
АВТС 7 каждого ВЭ 1, управляемый БЛСИ 9, вычисляет адрес в многомерном массиве - тензоре, на основании его размеров и текущих значений счетчиков индексов элементов тензора при этом элементы РРФ, адрес которых вычисляется блоком АВТС 7 проецируются в другие предопределенные регистры с помощью КП 17.
Кроме того, нейросетевой процессор содержит блок обработки исключений 5, передающий информацию о возникших ошибочных и исключительных ситуациях всем ВЭ 1; блок синхронизации 4, содержащий набор регистров, при этом, каждый ВЭ 1 может приостановить свои функции до возникновения определенного значения в этих регистрах или изменить эти регистры по своему желанию; блок реконфигурации 6, который позволяет изменять операции, выполняемые ВЭ 1 в процессе работы.In addition, the neural network processor contains an
Пример конкретного выполнения.An example of a specific implementation.
Устройство - нейросетевой процессор выполнен в виде кремниевой интегральной цифровой схемы, изготовленной по технологическому процессу 90 нм с низким энергопотреблением, состоящий из регулярной сетки вычислительных элементов, размером 4×4, и 32 локальных разделяемых регистровых файлов, каждый из которых разделяется между двумя вычислительными элементами и имеет объем 2048 машинных слов. Стандартное машинное слово, которым оперирует процессор, имеет размер 16 бит. Каждый БЛСИ содержит аппаратный счетчик циклов, поддерживающий до трех аппаратных циклов. Аппаратный вычислитель тензорных сечений, способный работать с произвольными размерами тензоров, может одновременно выполнять до четырех однотипных операций. Скалярный конвейер системы способен выполнять набор стандартных арифметических и логических операций (сложение, вычитание, логическое «и», логическое «или», логическое «не», логическое исключающее «или», логические сдвиги), а также операции насыщаемого сложения и вычитания над двумя операндами. Тензорный конвейер предназначен для выполнения операции скалярного произведения двух массивов, длиной, не превышающей 8 машинных слов с накоплением. Контроллеры ввода-вывода нейросетевого процессора поддерживают прозрачную передачу данных между крайними разделяемыми регистровыми файлами соседних нейросетевых процессоров. Нейросетевой процессор содержит блок обработки исключений, который может сообщить вычислительным элементам о некорректной операции, выполненной определенным вычислительных элементом или о необходимости сброса нейросетевого процессора.The device - a neural network processor is made in the form of a silicon integrated digital circuit manufactured according to the technological process of 90 nm with low power consumption, consisting of a regular grid of computational elements, 4 × 4 in size, and 32 local shared register files, each of which is shared between two computational elements and has a volume of 2048 machine words. The standard machine word that the processor operates on is 16 bits in size. Each LSI contains a hardware cycle counter that supports up to three hardware cycles. The hardware tensor section calculator, capable of working with arbitrary tensor sizes, can simultaneously perform up to four operations of the same type. The scalar pipeline of the system is capable of performing a set of standard arithmetic and logical operations (addition, subtraction, logical "and", logical "or", logical "not", logical exclusive "or", logical shifts), as well as saturable addition and subtraction operations on two operands. The tensor pipeline is designed to perform the operation of the dot product of two arrays with a length not exceeding 8 accumulated machine words. I / O controllers of the neural network processor support transparent data transfer between the extreme shared register files of neighboring neural network processors. The neural network processor contains an exception handling unit that can inform the computational elements about an incorrect operation performed by a certain computational element or about the need to reset the neural network processor.
В таблице 1 представлено сравнение оцененной энергоэффективности предлагаемой реализации нейросетевого процессора и процессора Intel i7-6700K.Table 1 shows a comparison of the estimated energy efficiency of the proposed implementation of the neural network processor and the Intel i7-6700K processor.
Промышленная применимостьIndustrial applicability
Устройство - нейросетевой процессор, может быть использован в различных применениях, накладывающих ограничение на энергопотребление, таких, как персональные мобильные устройства, робототехнические платформы, системы автономного видеонаблюдения. Кроме того, нейросетевой процессор может быть использован в системах интеллектуальной обработки большого количества данных (например, в центрах обработки данных), для увеличения удельной вычислительной мощности.The device is a neural network processor that can be used in various applications that impose restrictions on energy consumption, such as personal mobile devices, robotic platforms, and autonomous video surveillance systems. In addition, a neural network processor can be used in systems for intelligent processing of large amounts of data (for example, in data processing centers) to increase the specific computing power.
Выводыconclusions
Метод построения нейросетевых процессоров включает способ и устройство для его реализации способное выполнять большое количество тензорных операций в единицу времени за счет большого количества распределенных вычислительных элементов, содержащих специализированные составляющие для выполнения тензорных вычислений. Это позволяет значительно ускорить вычисления, специфичные для сверточных искусственных нейронных сетей. Кроме того, поскольку основной объем данных передается локально между соседними вычислительными элементами, и управляется явным образом, устройство может быть выполнено крайне энергоэффективным.The method for constructing neural network processors includes a method and a device for its implementation capable of performing a large number of tensor operations per unit of time due to a large number of distributed computing elements containing specialized components for performing tensor calculations. This can significantly speed up computations specific to convolutional artificial neural networks. In addition, since the bulk of the data is transferred locally between neighboring computing elements, and is explicitly controlled, the device can be made extremely energy efficient.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020107116A RU2732201C1 (en) | 2020-02-17 | 2020-02-17 | Method for constructing processors for output in convolutional neural networks based on data-flow computing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020107116A RU2732201C1 (en) | 2020-02-17 | 2020-02-17 | Method for constructing processors for output in convolutional neural networks based on data-flow computing |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2732201C1 true RU2732201C1 (en) | 2020-09-14 |
Family
ID=72516425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020107116A RU2732201C1 (en) | 2020-02-17 | 2020-02-17 | Method for constructing processors for output in convolutional neural networks based on data-flow computing |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2732201C1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2793084C1 (en) * | 2022-05-20 | 2023-03-28 | Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ | Specialized computing system designed for inference in deep neural networks based on stream processors |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029471A1 (en) * | 2009-07-30 | 2011-02-03 | Nec Laboratories America, Inc. | Dynamically configurable, multi-ported co-processor for convolutional neural networks |
RU2473126C1 (en) * | 2011-10-28 | 2013-01-20 | Федеральное государственное унитарное предприятие "Научно-производственное объединение автоматики имени академика Н.А. Семихатова" | Neuroprocessor |
RU2553098C2 (en) * | 2013-08-23 | 2015-06-10 | Федеральное государственное унитарное предприятие "Научно-производственное объединение автоматики имени академика Н.А. Семихатова" | Neurocomputer |
WO2016186811A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Computing convolutions using a neural network processor |
WO2017206156A1 (en) * | 2016-06-03 | 2017-12-07 | Intel Corporation | Look-up convolutional layer in convolutional neural network |
US20190041961A1 (en) * | 2018-09-27 | 2019-02-07 | Intel Corporation | Power savings for neural network architecture with zero activations during inference |
WO2019025864A2 (en) * | 2017-07-30 | 2019-02-07 | Sity Elad | A memory-based distributed processor architecture |
CN106599989B (en) * | 2015-10-08 | 2019-04-09 | 上海兆芯集成电路有限公司 | Neural network unit and neural pe array |
US10430706B2 (en) * | 2016-12-01 | 2019-10-01 | Via Alliance Semiconductor Co., Ltd. | Processor with memory array operable as either last level cache slice or neural network unit memory |
US20200026979A1 (en) * | 2018-06-22 | 2020-01-23 | Samsung Electronics Co., Ltd. | Neural processor |
-
2020
- 2020-02-17 RU RU2020107116A patent/RU2732201C1/en active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029471A1 (en) * | 2009-07-30 | 2011-02-03 | Nec Laboratories America, Inc. | Dynamically configurable, multi-ported co-processor for convolutional neural networks |
RU2473126C1 (en) * | 2011-10-28 | 2013-01-20 | Федеральное государственное унитарное предприятие "Научно-производственное объединение автоматики имени академика Н.А. Семихатова" | Neuroprocessor |
RU2553098C2 (en) * | 2013-08-23 | 2015-06-10 | Федеральное государственное унитарное предприятие "Научно-производственное объединение автоматики имени академика Н.А. Семихатова" | Neurocomputer |
WO2016186811A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Computing convolutions using a neural network processor |
CN106599989B (en) * | 2015-10-08 | 2019-04-09 | 上海兆芯集成电路有限公司 | Neural network unit and neural pe array |
WO2017206156A1 (en) * | 2016-06-03 | 2017-12-07 | Intel Corporation | Look-up convolutional layer in convolutional neural network |
US10430706B2 (en) * | 2016-12-01 | 2019-10-01 | Via Alliance Semiconductor Co., Ltd. | Processor with memory array operable as either last level cache slice or neural network unit memory |
WO2019025864A2 (en) * | 2017-07-30 | 2019-02-07 | Sity Elad | A memory-based distributed processor architecture |
US20200026979A1 (en) * | 2018-06-22 | 2020-01-23 | Samsung Electronics Co., Ltd. | Neural processor |
US20190041961A1 (en) * | 2018-09-27 | 2019-02-07 | Intel Corporation | Power savings for neural network architecture with zero activations during inference |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2793084C1 (en) * | 2022-05-20 | 2023-03-28 | Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ | Specialized computing system designed for inference in deep neural networks based on stream processors |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6698784B2 (en) | Multi-thread binding state in multi-thread processor | |
JP6660991B2 (en) | Scheduling tasks on multi-threaded processors | |
EP3885997A1 (en) | Efficient hardware architecture for accelerating grouped convolutions | |
US11727256B2 (en) | Hardware architecture for processing data in neural network | |
CN109661647A (en) | The multiply-add instruction of vector | |
CN113330466A (en) | Systems and methods involving aspects and/or other features of hybrid quantum machines, quantum information techniques | |
WO2021178666A1 (en) | Systems and methods for intelligently buffer tracking for optimized dataflow within an integrated circuit architecture | |
CN115443467A (en) | Integrated circuit device with deep learning accelerator and random access memory | |
Andri et al. | Going further with winograd convolutions: Tap-wise quantization for efficient inference on 4x4 tiles | |
JP6551751B2 (en) | Multiprocessor device | |
Yang et al. | RiBoSOM: Rapid bacterial genome identification using self-organizing map implemented on the synchoros SiLago platform | |
RU2732201C1 (en) | Method for constructing processors for output in convolutional neural networks based on data-flow computing | |
Meng et al. | PPOAccel: A high-throughput acceleration framework for proximal policy optimization | |
Ogawa et al. | A compiler for deep neural network accelerators to generate optimized code for a wide range of data parameters from a hand-crafted computation kernel | |
Hu et al. | Data optimization cnn accelerator design on fpga | |
US10761848B1 (en) | Systems and methods for implementing core level predication within a machine perception and dense algorithm integrated circuit | |
Tai et al. | Synthesizing tiled matrix decomposition on FPGAs | |
Biswas et al. | An Efficient Reduced-Memory GPU-based Dynamic Programming Strategy for Bounded Knapsack Problems | |
Khurge | Strategic Infrastructural Developments to Reinforce Reconfigurable Computing for Indigenous AI Applications | |
RU2681365C1 (en) | Computational module for multi-stage multithreaded processing of digital data and method of processing using this module | |
US11249724B1 (en) | Processing-memory architectures performing atomic read-modify-write operations in deep learning systems | |
US20220129320A1 (en) | Schedule-aware dynamically reconfigurable adder tree architecture for partial sum accumulation in machine learning accelerators | |
EP4330860A1 (en) | Performance scaling for dataflow deep neural network hardware accelerators | |
WO2023183279A1 (en) | Autonomous compute element operation using buffers | |
WO2024006401A1 (en) | Parallel processing architecture with split control word caches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PD4A | Correction of name of patent owner |