WO2022131397A1 - Cnn-rnn architecture conversion type computational acceleration device design method - Google Patents

Cnn-rnn architecture conversion type computational acceleration device design method Download PDF

Info

Publication number
WO2022131397A1
WO2022131397A1 PCT/KR2020/018462 KR2020018462W WO2022131397A1 WO 2022131397 A1 WO2022131397 A1 WO 2022131397A1 KR 2020018462 W KR2020018462 W KR 2020018462W WO 2022131397 A1 WO2022131397 A1 WO 2022131397A1
Authority
WO
WIPO (PCT)
Prior art keywords
fpga
accelerator
algorithm
interface
deep learning
Prior art date
Application number
PCT/KR2020/018462
Other languages
French (fr)
Korean (ko)
Inventor
전해룡
Original Assignee
주식회사 모빌린트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 모빌린트 filed Critical 주식회사 모빌린트
Priority to PCT/KR2020/018462 priority Critical patent/WO2022131397A1/en
Publication of WO2022131397A1 publication Critical patent/WO2022131397A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • This specification relates to a CNN-RNN architecture switchable computational accelerator design method.
  • FPGA is a device that can flexibly convert a hardware semiconductor design desired by a designer based on internal programmable DSP, LUT, and memory. It is a device that is applied and used in various semiconductor designs.
  • GPUs are mainly used as computational devices.
  • NPUs Neuro Processing Units
  • DSP digital signal processor
  • LUT low-power arithmetic accelerator
  • the control method of a device equipped with an FPGA arithmetic accelerator constitutes each interface for the operation of each different deep learning algorithm, and a common interface commonly applied to the different deep learning algorithm operations.
  • Interface setting step of the FPGA board Storing each hardware image for the operation acceleration of the different deep learning algorithms in the non-volatile memory of the FPGA board; receiving a selection signal for selecting any one of the respective hardware images; and reconfiguring the gate array of the FPGA computation accelerator according to the selected hardware image.
  • the different deep learning algorithms may include a CNN algorithm and an RNN algorithm.
  • Each of the interfaces may include a first interface for the operation of the CNN algorithm and a second interface for the operation of the RNN algorithm.
  • the first interface may have one end connected to a video device among external devices, and may receive data from the video device.
  • the imaging device may include at least one of a camera, a lidar (LiDAR), and a radar (RADAR).
  • a lidar LiDAR
  • RADAR radar
  • the second interface may have one end connected to an audio device among external devices, and may receive data from the audio device.
  • the audio device may include at least one of a microphone and a speaker.
  • the common interface is connected to a common source used for data processing using the different deep learning algorithms, and the common source may include a communication module and a storage module.
  • the step of storing in the non-volatile memory of the FPGA board is a first hardware image for the operation of the RNN algorithm, a second hardware image for the operation of the CNN algorithm, and the RNN algorithm and data processing using the CNN algorithm.
  • a common source may be loaded at different addresses.
  • the control method of the device equipped with the FPGA computation accelerator further comprises; storing a first weight for the operation of the RNN algorithm and a second weight for the operation of the CNN algorithm, the first weight value and the second weight value
  • the two weight values may be stored in the non-volatile memory or a storage device distinct from the non-volatile memory.
  • the FPGA computation accelerator may be divided into a reconfigurable region in which the first hardware image or the second hardware image is selectively loaded, and a static region in which the common source is not changed after being uploaded once.
  • An apparatus equipped with an FPGA arithmetic accelerator includes a memory including a plurality of hardware images for operation of different deep learning algorithms, respectively; and a neural processing unit that processes data based on the selected hardware image and outputs a result when any one of the plurality of hardware images is selected, wherein the neural processing unit includes any one of the plurality of hardware images
  • the FPGA operation accelerator is configured to reconfigure a gate array according to the selected hardware image.
  • the different deep learning algorithms may include a CNN algorithm and an RNN algorithm.
  • the memory may further store different weight information used for different deep learning algorithm operations.
  • the memory may include a non-volatile memory for storing the plurality of hardware images and a volatile memory for storing the weight information.
  • All of the plurality of hardware images and the weight information may be stored in the non-volatile memory.
  • the FPGA computation accelerator can be divided into a dynamic region in which a selected hardware image among the plurality of hardware images can be selectively loaded, and a static region in which a common source commonly applicable to the execution of the plurality of different deep learning algorithms is loaded. have.
  • a computer program stored in a computer-readable medium comprising a plurality of instructions executed by one or more processors according to another embodiment of the present specification, each interface for the operation of each different deep learning algorithm, the each other a command to set the interface of the FPGA board constituting a common interface commonly applied to other deep learning algorithm operations; a command to store each hardware image for operation acceleration of the different deep learning algorithms in the non-volatile memory of the FPGA board; a command to reconfigure the gate array of the FPGA operation accelerator according to the selected hardware image when receiving a selection signal for selecting any one of the respective hardware images, wherein the FPGA operation accelerator includes each of the hardware images It may be divided into a reconfigurable region in which any one of them is selectively loaded, and a static region in which a common source commonly used for execution of each hardware image is not changed after being uploaded once.
  • CNN-RNN architecture conversion type AI computation accelerator board design method a first interface for the operation of the CNN algorithm, a second interface for the operation of the RNN algorithm, and the CNN algorithm and the RNN algorithm Interface setting step of the FPGA board constituting a third interface commonly applied to the operation; configuring a first architecture for accelerating the computation of the CNN algorithm and a second architecture for accelerating the computation of the RNN algorithm, respectively, and storing them in a flash memory of the FPGA board; receiving a selection signal for selecting either the first architecture or the second architecture; and loading the selected architecture into the FGPA computation accelerator.
  • One end of the first interface may be connected to a video device among external devices.
  • the imaging device may include at least one of a camera, a lidar (LiDAR), and a radar (RADAR).
  • a lidar LiDAR
  • RADAR radar
  • One end of the second interface may be connected to an audio device among external devices.
  • the audio device may include at least one of a microphone and a speaker.
  • the third interface is a common source used for driving the first architecture and the second architecture. One end is connected to the common source, and the other end is connected to the common architecture stored in the flash memory of the FPGA board.
  • the common source may include a communication module and a storage module.
  • the first architecture and the second architecture are mounted at different addresses, and the architecture selected according to the selection signal is placed and routed to the FGPA computation accelerator. can be set.
  • the FPGA board according to an embodiment of the present specification may have faster performance and higher power efficiency compared to a structure in which two different algorithms are simultaneously operated.
  • 1 and 2 are diagrams for explaining an interface of a deep learning algorithm conversion type calculation accelerator board according to an embodiment of the present specification.
  • FIG. 3 is a block diagram of a device equipped with an FPGA computation accelerator according to an embodiment of the present specification.
  • 4A to 4B are diagrams for explaining a design method of a CNN-RNN conversion type computation accelerator according to an embodiment of the present specification.
  • FIG. 5 is a flowchart of a control method of a device equipped with an FPGA arithmetic accelerator according to an embodiment of the present specification.
  • FIG. 6 is a view for explaining another example of the configuration of the FPGA calculation accelerator board according to an embodiment of the present specification.
  • the FPGA operation accelerator board may be mounted in various electronic devices.
  • the FPGA operation accelerator board may be designed to perform various functions in a semiconductor system.
  • the electronic device may analyze input data in real time based on the neural network to extract valid information, make a situation determination based on the extracted information, or control configurations of electronic devices mounted on the electronic device.
  • the electronic device includes a drone, a robot device such as an advanced driver assistance system (ADAS), a smart TV, a smart phone, a medical device, a mobile device, an image display device, a measurement device, and the IoT. It may be applied to one of computing devices that perform various functions, such as an (Internet of Things) device, and may be mounted on at least one of various types of electronic devices.
  • ADAS advanced driver assistance system
  • IPs include a processing unit, a plurality of cores included in the processing unit, a Multi-Format Codec (MFC), a video module (eg, a camera interface), a Joint Photographic (JPEG) Experts Group processor, video processor, or mixer, etc.), 3D graphics core, audio system, driver, display driver, volatile memory ( volatile memory, non-volatile memory, memory controller, input and output interface block, cache memory, and the like.
  • MFC Multi-Format Codec
  • video module eg, a camera interface
  • JPEG Joint Photographic Experts Group processor
  • video processor or mixer, etc.
  • 3D graphics core 3D graphics core
  • audio system driver
  • display driver volatile memory
  • volatile memory volatile memory, non-volatile memory, memory controller, input and output interface block, cache memory, and the like.
  • a connection method based on a system bus is mainly used.
  • an Advanced Microcontroller Bus Architecture (AMBA) protocol of Advanced RISC Machine (ARM) may be applied.
  • the bus type of the AMBA protocol may include Advanced High-Performance Bus (AHB), Advanced Peripheral Bus (APB), Advanced eXtensible Interface (AXI), AXI4, and AXI Coherency Extensions (ACE).
  • AXI is an interface protocol between IPs, and may provide a multiple outstanding address function and a data interleaving function.
  • other types of protocols such as uNetwork of SONICs Inc., CoreConnect of IBM, and Open Core Protocol of OCP-IP may be applied to the system bus.
  • the neural processing unit generates a neural network, trains or learns a neural network, performs an operation based on received input data, generates an information signal based on a result of performing an operation, or a neural network
  • the network can be re-trained. That is, the neural processing unit can perform complex operations required for deep learning or machine learning.
  • the neural processing unit may include an FPGA.
  • the FPGA may be designed to perform an additional operation among complex operations among various operations performed by the neural processing unit.
  • the programmable logic may reconfigure the gate array by loading a hardware image corresponding to the application, and may process additional operations required for the application according to the reconfigured gate array.
  • the addition operation may include a pre-processing operation and a post-operation required to perform a complex operation of the neural processing unit.
  • the neural processing unit may receive various types of application data from IPs through a system bus, and load a hardware image adaptive to the application into the FPGA based on this.
  • the neural processing unit performs complex operations related to neural network creation, training, or retraining, but in the case of additional operations required for the operation, the FPGA processes various operations independently without the support of an AP (application processor). .
  • AP application processor
  • 1 and 2 are diagrams for explaining an interface of a deep learning algorithm conversion type calculation accelerator board according to an embodiment of the present specification.
  • the FPGA board is a CNN architecture for performing a CNN algorithm, an RNN architecture for performing an RNN algorithm, a common architecture commonly applied to the CNN algorithm and performing the RNN algorithm It can be mounted on one FPAG board.
  • the fact that the CNN architecture and the RNN architecture are simultaneously mounted on one FPGA board only means that the two architectures are simultaneously stored in the non-volatile memory, and actually means that two deep learning algorithms are simultaneously executed on one FPGA. is not doing
  • the FPGA board may include input/output interfaces for performing different deep learning algorithms in order to selectively perform any one of the plurality of deep learning algorithms described above.
  • a CNN input pin that receives the data required to apply the CNN algorithm
  • a CNN output pin that outputs the result after performing the CNN algorithm
  • a CNN input pin that receives the data required to apply the RNN algorithm
  • It may include an RNN output pin, a common input pin for receiving resources commonly required for CNN and RNN algorithm execution, and a common output pin.
  • the FPGA interface 200 includes a CNN input/output pin 211 , and for application of a CNN algorithm specialized in image processing, the CNN input/output pin 211 is an interface 241 for an image of an external video device.
  • the external imaging device may include at least one of a camera, a camera, a lidar (LiDAR), and a radar (RADAR).
  • the FPGA interface 200 includes an RNN input/output pin 212, and for application of an RNN algorithm specialized for speech processing (speech recognition, speech synthesis, natural language processing, etc.), the RNN input/output pin 212 is an audio interface. (242) can be connected.
  • the audio interface may include a connection to an audio device including at least one of a microphone and a speaker.
  • the FPGA interface 200 may be connected to a module commonly applied to the implementation of the RNN and CNN algorithms.
  • it may be connected to the interface 220 for memory and the interface 230 for communication.
  • the memory interface 220 may include a USB, SD card, and the like, and the communication interface 230 may include an Ethernet communication interface and a PCIE communication interface.
  • pins to be independently connected to CNN and RNN algorithm are respectively connected, and in the case of a common interface, external input pins are connected as common pins to minimize the required external input pins.
  • a configurable logic block (CLB) and an input output block (IOB) and a connection circuit capable of configuring a connection between the two may be used as programmable logic.
  • FIG. 3 is a block diagram of a device equipped with an FPGA computation accelerator according to an embodiment of the present specification.
  • the FPGA board may include a flash memory 310 and an operation accelerator 320 .
  • the flash memory may store a plurality of deep learning architectures implementing a plurality of different deep learning algorithms.
  • the plurality of different deep learning architectures may include the CNN architecture 311 and the RNN architecture 315, but the scope of the present specification is not limited thereto, and may be applied to all deep learning algorithms having different computational structures. have.
  • the flash memory 310 further includes a common architecture 315 that can be commonly applied to the plurality of deep learning architectures.
  • the computation accelerator 320 implemented as an FPGA is loaded with any one selected from among a plurality of different deep learning architectures stored in the flash memory 310 and dynamically reconfigured as the selected architecture is loaded. to be able to perform specific actions.
  • the common architecture 315 stored in the flash memory 310 may be loaded into the arithmetic accelerator 320 implemented by the FPGA.
  • an input for selecting a specific architecture among a plurality of architectures stored in the flash memory may include a user input, but the present specification is not limited thereto.
  • the FPGA board may be applied to determine the type of application that requires calculation, and a specific architecture may be selected corresponding to the application.
  • the processor may control the CNN architecture to be loaded into the computation accelerator.
  • the processor may control the RNN architecture to be loaded into the arithmetic accelerator.
  • the computation accelerator 320 may be programmed and reconfigured according to the loaded architecture, and performs deep learning acceleration computation using the common architecture 322, and performs You can print the results.
  • FIGS. 4A to 4B are diagrams for explaining a design method of a CNN-RNN conversion type computation accelerator according to an embodiment of the present specification.
  • the FPGA board according to an embodiment of the present specification may include a processor capable of processing internal operations, or a processor that is separated from the FPGA board and controls the operation of the FPGA board as a whole.
  • FIG. 4A illustrates an example in which a CNN architecture is loaded into a computational accelerator and a CNN algorithm operation is performed.
  • the memory 410 may store data necessary for accelerating a deep learning algorithm operation, as shown in FIG. 4A .
  • the memory may include reconstruction information for storing information necessary for an operation for an artificial intelligence function.
  • the reconstruction information may include a hardware image for reconfiguring the FPGA.
  • CNN architecture, RNN architecture, common source, etc. may be stored in memory in the form of an FPGA image.
  • the memory 410 may be a non-volatile memory.
  • the reconstruction information for reconfiguring the FPGA may include weight information required for deep learning operation.
  • the weight information may include CNN weights and RNN weights.
  • the weight information may be stored in a volatile memory (DRAM).
  • DRAM volatile memory
  • FIG. 4A describes an example in which the FPGA image and weights are stored independently, the present specification is not limited thereto, and weight information may also be stored in association with the FPGA image.
  • application information, FPGA image, and weight information requiring deep learning operation may be stored in the form of a mapping table.
  • the FPGA operation accelerator 420 may include a dynamic region (eg, region 421) and a static region (eg, region 422).
  • the dynamic region 421 may be designed so that a specific operation is performed according to a hardware image loaded corresponding to a selection of a specific architecture or an application.
  • the dynamic region 4210 may be a programmable logic device (PLD) that is dynamically reconfigured through an FPGA hardware image and used to design a digital circuit to perform a specific operation.
  • PLD programmable logic device
  • the static region 422 may perform a specific operation without loading a hardware image.
  • the corresponding operation may be designed to be performed in the FPGA of the static area 422 .
  • a nonlinear function operation of an operation frequently performed in the deep learning algorithm operation may be designed to be performed in the static region 422 .
  • the nonlinear function operation may include a tangent hyperbolic (Tanh) function, a sigmoid function, a GeLU function, an exponential function, a logarithm function, and the like.
  • the processor determines that the FPGA computation accelerator 420 needs to be reconfigured and , activates the dynamic region 421 of the FPGA computation accelerator 420 .
  • the processor loads the CNN hardware image among the architectures stored in the memory into the dynamic region 421 .
  • the processor also loads the common source into the static region 422 of the FPGA computation accelerator 420 .
  • CNN weights may be added to the FPGA computation accelerator 420 .
  • the FPGA operation accelerator 420 is configured to reconfigure the FPGA according to the CNN hardware image loaded in the FPGA, calculate the data received through the CNN input interface of the FPGA board interface, and output the operation result.
  • the processor loads the FPGA image (RNN hardware image) from the memory into the dynamic region 423 of the FPGA operation accelerator 420 upon receiving the RNN selection signal.
  • the FPGA operation accelerator 420 reconfigures the FPGA according to the RNN hardware image loaded in the FPGA, calculates the data received through the RNN input interface of the FPGA board interface, and outputs the operation result. Meanwhile, according to an embodiment, an RNN weight may be added to the FPGA computation accelerator 420 .
  • the common architecture is already loaded, and even if the deep learning algorithm is changed from CNN to RNN, the common architecture pre-stored in the static area 422 is RNN algorithm operation acceleration operation. can be used in the same way.
  • FIG. 5 is a flowchart of a control method of a device equipped with an FPGA arithmetic accelerator according to an embodiment of the present specification.
  • the control method shown in FIG. 5 may be controlled by the processing operation of the FPGA board itself on which the FPGA operation accelerator is mounted, or may be controlled by a separate processor separate from the FPGA board.
  • a control method of a device equipped with an FPGA arithmetic accelerator in an embodiment of the present specification may be controlled by the above-described processor.
  • the processor may set the FPGA mode interface (S500).
  • the processor may perform an interface setting operation of the FPGA board constituting each interface for the operation of each different deep learning algorithm, and a common interface commonly applied to the operation of the different deep learning algorithm. It may include a first interface for the operation of the CNN algorithm and a second interface for the operation of the RNN algorithm.
  • the first interface may have one end connected to a video device among external devices, and may receive data from the video device.
  • the imaging device may include at least one of a camera, a lidar (LiDAR), and a radar (RADAR).
  • the second interface may have one end connected to an audio device among external devices, and may receive data from the audio device.
  • the audio device may include at least one of a microphone and a speaker.
  • the common interface is connected to a common source used for data processing using the different deep learning algorithms, and the common source may include a communication module and a storage module.
  • the processor may store hardware images respectively corresponding to a plurality of different deep learning algorithms in the memory (S510).
  • the memory may be a non-volatile memory implemented integrally with the FPGA board.
  • the plurality of different deep learning algorithms may be classified in consideration of the operation operation or FPGA resources required for the operation operation.
  • the step of storing in the non-volatile memory of the FPGA board is a first hardware image for the operation of the RNN algorithm, a second hardware image for the operation of the CNN algorithm, and the RNN algorithm and data processing using the CNN algorithm.
  • a common source may be loaded at different addresses.
  • a first weight for the operation of the RNN algorithm and a second weight for the operation of the CNN algorithm may be further stored in a memory, and the first weight value and the second weight value The value may be stored in the non-volatile memory or a storage device distinct from the non-volatile memory.
  • the processor may reconfigure the gate array of the FPGA operation accelerator according to the selected hardware image (S530).
  • FIG. 6 is a view for explaining another example of the configuration of the FPGA calculation accelerator board according to an embodiment of the present specification.
  • a memory for storing a plurality of different deep learning architectures and a configuration in which a specific deep learning architecture is selected from the memory and loaded into the FGPA computation accelerator has been described.
  • the FPGA operation accelerator may be included as a component of the neural processing 620 .
  • the neural processing unit (
  • a hardware image corresponding to the selected architecture is displayed in the dynamic region 630 of the FPGA operation accelerator 630 . is loaded, and the FPGA computation accelerator reconfigures the gate array according to the loaded hardware image.
  • the common architecture stored in the memory is loaded once into the static area 631 of the FPGA operation accelerator 630, even if a design change is made in the dynamic area 630, the common architecture is maintained in a fixed state for deep learning operation. can be utilized.
  • the present invention described above can be implemented as computer-readable codes on a medium in which a program is recorded.
  • the computer-readable medium includes all types of recording devices in which data readable by a computer system is stored. Examples of computer-readable media include Hard Disk Drive (HDD), Solid State Disk (SSD), Silicon Disk Drive (SDD), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc.
  • HDD Hard Disk Drive
  • SSD Solid State Disk
  • SDD Silicon Disk Drive
  • ROM Read Only Memory
  • RAM Compact Disk Drive
  • CD-ROM Compact Disk
  • magnetic tape floppy disk
  • optical data storage device etc.
  • carrier wave eg, transmission over the Internet
  • Embodiments disclosed herein relate to a deep learning computation accelerator, and in particular, to a CNN-RNN architecture switchable FPGA computation accelerator capable of selectively performing computations of CNNs and RNNs using FGPA.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

Disclosed is a method for controlling a device equipped with an FPGA computational accelerator. According to an embodiment of the present specification, an FPGA board interface configuring a common interface and respective interfaces for operations of different deep learning algorithms may be configured. Respective hardware images for accelerating computation of different deep learning algorithms may be stored in a memory. When one of the respective hardware images is selected, a gate array of the FPGA computational accelerator may be reconfigured according to the selected hardware image. Accordingly, it is possible to perform different deep learning algorithm computations having faster and higher power efficiency by using limited resources of the FPGA.

Description

CNN-RNN 아키텍처 전환형 연산 가속장치 설계 방법CNN-RNN Architecture Convertible Computational Accelerator Design Method
본 명세서는 CNN-RNN 아키텍처 전환형 연산 가속장치 설계 방법에 관한 것이다.This specification relates to a CNN-RNN architecture switchable computational accelerator design method.
FPGA란 내부의 프로그래밍 가능한 DSP, LUT, 메모리를 기반으로 설계자가 원하는 하드웨어 반도체 설계를 유동적으로 변환할 수 있는 장치로서, 다양한 반도체 설계에 응용되어 사용하는 장치이다.FPGA is a device that can flexibly convert a hardware semiconductor design desired by a designer based on internal programmable DSP, LUT, and memory. It is a device that is applied and used in various semiconductor designs.
또한, 최근 딥러닝 기술의 발전으로 인해 크게 CNN 알고리즘을 이용한 이미지 인식과 RNN 음성 인식 분야가 많은 연구 및 성과를 거두고 있다. 이러한 딥러닝 알고리즘의 특징은 많은 연산량을 필요로 하기 때문에 연산 장치로서 주로 GPU를 사용하고 있다. 그러나 가격, 성능, 전력 효율 등의 요인으로 인해 GPU를 대체하여 딥러닝 알고리즘 연산에 최적화된 NPU(Neural Processing Unit)가 개발되고 있다.In addition, due to the recent development of deep learning technology, image recognition using CNN algorithm and RNN speech recognition are receiving many research and achievements. Since these deep learning algorithms require a large amount of computation, GPUs are mainly used as computational devices. However, due to factors such as price, performance, and power efficiency, NPUs (Neural Processing Units) optimized for deep learning algorithm calculations are being developed to replace GPUs.
이러한 연산장치를 대체하여 FPGA의 하드웨어를 변경하여 딥러닝 연산 가속기로 사용 가능하다. 그러나, FPGA의 자원(DSP, LUT, 메모리 등)에 따라 고성능, 저전력의 연산가속기를 구현할 수 있는지 여부가 결정된다. 일반적으로 DSP, LUT, 메모리가 큰 FPGA의 경우 고성능 연산 가속기 아키텍쳐를 구현할 수 있지만, 가격이 비싼 단점이 있다. It can be used as a deep learning computation accelerator by changing the hardware of the FPGA by replacing these computational devices. However, depending on the resources (DSP, LUT, memory, etc.) of the FPGA, it is determined whether a high-performance, low-power arithmetic accelerator can be implemented. In general, DSPs, LUTs, and FPGAs with large memory can implement a high-performance computational accelerator architecture, but the disadvantage is that they are expensive.
FPGA의 자원을 효율적으로 사용하여 연산 가속기의 성능 및 전력 효율을 높이는 것으 매우 중요한 기술적 요인이지만, CNN과 RNN 알고리즘은 아키텍처의 구조가 많은 부분에서 상이하여 일반적으로 자원을 효율적으로 사용하여 구현하기 어렵다. 또한, 구현한다고 하더라도 CNN 또는 RNN 전용으로 구현한 아키텍쳐에 비해 많은 FPGA를 사용할 수밖에 없는 한계가 있다.It is a very important technical factor to efficiently use the resources of the FPGA to increase the performance and power efficiency of the computation accelerator, but the CNN and RNN algorithms differ in many parts of the architecture, so it is generally difficult to implement them using resources efficiently. In addition, even if implemented, there is a limit to using a lot of FPGAs compared to the architecture implemented exclusively for CNN or RNN.
본 명세서는 상술된 기술적 과제를 해결하기 위한 것으로서, 본 명세서에 의하면 CNN 알고리즘과 RNN 알고리즘은 독립적으로 사용되는 점에 착안하여 적은 자원의 FPGA로 CNN 알고리즘 또는 RNN 알고리즘을 효율적으로 구현할 수 있는 FPGA 보드 또는 FPGA 보드가 탑재된 장치가 제공된다.This specification is intended to solve the above-described technical problem, and according to the present specification, focusing on the point that the CNN algorithm and the RNN algorithm are used independently, the FPGA board or A device with an FPGA board is provided.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 발명의 상세한 설명으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved by the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned are clear to those of ordinary skill in the art to which the present invention belongs from the detailed description of the invention below. can be understood clearly.
본 명세서의 일 실시예에 따른 FPGA 연산 가속기를 탑재한 장치의 제어 방법은, 각각 서로 다른 딥러닝 알고리즘의 동작을 위한 각각의 인터페이스, 상기 서로 다른 딥러닝 알고리즘 동작에 공통으로 적용되는 공통 인터페이스를 구성하는 FPGA 보드의 인터페이스 설정단계; 상기 서로 다른 딥러닝 알고리즘의 연산 가속을 위한 각각의 하드웨어 이미지를 상기 FPGA 보드의 비휘발성 메모리에 저장하는 단계; 상기 각각의 하드웨어 이미지 중 어느 하나를 선택하는 선택 신호를 수신하는 단계; 및 선택된 하드웨어 이미지에 따라 FPGA 연산 가속기의 게이트 어레이를 재구성하는 단계;를 포함한다.The control method of a device equipped with an FPGA arithmetic accelerator according to an embodiment of the present specification constitutes each interface for the operation of each different deep learning algorithm, and a common interface commonly applied to the different deep learning algorithm operations. Interface setting step of the FPGA board; Storing each hardware image for the operation acceleration of the different deep learning algorithms in the non-volatile memory of the FPGA board; receiving a selection signal for selecting any one of the respective hardware images; and reconfiguring the gate array of the FPGA computation accelerator according to the selected hardware image.
상기 서로 다른 딥러닝 알고리즘은, CNN 알고리즘 및 RNN 알고리즘을 포함할 수 있다.The different deep learning algorithms may include a CNN algorithm and an RNN algorithm.
상기 각각의 인터페이스는, 상기 CNN 알고리즘의 동작을 위한 제1 인터페이스, 상기 RNN 알고리즘의 동작을 위한 제2 인터페이스를 포함할 수 있다.Each of the interfaces may include a first interface for the operation of the CNN algorithm and a second interface for the operation of the RNN algorithm.
상기 제1 인터페이스는, 일단이 외부 기기 중 영상 기기와 연결되고, 상기 영상 기기로부터 데이터를 수신할 수 있다. The first interface may have one end connected to a video device among external devices, and may receive data from the video device.
상기 영상 기기는, 카메라, 라이다(LiDAR) 또는 레이더(RADAR) 중 적어도 하나를 포함할 수 있다.The imaging device may include at least one of a camera, a lidar (LiDAR), and a radar (RADAR).
상기 제2 인터페이스는, 일단이 외부 기기 중 오디오 기기와 연결되고, 상기 오디오 기기로부터 데이터를 수신할 수 있다.The second interface may have one end connected to an audio device among external devices, and may receive data from the audio device.
상기 오디오 기기는, 마이크로폰 또는 스피커 중 적어도 하나를 포함할 수 있다.The audio device may include at least one of a microphone and a speaker.
상기 공통 인터페이스는, 상기 서로 다른 딥러닝 알고리즘을 이용한 데이터 프로세싱에 이용되는 공통 소스(common source)에 연결되고, 상기 공통 소스는, 통신 모듈, 저장 모듈을 포함할 수 있다. The common interface is connected to a common source used for data processing using the different deep learning algorithms, and the common source may include a communication module and a storage module.
상기 FPGA 보드의 비휘발성 메모리에 저장하는 단계는, 상기 RNN 알고리즘의 동작을 위한 제1 하드웨어 이미지, 상기 CNN 알고리즘의 동작을 위한 제2 하드웨어 이미지 및 상기 RNN 알고리즘 및 CNN 알고리즘을 이용한 데이터 프로세싱에 이용되는 공통소스가 각각 서로 다른 주소에 탑재될 수 있다.The step of storing in the non-volatile memory of the FPGA board is a first hardware image for the operation of the RNN algorithm, a second hardware image for the operation of the CNN algorithm, and the RNN algorithm and data processing using the CNN algorithm. A common source may be loaded at different addresses.
상기 FPGA 연산 가속기를 탑재한 장치의 제어 방법은 상기 RNN 알고리즘의 동작을 위한 제1 가중치, 상기 CNN 알고리즘의 동작을 위한 제2 가중치를 저장하는 단계;를 더 포함하고, 상기 제1 가중치값 및 제2 가중치값은 상기 비휘발성 메모리 또는 상기 비휘발성 메모리와 구분되는 저장장치에 저장될 수 있다.The control method of the device equipped with the FPGA computation accelerator further comprises; storing a first weight for the operation of the RNN algorithm and a second weight for the operation of the CNN algorithm, the first weight value and the second weight value The two weight values may be stored in the non-volatile memory or a storage device distinct from the non-volatile memory.
상기 FPGA 연산 가속기는 상기 제1 하드웨어 이미지 또는 제2 하드웨어 이미지가 선택적으로 로딩되는 동적 영역(reconfigurable region), 상기 공통 소스가 한번 업로드된 후 변경되지 않는 정적 영역으로 구분될 수 있다.The FPGA computation accelerator may be divided into a reconfigurable region in which the first hardware image or the second hardware image is selectively loaded, and a static region in which the common source is not changed after being uploaded once.
본 명세서의 다른 실시예에 따른 FPGA 연산 가속기를 탑재한 장치는, 각각 서로 다른 딥러닝 알고리즘의 동작을 위한 복수의 하드웨어 이미지를 포함하는 메모리; 및 상기 복수의 하드웨어 이미지 중 어느 하나가 선택되는 경우, 선택된 하드웨어 이미지에 기초하여 데이터를 처리하고 결과를 출력하는 뉴럴 프로세싱 유닛;을 포함하고, 상기 뉴럴 프로세싱 유닛은, 상기 복수의 하드웨어 이미지 중 어느 하나를 선택하기 위한 선택 신호를 수신한 경우, 상기 선택된 하드웨어 이미지가 로딩되고, 상기 선택된 하드웨어 이미지에 따라 게이트 어레이가 재구성되는 FPGA 연산 가속기를 포함할 수 있다.An apparatus equipped with an FPGA arithmetic accelerator according to another embodiment of the present specification includes a memory including a plurality of hardware images for operation of different deep learning algorithms, respectively; and a neural processing unit that processes data based on the selected hardware image and outputs a result when any one of the plurality of hardware images is selected, wherein the neural processing unit includes any one of the plurality of hardware images When a selection signal for selecting is received, the selected hardware image is loaded, and the FPGA operation accelerator is configured to reconfigure a gate array according to the selected hardware image.
상기 서로 다른 딥러닝 알고리즘은 CNN 알고리즘, RNN 알고리즘을 포함할 수 있다.The different deep learning algorithms may include a CNN algorithm and an RNN algorithm.
상기 메모리는 서로 다른 딥러닝 알고리즘 동작에 이용되는 서로 다른 가중치 정보를 더 저장할 수 있다.The memory may further store different weight information used for different deep learning algorithm operations.
상기 메모리는 상기 복수의 하드웨어 이미지를 저장하는 비휘발성 메모리와, 상기 가중치 정보를 저장하는 휘발성 메모리를 포함할 수 있다.The memory may include a non-volatile memory for storing the plurality of hardware images and a volatile memory for storing the weight information.
상기 복수의 하드웨어 이미지와 상기 가중치 정보는 모두 상기 비휘발성 메모리에 저장될 수도 있다.All of the plurality of hardware images and the weight information may be stored in the non-volatile memory.
상기 FPGA 연산 가속기는 상기 복수의 하드웨어 이미지 중 선택된 하드웨어 이미지가 선택적으로 로딩될 수 있는 동적 영역과, 상기 복수의 서로 다른 딥러닝 알고리즘의 실행에 공통 적용 가능한 공통 소스가 로딩되는 정적 영역으로 구분될 수 있다. The FPGA computation accelerator can be divided into a dynamic region in which a selected hardware image among the plurality of hardware images can be selectively loaded, and a static region in which a common source commonly applicable to the execution of the plurality of different deep learning algorithms is loaded. have.
본 명세서의 또 다른 실시예에 따른 하나 이상의 프로세서에 의해 실행되는 복수의 명령들을 포함하는, 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램은, 각각 서로 다른 딥러닝 알고리즘의 동작을 위한 각각의 인터페이스, 상기 서로 다른 딥러닝 알고리즘 동작에 공통으로 적용되는 공통 인터페이스를 구성하는 FPGA 보드의 인터페이스를 설정하도록 하는 명령; 상기 서로 다른 딥러닝 알고리즘의 연산 가속을 위한 각각의 하드웨어 이미지를 상기 FPGA 보드의 비휘발성 메모리에 저장하도록 하는 명령; 상기 각각의 하드웨어 이미지 중 어느 하나를 선택하는 선택 신호를 수신한 경우, 선택된 하드웨어 이미지에 따라 FPGA 연산 가속기의 게이트 어레이를 재구성하도록 하는 명령;을 포함하고, 상기 FPGA 연산 가속기는, 상기 각각의 하드웨어 이미지 중 어느 하나가 선택적으로 로딩되는 동적 영역(reconfigurable region), 상기 각각의 하드웨어 이미지의 실행에 공통적으로 이용되는 공통 소스가 한번 업로드된 후 변경되지 않는 정적 영역으로 구분될 수 있다.A computer program stored in a computer-readable medium comprising a plurality of instructions executed by one or more processors according to another embodiment of the present specification, each interface for the operation of each different deep learning algorithm, the each other a command to set the interface of the FPGA board constituting a common interface commonly applied to other deep learning algorithm operations; a command to store each hardware image for operation acceleration of the different deep learning algorithms in the non-volatile memory of the FPGA board; a command to reconfigure the gate array of the FPGA operation accelerator according to the selected hardware image when receiving a selection signal for selecting any one of the respective hardware images, wherein the FPGA operation accelerator includes each of the hardware images It may be divided into a reconfigurable region in which any one of them is selectively loaded, and a static region in which a common source commonly used for execution of each hardware image is not changed after being uploaded once.
본 명세서의 또 다른 실시예에 따른 CNN-RNN 아키텍처 전환형 AI 연산 가속보드 설계 방법은, CNN 알고리즘의 동작을 위한 제1 인터페이스, RNN 알고리즘의 동작을 위한 제2 인터페이스 및 상기 CNN 알고리즘 및 RNN 알고리즘의 동작에 공통으로 적용되는 제3 인터페이스를 구성하는 FPGA 보드의 인터페이스 설정단계; 상기 CNN 알고리즘 연산 가속을 위한 제1 아키텍처 및 RNN 알고리즘 연산 가속을 위한 제2 아키텍처를 각각 구성하여 상기 FPGA 보드의 플래쉬 메모리에 저장하는 단계; 상기 제1 아키텍처 또는 제2 아키텍처 중 어느 하나를 선택하는 선택 신호를 수신하는 단계; 및 선택된 아키텍처를 FGPA 연산 가속기에 로드하는 단계;를 포함한다.CNN-RNN architecture conversion type AI computation accelerator board design method according to another embodiment of the present specification, a first interface for the operation of the CNN algorithm, a second interface for the operation of the RNN algorithm, and the CNN algorithm and the RNN algorithm Interface setting step of the FPGA board constituting a third interface commonly applied to the operation; configuring a first architecture for accelerating the computation of the CNN algorithm and a second architecture for accelerating the computation of the RNN algorithm, respectively, and storing them in a flash memory of the FPGA board; receiving a selection signal for selecting either the first architecture or the second architecture; and loading the selected architecture into the FGPA computation accelerator.
상기 제1 인터페이스는, 일단이 외부 기기 중 영상 기기와 연결될 수 있다.One end of the first interface may be connected to a video device among external devices.
상기 영상 기기는, 카메라, 라이다(LiDAR) 또는 레이더(RADAR) 중 적어도 하나를 포함할 수 있다.The imaging device may include at least one of a camera, a lidar (LiDAR), and a radar (RADAR).
상기 제2 인터페이스는, 일단이 외부 기기 중 오디오 기기와 연결될 수 있다.One end of the second interface may be connected to an audio device among external devices.
상기 오디오 기기는, 마이크로폰 또는 스피커 중 적어도 하나를 포함할 수 있다.The audio device may include at least one of a microphone and a speaker.
상기 제3 인터페이스는, 상기 제1 아키텍처 및 제2 아키텍처의 구동에 이용되는 공통 소스(common source)로서, 일단이 상기 공통 소스에 연결되고, 타단이 상기 FPGA 보드의 플래쉬 메모리에 저장된 공통 아키텍처에 연결될 수 있다.The third interface is a common source used for driving the first architecture and the second architecture. One end is connected to the common source, and the other end is connected to the common architecture stored in the flash memory of the FPGA board. can
상기 공통 소스는, 통신 모듈, 저장 모듈을 포함할 수 있다.The common source may include a communication module and a storage module.
상기 FPGA 보드의 플래쉬 메모리에 저장하는 단계는, 상기 제1 아키텍처와 제2 아키텍처를 서로 다른 주소에 탑재하고, 상기 선택 신호에 따라 선택된 아키텍처를 상기 FGPA 연산 가속기에 배치 및 배선(place & route)되도록 설정할 수 있다.In the step of storing the FPGA board in the flash memory, the first architecture and the second architecture are mounted at different addresses, and the architecture selected according to the selection signal is placed and routed to the FGPA computation accelerator. can be set.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of other embodiments are included in the detailed description and drawings.
본 명세서의 일 실시예에 따르면 FPGA의 한정된 자원을 이용하여 딥러닝 알고리즘을 구현함에 있어서, 재구성 가능하게 다양한 딥러닝 애플리케이션에 대응할 수 있다.According to an embodiment of the present specification, in implementing a deep learning algorithm using the limited resources of the FPGA, it is possible to reconfigurely correspond to various deep learning applications.
또한 본 명세서의 일 실시예에 따른 FPGA 보드는 서로 다른 두 알고리즘을 동시에 동작하는 구조에 비해 더욱 빠른 성능 및 높은 전력 효율을 가질 수 있다.In addition, the FPGA board according to an embodiment of the present specification may have faster performance and higher power efficiency compared to a structure in which two different algorithms are simultaneously operated.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects that can be obtained in the present specification are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those of ordinary skill in the art to which the present invention belongs from the description below. .
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included as a part of the detailed description to help the understanding of the present specification, provide embodiments of the present specification, and together with the detailed description, explain the technical features of the present specification.
도 1 및 도 2는 본 명세서의 일 실시예에 따른 딥러닝 알고리즘 전환형 연산 가속보드의 인터페이스를 설명하기 위한 도면이다.1 and 2 are diagrams for explaining an interface of a deep learning algorithm conversion type calculation accelerator board according to an embodiment of the present specification.
도 3은 본 명세서의 일 실시예에 따른 FPGA 연산 가속기를 탑재한 장치의 블록도이다.3 is a block diagram of a device equipped with an FPGA computation accelerator according to an embodiment of the present specification.
도 4a 내지 도 4b는 본 명세서의 일 실시예에 따라 CNN-RNN 전환형 연산 가속기의 설계방법을 설명하기 위한 도면이다.4A to 4B are diagrams for explaining a design method of a CNN-RNN conversion type computation accelerator according to an embodiment of the present specification.
도 5는 본 명세서의 일 실시예에 따른 FPGA 연산 가속기를 탑재한 장치의 제어 방법의 흐름도이다.5 is a flowchart of a control method of a device equipped with an FPGA arithmetic accelerator according to an embodiment of the present specification.
도 6은 본 명세서의 일 실시예에 따른 FPGA 연산 가속보드 구성의 다른 예를 설명하기 위한 도면이다.6 is a view for explaining another example of the configuration of the FPGA calculation accelerator board according to an embodiment of the present specification.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included as a part of the detailed description to facilitate the understanding of the present invention, provide embodiments of the present invention, and together with the detailed description, explain the technical features of the present invention.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. Hereinafter, the embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but the same or similar components are assigned the same reference numbers regardless of reference numerals, and redundant description thereof will be omitted. The suffixes "module" and "part" for components used in the following description are given or mixed in consideration of only the ease of writing the specification, and do not have distinct meanings or roles by themselves. In addition, in describing the embodiments disclosed in the present specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in the present specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in the present specification, and the technical idea disclosed herein is not limited by the accompanying drawings, and all changes included in the spirit and scope of the present invention , should be understood to include equivalents or substitutes.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including an ordinal number such as 1st, 2nd, etc. may be used to describe various elements, but the elements are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When an element is referred to as being “connected” or “connected” to another element, it is understood that it may be directly connected or connected to the other element, but other elements may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.The singular expression includes the plural expression unless the context clearly dictates otherwise.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In the present application, terms such as “comprises” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.
본 명세서의 일 실시예에 따른 FPGA 연산 가속보드는 다양한 전자 장치에 탑재될 수 있다. 상기 FPGA 연산 가속보드는 반도체 시스템에서 다양한 기능을 수행하도록 설계될 수 있다. 또한 상기 전자 장치는 뉴럴 네트워크를 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나, 상기 전자 장치에 탑재되는 전자 디바이스의 구성들을 제어할 수 있다. 예시적으로, 상기 전자 장치는 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistances System: ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트폰, 의료 디바이스, 모바일 디바이스, 영상 표시 디바이스, 계측 디바이스, IoT(Internet of Things) 디바이스 등과 같은 다양한 영산 기능을 수행하는 컴퓨팅 장치들 중에 하나에 적용될 수 있으며, 그 외에도 다양한 종류의 전자 디바이스들 중 적어도 하나에 탑재될 수 있다.The FPGA operation accelerator board according to an embodiment of the present specification may be mounted in various electronic devices. The FPGA operation accelerator board may be designed to perform various functions in a semiconductor system. In addition, the electronic device may analyze input data in real time based on the neural network to extract valid information, make a situation determination based on the extracted information, or control configurations of electronic devices mounted on the electronic device. Illustratively, the electronic device includes a drone, a robot device such as an advanced driver assistance system (ADAS), a smart TV, a smart phone, a medical device, a mobile device, an image display device, a measurement device, and the IoT. It may be applied to one of computing devices that perform various functions, such as an (Internet of Things) device, and may be mounted on at least one of various types of electronic devices.
한편, 상기 전자 장치는 다양한 종류의 IP들을 포함할 수 있다. 예를 들어, IP들은 프로세싱 유닛(processing unit), 프로세싱 유닛에 포함된 복수의 코어들(cores), MFC(Multi-Format Codec), 비디오 모듈(예컨대, 카메라 인터페이스(camera interface), JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서(video processor), 또는 믹서(mixer) 등), 3D 그래픽 코어(graphic core), 오디오 시스템(audio system), 드라이버(driver), 디스플레이 드라이버(display driver), 휘발성 메모리(volatile memory), 비휘발성 메모리(non-volatile memory), 메모리 컨트롤러(memory controller), 입출력 인터페이스 블록(input and output interface block), 또는 캐시 메모리(cache memory) 등을 포함할 수 있다.Meanwhile, the electronic device may include various types of IPs. For example, IPs include a processing unit, a plurality of cores included in the processing unit, a Multi-Format Codec (MFC), a video module (eg, a camera interface), a Joint Photographic (JPEG) Experts Group processor, video processor, or mixer, etc.), 3D graphics core, audio system, driver, display driver, volatile memory ( volatile memory, non-volatile memory, memory controller, input and output interface block, cache memory, and the like.
IP들을 연결하기 위한 기술로는 시스템 버스(System Bus)를 기반으로 한 연결방식이 주를 이루고 있다. 예컨대, 표준 버스 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 전술한 버스 타입들 중 AXI는 IP들 사이의 인터페이스 프로토콜로서, 다중 아웃스탠딩 어드레스(multiple outstanding address) 기능과 데이터 인터리빙(data interleaving) 기능 등을 제공할 수 있다. 이 외에도, 소닉사(SONICs Inc.)의 uNetwork 나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 시스템 버스에 적용되어도 무방하다.As a technology for connecting IPs, a connection method based on a system bus is mainly used. For example, as a standard bus standard, an Advanced Microcontroller Bus Architecture (AMBA) protocol of Advanced RISC Machine (ARM) may be applied. The bus type of the AMBA protocol may include Advanced High-Performance Bus (AHB), Advanced Peripheral Bus (APB), Advanced eXtensible Interface (AXI), AXI4, and AXI Coherency Extensions (ACE). Among the above-described bus types, AXI is an interface protocol between IPs, and may provide a multiple outstanding address function and a data interleaving function. In addition to this, other types of protocols such as uNetwork of SONICs Inc., CoreConnect of IBM, and Open Core Protocol of OCP-IP may be applied to the system bus.
한편, 본 명세서의 일 실시예에 따른 뉴럴 프로세싱 유닛 내부의 일 구성으로 구현될 수도 있다. 상기 뉴럴 프로세싱 유닛은 뉴럴 네트워크를 생성하거나, 뉴럴 네트워크를 훈련(train) 또는 학습(learn)하거나, 수신되는 입력 데이터를 기초로 연산을 수행하고, 연산 수행 결과를 기초로 정보 신호를 생성하거나, 뉴럴 네트워크를 재훈렬(re-train)할 수 있다. 즉, 뉴럴 프로세싱 유닛은 딥 러닝 또는 기계학습에 필요한 복잡한 연산을 수행할 수 있다.On the other hand, it may be implemented as a configuration inside the neural processing unit according to an embodiment of the present specification. The neural processing unit generates a neural network, trains or learns a neural network, performs an operation based on received input data, generates an information signal based on a result of performing an operation, or a neural network The network can be re-trained. That is, the neural processing unit can perform complex operations required for deep learning or machine learning.
본 명세서의 일 실시예에 따르면 뉴럴 프로세싱 유닛은 FPGA를 포함할 수 잇다. 상기 FPGA는 뉴럴 프로세싱 유닛이 수행하는 다양한 연산 중 복잡한 연산 중 부가 연산이 수행되도록 설계될 수 있다. 프로그램 가능한 로직은 어플리케이션에 상응하는 하드웨어 이미지를 로딩하여 게이트 어레이를 재구성할 수 있고, 재구성된 게이트 어레이에 따라 해당 어플리케이션에 필요한 부가 연산을 처리할 수 있다. 여기서 부가 연산이라 함은 뉴럴 프로세싱 유닛의 복잡한 연산을 수행하는데 필요한 전처리 연산, 사후 연산 등을 포함할 수 있다.According to an embodiment of the present specification, the neural processing unit may include an FPGA. The FPGA may be designed to perform an additional operation among complex operations among various operations performed by the neural processing unit. The programmable logic may reconfigure the gate array by loading a hardware image corresponding to the application, and may process additional operations required for the application according to the reconfigured gate array. Here, the addition operation may include a pre-processing operation and a post-operation required to perform a complex operation of the neural processing unit.
뉴럴 프로세싱 유닛은 시스템 버스를 통해 IP들로부터 다양한 종류의 어플리케이션 데이터를 수신하고, 이에 기반하여 어플리케이션에 적응적인 하드웨어 이미지를 FPGA에 로딩할 수 있다. The neural processing unit may receive various types of application data from IPs through a system bus, and load a hardware image adaptive to the application into the FPGA based on this.
뉴럴 프로세싱 유닛은 뉴럴 네트워크 생성, 훈련 또는 재 훈련과 관련한 복잡한 연산을 수행하지만, 해당 연산에 필요한 부가 연산의 경우 FPGA에서 처리함으로써, 다양한 연산을 AP(어플리케이션 프로세서) 지원 없이 독자적으로 처리할 수 있게 된다.The neural processing unit performs complex operations related to neural network creation, training, or retraining, but in the case of additional operations required for the operation, the FPGA processes various operations independently without the support of an AP (application processor). .
도 1 및 도 2는 본 명세서의 일 실시예에 따른 딥러닝 알고리즘 전환형 연산 가속보드의 인터페이스를 설명하기 위한 도면이다.1 and 2 are diagrams for explaining an interface of a deep learning algorithm conversion type calculation accelerator board according to an embodiment of the present specification.
도 1을 참조하면, 본 명세서의 일 실시예에 따른 FPGA 보드는 CNN 알고리즘을 수행하기 위한 CNN 아키텍처와, RNN 알고리즘을 수행하기 위한 RNN 아키텍처, 상기 CNN 알고리즘 및 RNN 알고리즘 수행에 공통적으로 적용되는 공통 아키텍처라 하나의 FPAG 보드에 탑재될 수 있다. 그러나, CNN 아키텍처와 RNN 아키텍처가 하나의 FPGA 보드에 동시에 탑재되는 것은 비휘발성 메모리에 두 가지의 아키텍처가 동시에 저장되는 것을 의미할 뿐, 실제로 하나의 FPGA에서 두 가지 딥 러닝 알고리즘을 동시에 수행하는 것을 의미하는 것은 아니다. Referring to Figure 1, the FPGA board according to an embodiment of the present specification is a CNN architecture for performing a CNN algorithm, an RNN architecture for performing an RNN algorithm, a common architecture commonly applied to the CNN algorithm and performing the RNN algorithm It can be mounted on one FPAG board. However, the fact that the CNN architecture and the RNN architecture are simultaneously mounted on one FPGA board only means that the two architectures are simultaneously stored in the non-volatile memory, and actually means that two deep learning algorithms are simultaneously executed on one FPGA. is not doing
즉 본 명세서의 일 실시예에 따른 FPGA 보드는 상술한 복수의 딥러닝 알고리즘 중 어느 하나의 알고리즘이 선택적으로 수행되기 위해서, 서로 다른 딥러닝 알고리즘 수행을 위해 입출력 인터페이스를 각각 구비할 수 있다. 예를 들어, CNN 알고리즘 적용에 필요한 데이터를 수신하는 CNN 입력핀, CNN 알고리즘 수행 후 결과를 출력하는 CNN 출력핀, RNN 알고리즘 적용에 필요한 데이터를 수신하는 CNN 입력핀, CNN 알고리즘 수행 후 결과를 출력하는 RNN 출력핀, CNN 및 RNN 알고리즘 수행에 공통적으로 필요한 리소스를 수신하는 공통 입력핀, 공통 출력핀을 구비할 수 있다.That is, the FPGA board according to an embodiment of the present specification may include input/output interfaces for performing different deep learning algorithms in order to selectively perform any one of the plurality of deep learning algorithms described above. For example, a CNN input pin that receives the data required to apply the CNN algorithm, a CNN output pin that outputs the result after performing the CNN algorithm, a CNN input pin that receives the data required to apply the RNN algorithm, and outputs the result after performing the CNN algorithm It may include an RNN output pin, a common input pin for receiving resources commonly required for CNN and RNN algorithm execution, and a common output pin.
도 2를 참조하여, 본 명세서의 FPGA 보드 인터페이스를 보다 구체적으로 설명한다. 도 2를 참조하면, FPGA 인터페이스(200)는 CNN 입출력핀(211)을 포함하고, 영상 처리에 특화된 CNN 알고리즘의 적용을 위해, CNN 입출력핀(211)은 외부 영상 기기의 영상용 인터페이스(241)와 연결될 수 있다. 상기 외부 영상 기기는 카메라, 카메라, 라이다(LiDAR) 또는 레이더(RADAR) 중 적어도 하나를 포함할 수 있다. 2, the FPGA board interface of the present specification will be described in more detail. Referring to FIG. 2 , the FPGA interface 200 includes a CNN input/output pin 211 , and for application of a CNN algorithm specialized in image processing, the CNN input/output pin 211 is an interface 241 for an image of an external video device. can be connected with The external imaging device may include at least one of a camera, a camera, a lidar (LiDAR), and a radar (RADAR).
또한, FPGA 인터페이스(200)는 RNN 입출력핀(212)을 포함하고, 음성 처리(음성인식, 음성합성, 자연어 처리 등)에 특화된 RNN 알고리즘의 적용을 위해, RNN 입출력핀(212)은 오디오용 인터페이스(242)와 연결될 수 있다. 상기 오디오 인터페이스는, 마이크로폰 또는 스피커 중 적어도 하나를 포함하는 오디오 기기와의 연결을 포함할 수 있다.In addition, the FPGA interface 200 includes an RNN input/output pin 212, and for application of an RNN algorithm specialized for speech processing (speech recognition, speech synthesis, natural language processing, etc.), the RNN input/output pin 212 is an audio interface. (242) can be connected. The audio interface may include a connection to an audio device including at least one of a microphone and a speaker.
또한, FPGA 인터페이스(200)는 상기 RNN 및 CNN 알고리즘 구현에 공통적으로 적용되는 모듈과 연결될 수 있다. 예를 들어, 메모리용 인터페이스(220), 통신용 인터페이스(230)와 연결될 수 있다. 메모리용 인터페이스(220)의 경우 USB, SD 카드 등을 포함할 수 있고, 통신용 인터페이스(230)는 이더넷 통신 인터페이스, PCIE 통신 인터페이스를 포함할 수 있다.In addition, the FPGA interface 200 may be connected to a module commonly applied to the implementation of the RNN and CNN algorithms. For example, it may be connected to the interface 220 for memory and the interface 230 for communication. The memory interface 220 may include a USB, SD card, and the like, and the communication interface 230 may include an Ethernet communication interface and a PCIE communication interface.
상기 FPAG 인터페이스 설정 단계에서 CNN과 RNN 알고리즘에 각각 독립적으로 연결되어야 하는 핀을 각각 결선하고, 공통 인터페이스의 경우 외부 입력핀을 공통핀으로 결선하여 필요한 외부 입력 핀을 최소화할 수 있다.In the FPAG interface setting step, pins to be independently connected to CNN and RNN algorithm are respectively connected, and in the case of a common interface, external input pins are connected as common pins to minimize the required external input pins.
경우에 따라 FPGA 인터페이스를 구현하는 과정에서 프로그래머블 로직(Programmable Logic)으로서 CLB(Configurable Logic Block)과 IOB(Input Output Block) 및 둘 사이의 연결을 구성할 수 있는 연결회로가 이용될 수 있다.In some cases, in the process of implementing the FPGA interface, a configurable logic block (CLB) and an input output block (IOB) and a connection circuit capable of configuring a connection between the two may be used as programmable logic.
도 3은 본 명세서의 일 실시예에 따른 FPGA 연산 가속기를 탑재한 장치의 블록도이다.3 is a block diagram of a device equipped with an FPGA computation accelerator according to an embodiment of the present specification.
도 3을 참조하면, 본 명세서의 일 실시예에 따른 FPGA 보드는 플래시 메모리(310), 연산 가속기(Accelerator, 320)를 포함할 수 있다.Referring to FIG. 3 , the FPGA board according to an embodiment of the present specification may include a flash memory 310 and an operation accelerator 320 .
상기 플래시 메모리는 서로 다른 복수의 딥러닝 알고리즘을 구현하는 복수의 딥러닝 아키텍처가 저장될 수 있다. 예시적으로 상기 서로 다른 복수의 딥러닝 아키텍처는 CNN 아키텍처(311) 및 RNN 아키텍처(315)를 포함할 수 있지만, 본 명세서의 범위는 이에 한정되지 않고 연산 구조가 서로 다른 모든 딥러닝 알고리즘에 적용될 수 있다. 또한, 플래시 메모리(310)는 상기 복수의 딥러닝 아키텍처에 공통으로 적용될 수 있는 공통 아키텍처(315)를 더 포함한다.The flash memory may store a plurality of deep learning architectures implementing a plurality of different deep learning algorithms. Illustratively, the plurality of different deep learning architectures may include the CNN architecture 311 and the RNN architecture 315, but the scope of the present specification is not limited thereto, and may be applied to all deep learning algorithms having different computational structures. have. In addition, the flash memory 310 further includes a common architecture 315 that can be commonly applied to the plurality of deep learning architectures.
일 실시에에 따라, FPGA로 구현되는 연산 가속기(320)는 플래시 메모리(310)에 저장된 서로 다른 복수의 딥러닝 아키텍처 중 선택된 어느 하나의 아키텍처가 로딩되고, 상기 선택된 아키텍처가 로딩됨에 따라 동적으로 재구성되어 특정 동작을 수행할 수 있다. 또한, 상기 FPGA로 구현되는 연산 가속기(320)는 플래시 메모리(310)에 저장된 공통 아키텍처(315)가 로딩될 수 있다. According to an embodiment, the computation accelerator 320 implemented as an FPGA is loaded with any one selected from among a plurality of different deep learning architectures stored in the flash memory 310 and dynamically reconfigured as the selected architecture is loaded. to be able to perform specific actions. In addition, the common architecture 315 stored in the flash memory 310 may be loaded into the arithmetic accelerator 320 implemented by the FPGA.
한편, 플래시 메모리에 저장된 복수의 아키텍처 중 특정 아키텍처를 선택하는 입력(selection input)은 사용자 입력을 포함할 수 있지만, 본 명세서는 이에 한정되는 것은 아니다. 예를 들어, FPGA 보드를 적용하여 연산이 필요한 애플리케이션의 종류를 판단하고, 상기 애플리케이션에 상응하여 특정 아키텍처가 선택되도록 구현될 수도 있다. 예를 들어, CNN 입력핀을 통해 영상 데이터가 입력되는 경우, 프로세서는 CNN 아키텍처가 연산 가속기에 로딩되도록 제어할 수 있다. 또는 RNN 입력핀을 통해 오디오 데이터가 입력되는 경우 프로세서는 RNN 아키텍처가 연산가속기에 로딩되도록 제어할 수도 있다.Meanwhile, an input for selecting a specific architecture among a plurality of architectures stored in the flash memory may include a user input, but the present specification is not limited thereto. For example, the FPGA board may be applied to determine the type of application that requires calculation, and a specific architecture may be selected corresponding to the application. For example, when image data is input through a CNN input pin, the processor may control the CNN architecture to be loaded into the computation accelerator. Alternatively, when audio data is input through the RNN input pin, the processor may control the RNN architecture to be loaded into the arithmetic accelerator.
연산 가속기(320)에 특정 딥러닝 아키텍처가 로딩되는 경우, 연산 가속기(320)는 로딩된 아키텍처에 따라 프로그래밍 되어 재구성될 수 있으며, 공통 아키텍처(322)를 이용하여 딥러닝 가속 연산을 수행하고, 수행 결과를 출력할 수 있다.When a specific deep learning architecture is loaded into the computation accelerator 320, the computation accelerator 320 may be programmed and reconfigured according to the loaded architecture, and performs deep learning acceleration computation using the common architecture 322, and performs You can print the results.
도 4a 내지 도 4b는 본 명세서의 일 실시예에 따라 CNN-RNN 전환형 연산 가속기의 설계방법을 설명하기 위한 도면이다. 본 명세서의 일 실시예에 따른 FPGA 보드는 내부 동작을 처리할 수 있는 프로세서를 구비하거나, 상기 FPGA 보드와 분리되어 FPGA 보드의 동작을 전체적으로 제어하는 프로세서를 구비할 수도 있다.4A to 4B are diagrams for explaining a design method of a CNN-RNN conversion type computation accelerator according to an embodiment of the present specification. The FPGA board according to an embodiment of the present specification may include a processor capable of processing internal operations, or a processor that is separated from the FPGA board and controls the operation of the FPGA board as a whole.
도 4a는 CNN 아키텍처가 연산 가속기에 로딩되어 CNN 알고리즘 동작이 수행되는 예를 설명한다. 4A illustrates an example in which a CNN architecture is loaded into a computational accelerator and a CNN algorithm operation is performed.
메모리(410)는 도 4a에 도시된 바와 같이, 딥러닝 알고리즘 연산 가속을 위해 필요한 데이터들을 저장할 수 있다. 예를 들어, 메모리는 인공지능 기능을 위한 연산에 필요한 정보를 저장하는 재구성 정보들을 포함할 수 있다. 상기 재구성 정보들은 FPGA를 재구성하기 위한 하드웨어 이미지를 포함할 수 있다. 예를 들어, CNN 아키텍처, RNN 아키텍처, 공통 소스 등은 FPGA 이미지 형태로 메모리에 저장될 수 있다. 여기서 메모리(410)는 비휘발성 메모리일 수 있다.The memory 410 may store data necessary for accelerating a deep learning algorithm operation, as shown in FIG. 4A . For example, the memory may include reconstruction information for storing information necessary for an operation for an artificial intelligence function. The reconstruction information may include a hardware image for reconfiguring the FPGA. For example, CNN architecture, RNN architecture, common source, etc. may be stored in memory in the form of an FPGA image. Here, the memory 410 may be a non-volatile memory.
한편, 상기 FPGA를 재구성하기 위한 재구성 정보는 딥러닝 연산에 필요한 가중치 정보를 포함할 수 있다. 예를 들어, 상기 가중치 정보는 CNN 가중치, RNN 가중치를 포함할 수 있다. 상기 가중치 정보는 휘발성 메모리(DRAM)에 저장될 수 있다. 도 4a에 도시된 예는 FPGA 이미지와 가중치가 독립적으로 각각 저장되는 예를 설명하였으나, 본 명세서는 이에 한정되는 것은 아니며, FPGA 이미지와 연관하여 가중치 정보가 함께 저장될 수도 있다. 또한, 예를 들어, 본 명세서는 딥러닝 연산이 필요한 애플리케이션 정보, FPGA 이미지, 가중치 정보가 매핑 테이블 형태로 저장될 수 있다.Meanwhile, the reconstruction information for reconfiguring the FPGA may include weight information required for deep learning operation. For example, the weight information may include CNN weights and RNN weights. The weight information may be stored in a volatile memory (DRAM). Although the example shown in FIG. 4A describes an example in which the FPGA image and weights are stored independently, the present specification is not limited thereto, and weight information may also be stored in association with the FPGA image. Also, for example, in the present specification, application information, FPGA image, and weight information requiring deep learning operation may be stored in the form of a mapping table.
한편, 도 4a에서 FPGA 연산 가속기(420)는 동적 영역(예를 들어, 421 영역)과 정적 영역(예를 들어, 422 영역)을 포함할 수 있다. Meanwhile, in FIG. 4A , the FPGA operation accelerator 420 may include a dynamic region (eg, region 421) and a static region (eg, region 422).
동적 영역(421)은 특정 아키텍처의 선택 또는 애플리케이션에 상응하여 로딩되는 하드웨어 이미지에 따라 특정 동작이 수행되도록 설계될 수 있다. 상기 동적 영역(4210)은 FPGA 하드웨어 이미지를 통해 동적으로 재구성되어 특정 동작을 수행하기 위한 디지털 회로를 설계하는데 이용되는 PLD(Programmable Logic Device)일 수 있다.The dynamic region 421 may be designed so that a specific operation is performed according to a hardware image loaded corresponding to a selection of a specific architecture or an application. The dynamic region 4210 may be a programmable logic device (PLD) that is dynamically reconfigured through an FPGA hardware image and used to design a digital circuit to perform a specific operation.
정적 영역(422)는 하드웨어 이미지의 로딩 없이 특정 동작을 수행할 수 있다. 간단한 연산들 또는 딥러닝 알고리즘의 종류와 무관하게 디폴트로 수행되어야 하는 동작들의 경우 정적 영역(422)의 FPGA에서 해당 동작이 수행되도록 설계될 수 있다. 예를 들어, 딥러닝 알고리즘 연산에 자주 수행되는 동작의 비선형 함수 연산 등이 정적 영역(422)에서 수행되도록 설계될 수 있다. 비선형 함수연산은 탄젠트하이퍼볼릭(Tanh) 함수, 시그모이드(Sigmoid) 함수, 겔루(GeLU) 함수, 익스포넨셜(Exponential) 함수, 로그(Logarithm) 함수 등이 포함될 수 있다.The static region 422 may perform a specific operation without loading a hardware image. In the case of simple operations or operations to be performed by default regardless of the type of the deep learning algorithm, the corresponding operation may be designed to be performed in the FPGA of the static area 422 . For example, a nonlinear function operation of an operation frequently performed in the deep learning algorithm operation may be designed to be performed in the static region 422 . The nonlinear function operation may include a tangent hyperbolic (Tanh) function, a sigmoid function, a GeLU function, an exponential function, a logarithm function, and the like.
본 명세서의 일 실시에에 따르면, FPGA 연산 가속기(420)에 어떠한 아키텍처도 로딩되지 않은 상태에서, CNN 선택 신호가 입력되는 경우, 프로세서는 FPGA 연산 가속기(420)가 재구성될 필요가 있는 것으로 판단하고, FPGA 연산 가속기(420)의 동적 영역(421)를 활성화한다. 상기 프로세서는 동작 영역(421)이 활성화되면 메모리에 저장된 아키텍처 중 CNN 하드웨어 이미지를 상기 동적 영역(421)에 로딩한다. 또한, 프로세서는 공통 소스를 FPGA 연산 가속기(420)의 정적 영역(422)에 로딩한다. 한편, 일 실시예에 따라 CNN 가중치가 FPGA 연산 가속기(420)에 추가될 수 있다.According to one embodiment of the present specification, in the state that no architecture is loaded in the FPGA computation accelerator 420, when a CNN selection signal is input, the processor determines that the FPGA computation accelerator 420 needs to be reconfigured and , activates the dynamic region 421 of the FPGA computation accelerator 420 . When the operating region 421 is activated, the processor loads the CNN hardware image among the architectures stored in the memory into the dynamic region 421 . The processor also loads the common source into the static region 422 of the FPGA computation accelerator 420 . Meanwhile, according to an embodiment, CNN weights may be added to the FPGA computation accelerator 420 .
FPGA 연산 가속기(420)는 FPGA에 로딩된 CNN 하드웨어 이미지에 따라 FPGA는 재구성되고, FPGA 보드 인터페이스의 CNN 입력 인터페이스를 통해 수신된 데이터를 연산하고, 연산 결과를 출력한다. The FPGA operation accelerator 420 is configured to reconfigure the FPGA according to the CNN hardware image loaded in the FPGA, calculate the data received through the CNN input interface of the FPGA board interface, and output the operation result.
한편, 도 4b를 참조하면, 도 4a에서 FPGA 연산 가속기(420)가 CNN 아키텍처에 의해 FPGA 재구성된 상태에서, RNN 알고리즘의 수행이 필요한 경우 로딩된 아키텍처의 전환이 필요하다. Meanwhile, referring to FIG. 4B , in the state in which the FPGA operation accelerator 420 is reconfigured by the CNN architecture in FIG. 4A , when it is necessary to perform the RNN algorithm, it is necessary to switch the loaded architecture.
프로세서는 RNN 선택 신호를 수신한 경우 메모리로부터 FPGA 이미지(RNN 하드웨어 이미지)를 FPGA 연산가속기(420)의 동적 영역(423)에 로딩한다. FPGA 연산 가속기(420)는 FPGA에 로딩된 RNN 하드웨어 이미지에 따라 FPGA가 재구성되고, FPGA 보드 인터페이스의 RNN 입력 인터페이스를 통해 수신된 데이터를 연산하고, 연산 결과를 출력한다. 한편, 일 실시예에 따라 RNN 가중치가 FPGA 연산 가속기(420)에 추가될 수 있다.The processor loads the FPGA image (RNN hardware image) from the memory into the dynamic region 423 of the FPGA operation accelerator 420 upon receiving the RNN selection signal. The FPGA operation accelerator 420 reconfigures the FPGA according to the RNN hardware image loaded in the FPGA, calculates the data received through the RNN input interface of the FPGA board interface, and outputs the operation result. Meanwhile, according to an embodiment, an RNN weight may be added to the FPGA computation accelerator 420 .
다만, FPGA 연산 가속기(420)의 정적 영역(422)은 이미 공통 아키텍처가 로딩된 상태이며, 딥러닝 알고리즘이 CNN에서 RNN으로 변경되더라도 정적 영역(422)에 기 저장된 공통 아키텍처는 RNN 알고리즘 연산 가속 동작에 동일하게 이용될 수 있다.However, in the static area 422 of the FPGA operation accelerator 420, the common architecture is already loaded, and even if the deep learning algorithm is changed from CNN to RNN, the common architecture pre-stored in the static area 422 is RNN algorithm operation acceleration operation. can be used in the same way.
도 5는 본 명세서의 일 실시예에 따른 FPGA 연산 가속기를 탑재한 장치의 제어 방법의 흐름도이다. 도 5에 도시된 제어 방법은 FPGA 연산 가속기가 탑재된 FPGA 보드 자체의 프로세싱 동작에 의해 제어되거나, 상기 FPGA 보드와 구분되는 별도의 프로세서에 의해 제어될 수도 있다. 이하, 본 명세서의 일 실시예에 FPGA 연산 가속기를 탑재한 장치의 제어 방법은 전술한 프로세서에 제어될 수 있다.5 is a flowchart of a control method of a device equipped with an FPGA arithmetic accelerator according to an embodiment of the present specification. The control method shown in FIG. 5 may be controlled by the processing operation of the FPGA board itself on which the FPGA operation accelerator is mounted, or may be controlled by a separate processor separate from the FPGA board. Hereinafter, a control method of a device equipped with an FPGA arithmetic accelerator in an embodiment of the present specification may be controlled by the above-described processor.
프로세서는 FPGA 모드 인터페이스를 설정할 수 있다(S500).The processor may set the FPGA mode interface (S500).
보다 구체적으로, 프로세서는 각각 서로 다른 딥러닝 알고리즘의 동작을 위한 각각의 인터페이스, 상기 서로 다른 딥러닝 알고리즘 동작에 공통으로 적용되는 공통 인터페이스를 구성하는 FPGA 보드의 인터페이스 설정 동작을 수행할 수 있다. 상기 CNN 알고리즘의 동작을 위한 제1 인터페이스, 상기 RNN 알고리즘의 동작을 위한 제2 인터페이스를 포함할 수 있다. More specifically, the processor may perform an interface setting operation of the FPGA board constituting each interface for the operation of each different deep learning algorithm, and a common interface commonly applied to the operation of the different deep learning algorithm. It may include a first interface for the operation of the CNN algorithm and a second interface for the operation of the RNN algorithm.
상기 제1 인터페이스는, 일단이 외부 기기 중 영상 기기와 연결되고, 상기 영상 기기로부터 데이터를 수신할 수 있다. 상기 영상 기기는, 카메라, 라이다(LiDAR) 또는 레이더(RADAR) 중 적어도 하나를 포함할 수 있다. 상기 제2 인터페이스는, 일단이 외부 기기 중 오디오 기기와 연결되고, 상기 오디오 기기로부터 데이터를 수신할 수 있다. 상기 오디오 기기는, 마이크로폰 또는 스피커 중 적어도 하나를 포함할 수 있다.The first interface may have one end connected to a video device among external devices, and may receive data from the video device. The imaging device may include at least one of a camera, a lidar (LiDAR), and a radar (RADAR). The second interface may have one end connected to an audio device among external devices, and may receive data from the audio device. The audio device may include at least one of a microphone and a speaker.
상기 공통 인터페이스는, 상기 서로 다른 딥러닝 알고리즘을 이용한 데이터 프로세싱에 이용되는 공통 소스(common source)에 연결되고, 상기 공통 소스는, 통신 모듈, 저장 모듈을 포함할 수 있다.The common interface is connected to a common source used for data processing using the different deep learning algorithms, and the common source may include a communication module and a storage module.
프로세서는 서로 다른 복수의 딥러닝 알고리즘에 각각 대응되는 하드웨어 이미지를 메모리에 저장할 수 있다(S510). The processor may store hardware images respectively corresponding to a plurality of different deep learning algorithms in the memory (S510).
상기 메모리는 FPGA 보드와 일체로 구현된 비휘발성 메모리일 수 있다. 상기 서로 다른 복수의 딥러닝 알고리즘은 전술한 바와 같이, 연산 동작 또는 연산 동작에 소요되는 FPGA 자원 등을 고려하여 구분될 수 있다.The memory may be a non-volatile memory implemented integrally with the FPGA board. As described above, the plurality of different deep learning algorithms may be classified in consideration of the operation operation or FPGA resources required for the operation operation.
상기 FPGA 보드의 비휘발성 메모리에 저장하는 단계는, 상기 RNN 알고리즘의 동작을 위한 제1 하드웨어 이미지, 상기 CNN 알고리즘의 동작을 위한 제2 하드웨어 이미지 및 상기 RNN 알고리즘 및 CNN 알고리즘을 이용한 데이터 프로세싱에 이용되는 공통소스가 각각 서로 다른 주소에 탑재될 수 있다.The step of storing in the non-volatile memory of the FPGA board is a first hardware image for the operation of the RNN algorithm, a second hardware image for the operation of the CNN algorithm, and the RNN algorithm and data processing using the CNN algorithm. A common source may be loaded at different addresses.
한편, 본 명세서의 일 실시예에 의하면, 상기 RNN 알고리즘의 동작을 위한 제1 가중치, 상기 CNN 알고리즘의 동작을 위한 제2 가중치가 메모리에 더 저장될 수 있으며, 상기 제1 가중치값 및 제2 가중치값은 상기 비휘발성 메모리 또는 상기 비휘발성 메모리와 구분되는 저장장치에 저장될 수도 있다.Meanwhile, according to an embodiment of the present specification, a first weight for the operation of the RNN algorithm and a second weight for the operation of the CNN algorithm may be further stored in a memory, and the first weight value and the second weight value The value may be stored in the non-volatile memory or a storage device distinct from the non-volatile memory.
프로세서는 상기 각각의 하드웨어 이미지 중 어느 하나를 선택하는 선택 신호를 수신하는 경우(S520), 선택된 하드웨어 이미지에 따라 FPGA 연산 가속기의 게이트 어레이를 재구성할 수 있다(S530).When the processor receives a selection signal for selecting one of the respective hardware images (S520), the processor may reconfigure the gate array of the FPGA operation accelerator according to the selected hardware image (S530).
도 6은 본 명세서의 일 실시예에 따른 FPGA 연산 가속보드 구성의 다른 예를 설명하기 위한 도면이다.6 is a view for explaining another example of the configuration of the FPGA calculation accelerator board according to an embodiment of the present specification.
이상, 본 명세서의 일 실시예 따라 서로 다른 복수의 딥러닝 아키텍처를 저장하는 메모리와, 상기 메모리로부터 특정 딥러닝 아키텍처가 선택되어 FGPA 연산 가속기에 로딩되는 구성을 설명하였다. 그러나, 도 6에 도시된 바와 같이, 상기 FPGA 연산 가속기는 뉴럴 프로세싱(620)의 일 구성으로 포함되어 존재할 수도 있다. 상기 뉴럴 프로세싱 유닛(Above, according to an embodiment of the present specification, a memory for storing a plurality of different deep learning architectures and a configuration in which a specific deep learning architecture is selected from the memory and loaded into the FGPA computation accelerator has been described. However, as shown in FIG. 6 , the FPGA operation accelerator may be included as a component of the neural processing 620 . The neural processing unit (
상기 뉴럴 프로세싱 유닛(620), 서로 다른 복수의 딥러닝 아키텍처 중 어느 하나를 선택하기 위한 선택 신호를 수신한 경우, 상기 선택된 아키텍처에 대응되는 하드웨어 이미지가 FPGA 연산가속기(630)의 동적 영역(630)에 로딩되고, FPGA 연산 가속기는 로딩된 하드웨어 이미지에 따라 게이트 어레이가 재구성된다. 경우에 따라서 메모리에 저장된 공통 아케텍처는 FPGA 연산 가속기(630)의 정적 영역(631)에 한번 로딩된 이후에는 동적 영역(630)에 설계 변경이 이루어지더라도 고정된 상태를 유지하면서 딥러닝 연산에 활용될 수 있다.When receiving a selection signal for selecting any one of the neural processing unit 620 and a plurality of different deep learning architectures, a hardware image corresponding to the selected architecture is displayed in the dynamic region 630 of the FPGA operation accelerator 630 . is loaded, and the FPGA computation accelerator reconfigures the gate array according to the loaded hardware image. In some cases, after the common architecture stored in the memory is loaded once into the static area 631 of the FPGA operation accelerator 630, even if a design change is made in the dynamic area 630, the common architecture is maintained in a fixed state for deep learning operation. can be utilized.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The present invention described above can be implemented as computer-readable codes on a medium in which a program is recorded. The computer-readable medium includes all types of recording devices in which data readable by a computer system is stored. Examples of computer-readable media include Hard Disk Drive (HDD), Solid State Disk (SSD), Silicon Disk Drive (SDD), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. There is also a carrier wave (eg, transmission over the Internet) that is implemented in the form of. Accordingly, the above detailed description should not be construed as restrictive in all respects but as exemplary. The scope of the present invention should be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the present invention are included in the scope of the present invention.
본 명세서에서 개시되는 실시예들은 딥러닝 연산 가속기에 관한 것이며, 특히 FGPA를 이용하여 CNN과 RNN의 연산을 선택적으로 수행할 수 있는 CNN-RNN 아키텍처 전환형 FPGA 연산 가속 장치에 관한 것이다.Embodiments disclosed herein relate to a deep learning computation accelerator, and in particular, to a CNN-RNN architecture switchable FPGA computation accelerator capable of selectively performing computations of CNNs and RNNs using FGPA.

Claims (11)

  1. 각각 서로 다른 딥러닝 알고리즘의 동작을 위한 각각의 인터페이스, 상기 서로 다른 딥러닝 알고리즘 동작에 공통으로 적용되는 공통 인터페이스를 구성하는 FPGA 보드의 인터페이스 설정단계;Interface setting step of the FPGA board configuring each interface for the operation of each different deep learning algorithm, a common interface commonly applied to the operation of the different deep learning algorithm;
    상기 서로 다른 딥러닝 알고리즘의 연산 가속을 위한 각각의 하드웨어 이미지를 상기 FPGA 보드의 비휘발성 메모리에 저장하는 단계;Storing each hardware image for the operation acceleration of the different deep learning algorithms in the non-volatile memory of the FPGA board;
    상기 각각의 하드웨어 이미지 중 어느 하나를 선택하는 선택 신호를 수신하는 단계; 및receiving a selection signal for selecting any one of the respective hardware images; and
    선택된 하드웨어 이미지에 따라 FPGA 연산 가속기의 게이트 어레이를 재구성하는 단계;reconfiguring the gate array of the FPGA computation accelerator according to the selected hardware image;
    를 포함하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.Control method of a device equipped with an FPGA computation accelerator comprising a.
  2. 제 1 항에 있어서,The method of claim 1,
    상기 서로 다른 딥러닝 알고리즘은, CNN 알고리즘 및 RNN 알고리즘을 포함하는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.The different deep learning algorithms are a control method of a device equipped with an FPGA arithmetic accelerator, characterized in that it includes a CNN algorithm and an RNN algorithm.
  3. 제 2 항에 있어서,3. The method of claim 2,
    상기 각각의 인터페이스는, 상기 CNN 알고리즘의 동작을 위한 제1 인터페이스, 상기 RNN 알고리즘의 동작을 위한 제2 인터페이스를 포함하는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.Each of the interfaces includes a first interface for the operation of the CNN algorithm and a second interface for the operation of the RNN algorithm.
  4. 제 3 항에 있어서,4. The method of claim 3,
    상기 제1 인터페이스는, The first interface is
    일단이 외부 기기 중 영상 기기와 연결되고, 상기 영상 기기로부터 데이터를 수신하는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.A control method of a device equipped with an FPGA arithmetic accelerator, wherein one end is connected to an imaging device among external devices and receives data from the imaging device.
  5. 제 2 항에 있어서,3. The method of claim 2,
    상기 제2 인터페이스는,The second interface is
    일단이 외부 기기 중 오디오 기기와 연결되고, 상기 오디오 기기로부터 데이터를 수신하는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.One end is connected to an audio device among external devices, and the control method of a device equipped with an FPGA arithmetic accelerator, characterized in that receiving data from the audio device.
  6. 제 1 항에 있어서,The method of claim 1,
    상기 공통 인터페이스는,The common interface is
    상기 서로 다른 딥러닝 알고리즘을 이용한 데이터 프로세싱에 이용되는 공통 소스(common source)에 연결되고, It is connected to a common source used for data processing using the different deep learning algorithms,
    상기 공통 소스는, 통신 모듈, 저장 모듈을 포함하는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.The common source is a control method of a device equipped with an FPGA arithmetic accelerator, characterized in that it includes a communication module and a storage module.
  7. 제 2 항에 있어서,3. The method of claim 2,
    상기 FPGA 보드의 비휘발성 메모리에 저장하는 단계는,The step of storing in the non-volatile memory of the FPGA board,
    상기 RNN 알고리즘의 동작을 위한 제1 하드웨어 이미지, 상기 CNN 알고리즘의 동작을 위한 제2 하드웨어 이미지 및 상기 RNN 알고리즘 및 CNN 알고리즘을 이용한 데이터 프로세싱에 이용되는 공통소스가 각각 서로 다른 주소에 탑재되는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.A first hardware image for the operation of the RNN algorithm, a second hardware image for the operation of the CNN algorithm, and a common source used for data processing using the RNN algorithm and the CNN algorithm are loaded at different addresses, respectively. A control method of a device equipped with an FPGA computation accelerator.
  8. 제 7 항에 있어서,8. The method of claim 7,
    상기 RNN 알고리즘의 동작을 위한 제1 가중치, 상기 CNN 알고리즘의 동작을 위한 제2 가중치를 저장하는 단계;를 더 포함하고,Storing a first weight for the operation of the RNN algorithm and a second weight for the operation of the CNN algorithm; further comprising,
    상기 제1 가중치값 및 제2 가중치값은 상기 비휘발성 메모리 또는 상기 비휘발성 메모리와 구분되는 저장장치에 저장되는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.The first weight value and the second weight value are stored in the non-volatile memory or a storage device separate from the non-volatile memory.
  9. 제 7 항에 있어서,8. The method of claim 7,
    상기 FPGA 연산 가속기는The FPGA computation accelerator is
    상기 제1 하드웨어 이미지 또는 제2 하드웨어 이미지가 선택적으로 로딩되는 동적 영역(reconfigurable region), a reconfigurable region into which the first hardware image or the second hardware image is selectively loaded;
    상기 공통 소스가 한번 업로드된 후 변경되지 않는 정적 영역으로 구분되는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치의 제어 방법.The control method of a device equipped with an FPGA arithmetic accelerator, characterized in that the common source is divided into a static area that does not change after being uploaded once.
  10. 각각 서로 다른 딥러닝 알고리즘의 동작을 위한 복수의 하드웨어 이미지를 포함하는 메모리; 및a memory including a plurality of hardware images for each operation of a different deep learning algorithm; and
    상기 복수의 하드웨어 이미지 중 어느 하나가 선택되는 경우, 선택된 하드웨어 이미지에 기초하여 데이터를 처리하고 결과를 출력하는 뉴럴 프로세싱 유닛;을 포함하고, When any one of the plurality of hardware images is selected, a neural processing unit that processes data based on the selected hardware image and outputs a result;
    상기 뉴럴 프로세싱 유닛은,The neural processing unit,
    상기 복수의 하드웨어 이미지 중 어느 하나를 선택하기 위한 선택 신호를 수신한 경우, 상기 선택된 하드웨어 이미지가 로딩되고, 상기 선택된 하드웨어 이미지에 따라 게이트 어레이가 재구성되는 FPGA 연산 가속기를 포함하는 것을 특징으로 하는 FPGA 연산 가속기를 탑재한 장치.FPGA operation comprising an FPGA operation accelerator in which the selected hardware image is loaded and a gate array is reconfigured according to the selected hardware image when receiving a selection signal for selecting any one of the plurality of hardware images A device equipped with an accelerator.
  11. 하나 이상의 프로세서에 의해 실행되는 복수의 명령들을 포함하는, 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램으로서,A computer program stored on a computer-readable medium comprising a plurality of instructions executed by one or more processors, the computer program comprising:
    상기 컴퓨터 프로그램은,The computer program is
    각각 서로 다른 딥러닝 알고리즘의 동작을 위한 각각의 인터페이스, 상기 서로 다른 딥러닝 알고리즘 동작에 공통으로 적용되는 공통 인터페이스를 구성하는 FPGA 보드의 인터페이스를 설정하도록 하는 명령;A command to set each interface for the operation of each different deep learning algorithm, the interface of the FPGA board constituting a common interface commonly applied to the different deep learning algorithm operations;
    상기 서로 다른 딥러닝 알고리즘의 연산 가속을 위한 각각의 하드웨어 이미지를 상기 FPGA 보드의 비휘발성 메모리에 저장하도록 하는 명령;a command to store each hardware image for operation acceleration of the different deep learning algorithms in the non-volatile memory of the FPGA board;
    상기 각각의 하드웨어 이미지 중 어느 하나를 선택하는 선택 신호를 수신한 경우, 선택된 하드웨어 이미지에 따라 FPGA 연산 가속기의 게이트 어레이를 재구성하도록 하는 명령;을 포함하고,a command to reconfigure the gate array of the FPGA operation accelerator according to the selected hardware image when receiving a selection signal for selecting any one of the respective hardware images;
    상기 FPGA 연산 가속기는, 상기 각각의 하드웨어 이미지 중 어느 하나가 선택적으로 로딩되는 동적 영역(reconfigurable region), 상기 각각의 하드웨어 이미지의 실행에 공통적으로 이용되는 공통 소스가 한번 업로드된 후 변경되지 않는 정적 영역으로 구분되는 것을 특징으로 하는 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.The FPGA computation accelerator includes a reconfigurable region in which any one of the respective hardware images is selectively loaded, and a static region that does not change after a common source commonly used for execution of each hardware image is uploaded once. A computer program stored in a computer-readable medium, characterized in that it is separated into a.
PCT/KR2020/018462 2020-12-16 2020-12-16 Cnn-rnn architecture conversion type computational acceleration device design method WO2022131397A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/018462 WO2022131397A1 (en) 2020-12-16 2020-12-16 Cnn-rnn architecture conversion type computational acceleration device design method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/018462 WO2022131397A1 (en) 2020-12-16 2020-12-16 Cnn-rnn architecture conversion type computational acceleration device design method

Publications (1)

Publication Number Publication Date
WO2022131397A1 true WO2022131397A1 (en) 2022-06-23

Family

ID=82057638

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/018462 WO2022131397A1 (en) 2020-12-16 2020-12-16 Cnn-rnn architecture conversion type computational acceleration device design method

Country Status (1)

Country Link
WO (1) WO2022131397A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180075913A (en) * 2016-12-27 2018-07-05 삼성전자주식회사 A method for input processing using neural network calculator and an apparatus thereof
KR20190133555A (en) * 2018-05-23 2019-12-03 삼성전자주식회사 Storage device including reconfigurable logic and method of operating the storage device
US10642630B1 (en) * 2018-08-27 2020-05-05 Liquid Instruments Pty. Ltd. Process of programming field programmable gate arrays using partial reconfiguration
KR20200051199A (en) * 2018-11-05 2020-05-13 삼성전자주식회사 Storage device adaptively supporting plurality of protocols
KR20200053886A (en) * 2018-11-09 2020-05-19 삼성전자주식회사 Neural processing unit, neural processing system, and application system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180075913A (en) * 2016-12-27 2018-07-05 삼성전자주식회사 A method for input processing using neural network calculator and an apparatus thereof
KR20190133555A (en) * 2018-05-23 2019-12-03 삼성전자주식회사 Storage device including reconfigurable logic and method of operating the storage device
US10642630B1 (en) * 2018-08-27 2020-05-05 Liquid Instruments Pty. Ltd. Process of programming field programmable gate arrays using partial reconfiguration
KR20200051199A (en) * 2018-11-05 2020-05-13 삼성전자주식회사 Storage device adaptively supporting plurality of protocols
KR20200053886A (en) * 2018-11-09 2020-05-19 삼성전자주식회사 Neural processing unit, neural processing system, and application system

Similar Documents

Publication Publication Date Title
US20220121603A1 (en) Network-on-chip data processing method and device
WO2017150811A1 (en) Hardware architecture for acceleration of computer vision and imaging processing
WO2019235821A1 (en) Optimization technique for forming dnn capable of performing real-time inferences in mobile environment
US20240012788A1 (en) Systems and methods for implementing a machine perception and dense algorithm integrated circuit and enabling a flowing propagation of data within the integrated circuit
US20210200474A1 (en) Data processing method, apparatus, device, and system, storage medium, and program product
WO2023045160A1 (en) Data processing apparatus and data processing method
CN112347721A (en) System for realizing data processing acceleration based on FPGA and acceleration method thereof
WO2023128093A1 (en) User learning environment-based reinforcement learning apparatus and method in semiconductor design
BR112019027531A2 (en) high-performance processors
WO2022131397A1 (en) Cnn-rnn architecture conversion type computational acceleration device design method
US20210125042A1 (en) Heterogeneous deep learning accelerator
CN112035398A (en) System-level chip SoC and data processing method applicable to SoC
KR102253414B1 (en) Method for design accelerator of cnn-rnn architecture conversion type
US11947928B2 (en) Multi-die dot-product engine to provision large scale machine learning inference applications
WO2021020848A2 (en) Matrix operator and matrix operation method for artificial neural network
US11392514B2 (en) Data processing apparatus having multiple processors and multiple interfaces
WO2015080531A1 (en) Method and apparatus for controlling reconfigurable processor
US20210133543A1 (en) Neural processing unit and electronic apparatus including the same
US12001370B2 (en) Multi-node memory address space for PCIe devices
US20190066626A1 (en) Automatic multi-clock circuit generation
US20230214345A1 (en) Multi-node memory address space for pcie devices
WO2023101112A1 (en) Method for offline meta-reinforcement learning of multiple tasks and computing device for performing same
US8764874B2 (en) Arrangement, method, integrated circuit and device for routing requests
WO2021091149A1 (en) Electronic device and control method therefor
WO2023128357A1 (en) Software-based simulator for disaggregated architecture system, and method therefor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20966051

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 18.10.2023)