KR20210063762A - Method for abstraction architecture design to support heterogeneous neuromorphic architectures, recording medium and host device for performing the method - Google Patents
Method for abstraction architecture design to support heterogeneous neuromorphic architectures, recording medium and host device for performing the method Download PDFInfo
- Publication number
- KR20210063762A KR20210063762A KR1020190152268A KR20190152268A KR20210063762A KR 20210063762 A KR20210063762 A KR 20210063762A KR 1020190152268 A KR1020190152268 A KR 1020190152268A KR 20190152268 A KR20190152268 A KR 20190152268A KR 20210063762 A KR20210063762 A KR 20210063762A
- Authority
- KR
- South Korea
- Prior art keywords
- fpga
- neuromorphic architecture
- board
- file
- heterogeneous
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 45
- 238000013461 design Methods 0.000 title claims description 13
- 238000012549 training Methods 0.000 claims abstract description 11
- 238000004891 communication Methods 0.000 claims description 29
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims 1
- 238000011161 development Methods 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 description 9
- 210000002569 neuron Anatomy 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000012421 spiking Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 241000408659 Darpa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Stored Programmes (AREA)
Abstract
Description
본 발명은 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치에 관한 것으로서, 더욱 상세하게는 다양한 이기종 뉴로모픽 아키텍처를 추상화하여 다양한 IoT 환경의 응용 서비스에 필요한 인공지능 모델을 효율적으로 학습시키고 활용할 수 있도록 지원하는 기술에 관한 것이다.The present invention relates to a method for designing an abstract structure to support a heterogeneous neuromorphic architecture, a recording medium and a host device for performing the same, and more particularly, to an application service of various IoT environments by abstracting various heterogeneous neuromorphic architectures. It is about technology that supports the efficient training and utilization of necessary artificial intelligence models.
최근 주목을 받고 있는 인공지능, 특히 딥러닝 기술은 이미지 분류 및 해석, 스타크래프트 등의 게임 분야에서 인간의 능력에 필적하는 성능을 보여주고 있다. 하지만, 이는 많은 계산량을 필요로 하기 때문에 고가의 GPU(또는 이와 유사한 처리 장치, 예를 들어 구글의 TPU)를 여러 개 연결하여 사용하는 고사양 컴퓨팅 시스템을 요구한다. Artificial intelligence, particularly deep learning technology, which has recently been attracting attention, is showing performance comparable to human capabilities in image classification and interpretation, and games such as Starcraft. However, since this requires a large amount of computation, it requires a high-spec computing system using multiple expensive GPUs (or similar processing units, for example, Google's TPU) connected to each other.
따라서, 인공지능 기술을 IoT 디바이스나 웨어러블 기기 등의 소형 디바이스에서도 사용하기 위해서는 기존의 인공 신경망 기반의 기술로는 한계가 있다. Therefore, in order to use artificial intelligence technology in small devices such as IoT devices and wearable devices, there is a limit to existing artificial neural network-based technologies.
뉴로모픽 아키텍처는 차세대 인공지능 반도체로서 연산이나 전력 면에서 매우 우수한 반도체로 여겨지고 있다. IBM은 2008년 DARPA의 SyNAPSE 프로젝트를 기반으로 2014년 TrueNorth라는 뉴로모픽 칩 개발하였다. Neuromorphic architecture is a next-generation artificial intelligence semiconductor that is considered to be very excellent in terms of computation and power. IBM developed a neuromorphic chip called TrueNorth in 2014 based on DARPA's SyNAPSE project in 2008.
사람의 뇌 신경세포 구조와 기능을 모방한 TrueNorth는 256개의 뉴런을 갖는 코어를 4096개 연결한 형태로 기존 마이크로프로세서보다 10,000분의 1 수준의 초저전력 성능을 보여준다. 하지만, 2014년 발표 이후 개발 도구나 후속 연구 개발은 없다.TrueNorth, which imitates the structure and function of human brain neurons, is a form of connecting 4096 cores with 256 neurons, showing ultra-low power performance of 1/10,000th that of existing microprocessors. However, there are no development tools or follow-up research and development since the announcement in 2014.
인텔은 가장 최근에 발표된 LIF(Leaky Integrate-and-Fire) 뉴런을 지원하는 유일한 하드웨어인 Loihi를 발표하였다. 코어당 13만개의 뉴런을 구현하였으며, 칩 하나에 128개의 코어를 장착하여 총 1천6백만 개 정도의 뉴런과 130만개의 시냅스로 이루어져 있다. Intel announced Loihi, the only hardware to support its most recently announced Leaky Integrate-and-Fire (LIF) neurons. 130,000 neurons are implemented per core, and 128 cores are mounted on a single chip, so it consists of a total of 16 million neurons and 1.3 million synapses.
기존 하드웨어들은 LIF가 아니라 선형 모델 기반의 뉴런을 지원하는데, LIF가 훨씬 생물학적 뉴런에 가까운 모델이다. USB형태의 소형 프로토타입을 발표할 예정이며, 일부 한정된 연구팀에게만 하드웨어 공개되고 있다.Existing hardware supports neurons based on a linear model rather than LIF, and LIF is a model that is much closer to biological neurons. A small prototype in the form of a USB will be announced, and the hardware is being released only to a limited research team.
뉴로모픽 아키텍처 기반의 소프트웨어 개발 패키지인 워털루대학의 Nengo와 AppliedBrainResearch은 파이썬 언어를 사용한다. Nengo는 복잡한 스파이킹 및 비스파이킹 신경망의 시뮬레이션이 가능하다. Nengo and AppliedBrainResearch at the University of Waterloo, a software development package based on a neuromorphic architecture, use the Python language. Nengo is capable of simulating complex spiking and non-spiking neural networks.
또한, 확장 가능하고 유연하게 설계되어 있기 때문에 다양한 뉴런 타입 및 학습 규칙을 추가할 수 있으며 하드웨어로부터 바로 입력을 연결할 수 있어 다양한 응용에 활용될 수 있다. In addition, since it is designed to be scalable and flexible, various neuron types and learning rules can be added, and inputs can be connected directly from hardware, which can be utilized in various applications.
신경망 기술을 위해 NEF를 사용하고 있으며, 백앤드로 인텔의 Loihi, SpiNNaker, AppliedBrainResarch의 FPGA 보드 등을 지원한다. IBM의 TrueNorth와 마찬가지로 선형 모델 기반의 뉴런을 지원한다.It uses NEF for neural network technology, and supports Intel's Loihi, SpiNNaker, and AppliedBrainResarch's FPGA board as a backend. Like IBM's TrueNorth, it supports neurons based on linear models.
인공지능을 적용하기 위한 다량의 데이터를 학습할 수 있는 고성능 대용량 서버와 그 데이터를 처리할 수 있는 슈퍼컴퓨터가 필요하다. 하지만, 뉴로모픽 아키텍처 보드라는 인공지능 반도체를 활용하면 저전력 IoT 환경에서도 고성능 하드웨어의 지원 없이 학습을 수행할 수 있다.A high-performance, large-capacity server capable of learning large amounts of data for applying artificial intelligence and a supercomputer capable of processing the data are needed. However, if an artificial intelligence semiconductor called a neuromorphic architecture board is used, learning can be performed without the support of high-performance hardware even in a low-power IoT environment.
소형 디바이스에 인공지능을 적용하기 위한 다량의 데이터를 학습할 수 있는 기술로 뉴로모픽 아키텍처가 매우 적절한 기술로 평가되고 있다. 뉴로모픽 아키텍처를 활용한 소프트웨어 플랫폼 및 개발 환경 구축이 필수적인데, 아직까지 뉴로모픽 아키텍처 기반의 통합개발환경을 위한 표준화는 전무한 실정이다.Neuromorphic architecture is being evaluated as a very appropriate technology as a technology that can learn a large amount of data for applying artificial intelligence to small devices. It is essential to build a software platform and development environment using neuromorphic architecture, but there is still no standardization for an integrated development environment based on neuromorphic architecture.
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 소프트웨어의 개발 과정에서 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치를 제공하는 것이다.Accordingly, it is an object of the present invention to provide a host device for supporting a heterogeneous neuromorphic architecture in a software development process.
본 발명의 다른 목적은 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법을 제공하는 것이다.Another object of the present invention is to provide an abstract structure design method to support a heterogeneous neuromorphic architecture.
본 발명의 또 다른 목적은 상기 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.Another object of the present invention is to provide a recording medium in which a computer program for performing an abstract structure design method for supporting the heterogeneous neuromorphic architecture is recorded.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치는, FPGA 기반 뉴로모픽 아키텍처 보드와 이기종 IoT 환경에서 동작하기 위한 실행환경 설정파일(NAAL_config)을 분석하는 파일 분석기; 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 모델 프로그램의 실행 및 종료 명령어를 전달하고, 초기 설정 파일을 전송하는 명령어, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 대한 자원을 확인하는 명령어 및 경로 설정파일(NAAL_script)에 설정된 학습 모델 프로그램을 실행하는 명령어를 송신하는 명령어 처리기; 및 상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하고, 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 제1 스텝 처리기를 포함한다.A host device for supporting a heterogeneous neuromorphic architecture according to an embodiment for realizing the object of the present invention is an FPGA-based neuromorphic architecture board and an execution environment configuration file (NAAL_config) for operating in a heterogeneous IoT environment file analyzer to analyze; A command and a path setting file (NAAL_script) that transmits execution and termination commands of the learning model program to the FPGA-based neuromorphic architecture board, a command to transmit an initial setting file, and a resource for the FPGA-based neuromorphic architecture board ) a command processor for transmitting a command to execute the learning model program set in; and a first step processor that transmits data necessary for the execution of the learning model program to the FPGA-based neuromorphic architecture board, and receives the learned result at every step from the FPGA-based neuromorphic architecture board.
본 발명의 실시예에서, 상기 파일 분석기는 상기 설정파일(NAAL_config) 파일을 분석하여 학습을 수행할 FPGA 기반 뉴로모픽 아키텍처 보드의 정보와 학습 모델 구동 제어를 위해 호스트에 대한 정보를 추출하고, 상기 명령어 처리기는 모델 학습 구동에 필요한 데이터를 압축하고, 상기 설정파일(NAAL_config)의 학습 전처리 과정을 위한 임시 파일 경로(remote_tmp)에 설정된 경로로 SSH 통신을 이용하여 압축된 데이터 파일을 전송하고, 상기 명령어 처리기와 상기 제1 스텝 처리기를 동시에 사용하기 위해서 상기 FPGA 기반 뉴로모픽 아키텍처 보드로 TCP 및 UDP 통신의 연결을 요청하는 전처리 과정을 수행할 수 있다.In an embodiment of the present invention, the file analyzer analyzes the configuration file (NAAL_config) file to extract information about the FPGA-based neuromorphic architecture board to perform learning and information about the host to control the learning model driving, and The command processor compresses the data required to drive model learning, and transmits the compressed data file using SSH communication to the path set in the temporary file path (remote_tmp) for the pre-learning process of the configuration file (NAAL_config), and the command In order to use the processor and the first step processor at the same time, a preprocessing process for requesting connection of TCP and UDP communication to the FPGA-based neuromorphic architecture board may be performed.
본 발명의 실시예에서, 상기 제1 스텝 처리기는 UDP 통신을 이용하여 상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 송수신할 수 있다.In an embodiment of the present invention, the first step processor may transmit and receive data necessary for the execution of the learning model program by using UDP communication.
본 발명의 실시예에서, 상기 명령어 처리기는 SSH 통신의 SFTP(Secure File Transfer Protocol)를 통해 초기 설정 파일을 전송하는 명령어, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 대한 자원을 확인하는 명령어 및 경로 설정파일(NAAL_script)에 설정된 학습 모델 프로그램을 실행하는 명령어를 송신할 수 있다.In an embodiment of the present invention, the command processor is a command for transmitting an initial setting file through SFTP (Secure File Transfer Protocol) of SSH communication, a command and a path setting file to check a resource for the FPGA-based neuromorphic architecture board A command to execute the learning model program set in (NAAL_script) can be transmitted.
본 발명의 실시예에서, 상기 명령어 처리기는 상기 SSH 통신을 이용하여 전달되는 데이터 값들을 *.npz 파일로 압축하여 한 번에 전달할 수 있다.In an embodiment of the present invention, the command processor may compress data values transmitted using the SSH communication into a *.npz file and transmit them at once.
본 발명의 실시예에서, 상기 명령어 처리기는 TCP 통신을 이용하여 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 모델 프로그램의 실행 및 종료 명령어를 전달할 수 있다.In an embodiment of the present invention, the command processor may transmit the execution and termination commands of the learning model program to the FPGA-based neuromorphic architecture board using TCP communication.
본 발명의 실시예에서, 상기 설정파일(NAAL_config)은, 호스트의 IP(ip), 상기 FPGA 기반 뉴로모픽 아키텍처 보드에서 수행한 weight, bias, encoder 값을 전달 받을 경로(weight_path), 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 IP(ip), 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 SSH 포트(ssh_port), 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 SSH 아이디(ssh_user), 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 SSH 비밀번호(ssh_pwd), 상기 FPGA 기반 뉴로모픽 아키텍처 보드에서 모델 학습을 수행하는 파일(pes_network.py)의 경로 설정파일(NAAL_script), 학습 전처리 과정을 위한 임시 파일 경로(remote_tmp) 중 적어도 하나의 정보를 포함할 수 있다.In an embodiment of the present invention, the configuration file (NAAL_config) includes the host's IP (ip), the path to receive the weight, bias, and encoder values performed by the FPGA-based neuromorphic architecture board (weight_path), and the FPGA-based IP (ip) of the neuromorphic architecture board, the SSH port (ssh_port) of the FPGA-based neuromorphic architecture board, the SSH ID (ssh_user) of the FPGA-based neuromorphic architecture board, the FPGA-based neuromorphic architecture board At least one information of the SSH password (ssh_pwd), the path setting file (NAAL_script) of the file (pes_network.py) for performing model learning on the FPGA-based neuromorphic architecture board, and the temporary file path (remote_tmp) for the pre-learning process may include.
본 발명의 실시예에서, 상기 FPGA 기반 뉴로모픽 아키텍처 보드는 하나 이상의 보드를 포함할 수 있다.In an embodiment of the present invention, the FPGA-based neuromorphic architecture board may include one or more boards.
본 발명의 실시예에서, 상기 각 FPGA 기반 뉴로모픽 아키텍처 보드는, 모델 학습에 필요한 데이터를 압축한 *.npz 파일과 뉴로모픽 아키텍처 보드에서 수행해야 할 스크립트의 경로를 수신하여 레지스터 값을 설정하는 자원 관리기; 및 매 스텝마다 모델 학습의 결과 데이터를 상기 제1 스텝 처리기로 송신하는 제2 스텝 처리기를 포함할 수 있다.In an embodiment of the present invention, each FPGA-based neuromorphic architecture board receives the *.npz file that compresses the data required for model training and the path of the script to be executed on the neuromorphic architecture board, and sets the register value. resource manager; and a second step processor that transmits the result data of model learning to the first step processor at every step.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법은, FPGA 기반 뉴로모픽 아키텍처 보드와 이기종 IoT 환경에서 동작하기 위한 실행환경 설정파일(NAAL_config)을 분석하는 단계; 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 모델 프로그램의 실행 및 종료 명령어를 전달하는 단계; 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 초기 설정 파일을 전송하는 명령어, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 대한 자원을 확인하는 명령어 및 경로 설정파일(NAAL_script)에 설정된 학습 모델 프로그램을 실행하는 명령어를 송신하는 단계; 상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하는 단계; 및 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 단계;를 포함한다.The abstract structure design method for supporting a heterogeneous neuromorphic architecture according to an embodiment for realizing another object of the present invention is an FPGA-based neuromorphic architecture board and an execution environment setting file for operating in a heterogeneous IoT environment. analyzing (NAAL_config); transmitting execution and termination commands of the learning model program to the FPGA-based neuromorphic architecture board; Send a command to transmit an initial setting file to the FPGA-based neuromorphic architecture board, a command to check resources for the FPGA-based neuromorphic architecture board, and a command to execute the learning model program set in the path setting file (NAAL_script) to do; transmitting data necessary for the execution of the learning model program to the FPGA-based neuromorphic architecture board; and receiving the learned result at every step from the FPGA-based neuromorphic architecture board.
본 발명의 실시예에서, 상기 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법은, 학습 모델 실행을 위한 데이터 전처리 단계를 더 포함할 수 있다.In an embodiment of the present invention, the abstract structure design method for supporting the heterogeneous neuromorphic architecture may further include a data preprocessing step for executing a learning model.
본 발명의 실시예에서, 상기 학습 모델 실행을 위한 데이터 전처리 단계는, 상기 설정파일(NAAL_config) 파일을 분석하여 학습을 수행할 FPGA 기반 뉴로모픽 아키텍처 보드의 정보와 학습 모델 구동 제어를 위해 호스트에 대한 정보를 추출하는 단계; 상기 학습 모델 구동에 필요한 데이터를 압축하는 단계; 상기 설정파일(NAAL_config)의 학습 전처리 과정을 위한 임시 파일 경로(remote_tmp)에 설정된 경로로 SSH 통신을 이용하여 압축된 데이터 파일을 전송하는 단계; 및 상기 FPGA 기반 뉴로모픽 아키텍처 보드로 TCP 및 UDP 통신의 연결을 요청하는 단계;를 포함할 수 있다.In an embodiment of the present invention, the data pre-processing step for executing the learning model is performed by analyzing the configuration file (NAAL_config) file to analyze the information of the FPGA-based neuromorphic architecture board to perform learning and to the host to control the driving of the learning model. extracting information about; compressing data necessary for driving the learning model; transmitting a compressed data file using SSH communication to a path set in a temporary file path (remote_tmp) for a pre-learning process of the setting file (NAAL_config); and requesting connection of TCP and UDP communication to the FPGA-based neuromorphic architecture board.
본 발명의 실시예에서, 상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하는 단계 및 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 단계는, UDP 통신을 이용하여 상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 송수신할 수 있다.In an embodiment of the present invention, the steps of transmitting data necessary for the execution of the learning model program to the FPGA-based neuromorphic architecture board and receiving the learned result at every step from the FPGA-based neuromorphic architecture board may transmit/receive data necessary for the execution of the learning model program using UDP communication.
본 발명의 실시예에서, 상기 학습 모델 프로그램을 실행하는 명령어를 송신하는 단계는, SSH 통신의 SFTP(Secure File Transfer Protocol)를 통해 송신하는 데이터 값들을 *.npz파일로 압축하여 한 번에 송수신할 수 있다.In an embodiment of the present invention, the step of transmitting the command to execute the learning model program comprises compressing data values transmitted through SFTP (Secure File Transfer Protocol) of SSH communication into *.npz files to transmit and receive at a time. can
본 발명의 실시예에서, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 모델 프로그램의 실행 및 종료 명령어를 전달하는 단계는, TCP 통신을 이용하여 전달할 수 있다.In an embodiment of the present invention, the step of transmitting the execution and termination commands of the learning model program to the FPGA-based neuromorphic architecture board may be transmitted using TCP communication.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다. In a computer-readable storage medium according to an embodiment for realizing another object of the present invention, a computer program for performing an abstract structure design method for supporting a heterogeneous neuromorphic architecture is recorded.
이와 같은 이기종 뉴로모픽 아키텍처를 지원하기 위한 방법 및 호스트 장치에 따르면, 고성능 하드웨어의 지원 없이 크기가 작고 전력소비가 적은 뉴로모픽 칩셋을 사용하여 효율적인 학습이 가능하게 한다. 이는 사용자가 IoT 디바이스에서 학습하기 위해 기존의 서버를 통한 원격 실행을 하거나, 고성능 하드웨어를 연결해서 쓰지 않고도 크기가 작고 저전력인 IoT 환경을 만들 수 있어 자원 제약적인 환경에서도 학습이 가능하게 한다.According to the method and the host device for supporting such a heterogeneous neuromorphic architecture, efficient learning is possible using a neuromorphic chipset with a small size and low power consumption without support of high-performance hardware. This enables users to learn from an IoT device remotely through an existing server or create a small and low-power IoT environment without connecting and using high-performance hardware, enabling learning even in resource-constrained environments.
도 1은 본 발명의 일 실시예에 따른 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치를 포함하는 전체 이기종 IoT 환경 시스템의 블록도이다.
도 2는 본 발명에서 사용하는 실행환경 설정파일(NAAL_config)의 구성요소의 예를 보여주는 도표이다.
도 3은 본 발명에서 수행되는 모델 학습의 한 스텝(step)의 과정을 보여주는 도면이다.
도 4는 본 발명에서 수행되는 학습 모델 실행을 위한 데이터 전처리 과정을 보여주는 도면이다.
도 5는 본 발명에서 수행되는 전체적인 학습 구동 시나리오를 보여주는 도면이다.1 is a block diagram of an entire heterogeneous IoT environment system including a host device for supporting a heterogeneous neuromorphic architecture according to an embodiment of the present invention.
2 is a diagram showing an example of the components of the execution environment configuration file (NAAL_config) used in the present invention.
3 is a diagram showing a process of one step of model learning performed in the present invention.
4 is a diagram showing a data pre-processing process for executing a learning model performed in the present invention.
5 is a view showing an overall learning driving scenario performed in the present invention.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The detailed description of the present invention described below refers to the accompanying drawings, which illustrate specific embodiments in which the present invention may be practiced. These embodiments are described in detail sufficient to enable a person skilled in the art to practice the present invention. It should be understood that the various embodiments of the present invention are different from each other, but need not be mutually exclusive. For example, specific shapes, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the present invention in relation to one embodiment. In addition, it should be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description to be described below is not intended to be taken in a limiting sense, and the scope of the present invention, if appropriately described, is limited only by the appended claims, along with all ranges equivalent to those claimed by the claims. Like reference numerals in the drawings refer to the same or similar functions over several aspects.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다. Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the drawings.
도 1은 본 발명의 일 실시예에 따른 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치를 포함하는 전체 이기종 IoT 환경 시스템의 블록도이다. 도 2는 본 발명에서 사용하는 실행환경 설정파일(NAAL_config)의 구성요소의 예를 보여주는 도표이다.1 is a block diagram of an entire heterogeneous IoT environment system including a host device for supporting a heterogeneous neuromorphic architecture according to an embodiment of the present invention. 2 is a diagram showing an example of the components of the execution environment configuration file (NAAL_config) used in the present invention.
본 발명에 따른 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조(10)는 다양한 이기종 뉴로모픽 아키텍처를 추상화하여 다양한 IoT 환경의 응용 서비스에 필요한 인공지능 모델을 효율적으로 학습시키고 활용할 수 있도록 지원한다.The
본 발명에서는 이기종 뉴로모픽 아키텍처를 지원하는 추상화 구조(10)를 Neuromorphic Architecture Abstract Layer(NAAL)로 정의한다. NAAL은 뉴로모픽 아키텍처 실행환경으로 하드웨어적으로 NAAL_HOST(라즈베리파이, 로컬 PC 등)와 FPGA 기반 뉴로모픽 아키텍처 보드(PYNQ-Z1, DE1-SoC 등)로 구분된다.In the present invention, an
따라서, NAAL를 호스트에 해당되는 NAAL_HOST와 FPGA 기반 뉴로모픽 아키텍처 보드에 해당되는 NAAL_FPGA로 모듈을 나눠 설계하고 구현하였다. NAAL_HOST는 학습 모델 구동을 위해 필요한 데이터를 전송하고 학습 및 인식 결과를 전달 받는 것을 목표로 한다. NAAL_FPGA는 학습 모델을 구동하고 갱신된 학습 및 인식 결과를 전달하는 것을 목표로 한다.Therefore, NAAL was designed and implemented by dividing the module into NAAL_HOST corresponding to the host and NAAL_FPGA corresponding to the FPGA-based neuromorphic architecture board. NAAL_HOST aims to transmit the data required to drive the learning model and to receive the learning and recognition results. NAAL_FPGA aims to drive the learning model and deliver updated learning and recognition results.
도 1을 참조하면, 전체 이기종 IoT 환경 시스템(1)에서 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조(10)는 호스트 장치(100, NAAL_HOST 이하 호스트)와 한 개 이상의 FPGA 기반 뉴로모픽 아키텍처 보드(300, NAAL_FPGA 이하 보드)를 포함한다.Referring to FIG. 1 , an
본 발명에 따른 호스트(10)는 파일 분석기(110), 명령어 처리기(130) 및 제1 스텝 처리기(150)를 포함한다. 보드(300)는 각 모듈마다 자원 관리기(310, 350) 및 제2 스텝 처리기(330, 370)를 포함한다. The
본 발명의 상기 호스트(10)는 이기종 뉴로모픽 아키텍처를 지원하기 위한 소프트웨어(애플리케이션)가 설치되어 실행될 수 있으며, 상기 파일 분석기(110), 상기 명령어 처리기(130) 및 상기 제1 스텝 처리기(150)의 구성은 상기 호스트(10)에서 실행되는 상기 이기종 뉴로모픽 아키텍처를 지원을 수행하기 위한 소프트웨어에 의해 제어될 수 있다. In the
상기 호스트(10)는 별도의 단말이거나 또는 단말의 일부 모듈일 수 있다. 또한, 상기 파일 분석기(110), 상기 명령어 처리기(130) 및 상기 제1 스텝 처리기(150)의 구성은 통합 모듈로 형성되거나, 하나 이상의 모듈로 이루어 질 수 있다. 그러나, 이와 반대로 각 구성은 별도의 모듈로 이루어질 수도 있다.The
상기 호스트(10)는 이동성을 갖거나 고정될 수 있다. 상기 장치(10)는, 디바이스(device), 기구(apparatus), 단말(terminal), UE(user equipment), MS(mobile station), 무선기기(wireless device), 휴대기기(handheld device) 등 다른 용어로 불릴 수 있다. 예를 들어, 상기 호스트(10)는 로컬 PC일 수 있다. 또한, 상기 보드(300)는 서버 또는 엔진 등 다른 용어로 불릴 수 있다.The
상기 호스트(10) 및 상기 보드(300)는 운영체제(Operation System; OS), 즉 시스템을 기반으로 다양한 소프트웨어를 실행하거나 제작할 수 있다. 상기 운영체제는 소프트웨어가 장치의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로서, 안드로이드 OS, iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터 운영체제 및 윈도우 계열, 리눅스 계열, 유닉스 계열, MAC, AIX, HP-UX 등 컴퓨터 운영체제를 모두 포함할 수 있다.The
상기 호스트(10)는 호스트 디바이스에 해당하는 모듈이다. 상기 호스트(10)는 상기 보드(300)에서 학습 모델 구동을 위해 필요한 데이터들을 송수신하는 API를 설계하고 구현한다. The
상기 호스트(10)는 상기 보드(300)와의 데이터 송수신을 위해 총 3개의 통신을 사용한다. 먼저, TCP 통신을 사용하여 상기 보드(300)에 학습 모델 구동의 시작 및 종료 명령어를 전달한다. 학습 모델의 구동 여부를 전달하는 역할을 수행하기 때문에 상기 보드(300)가 서버 역할을 담당한다. The
두 번째로, 학습 모델 구동을 위해 필요한 데이터 값들을 SSH의 SFTP Secure File Transfer Protocol(SFTP)을 통해 전달한다. 여러 데이터 값들은 *.npz파일로 압축이 되어 한 번에 전달된다. Second, data values necessary for running the learning model are delivered through SSH's SFTP Secure File Transfer Protocol (SFTP). Multiple data values are compressed into *.npz files and delivered at once.
마지막으로, 학습 모델 구동을 시킨 후 인식 혹은 학습의 결과를 수신하기 위해 UDP 통신을 사용한다. 상기 보드(300)에서 학습의 매 스텝(step)마다 업데이트 된 결과를 전송한다. 상기 호스트(10)는 업데이트된 학습 및 인식의 결과를 전달받아 사용자에게 전달한다.Finally, after running the learning model, UDP communication is used to receive the result of recognition or learning. The
상기 파일 분석기(110)는 상기 보드(300)와 이기종 IoT 환경에서 동작하기 위한 실행환경 설정파일(NAAL_config)을 분석한다. NAAL 실행환경 설정을 위한 실행환경 설정파일(NAAL_config)의 구성요소에 대해 도 2에 도시하였다.The
도 2를 참조하면, 호스트의 키 값으로, [host]의 IP(ip), 상기 보드(300)에서 수행한 weight, bias, encoder 값을 전달 받을 경로(weight_path)를 포함한다. Referring to FIG. 2 , as the key value of the host, the IP (ip) of [host] and the path (weight_path) to receive the weight, bias, and encoder values performed by the
또한, [pynq] or [de1]의 키 값으로, 상기 보드(300)의 IP(ip), 상기 보드(300)의 SSH 포트(ssh_port), 상기 보드(300)의 SSH 아이디(ssh_user), 상기 보드(300)의 SSH 비밀번호(ssh_pwd), 상기 보드(300)에서 모델 학습을 수행하는 파일(pes_network.py)의 경로 설정파일(NAAL_script), 학습 전처리 과정을 위한 임시 파일 경로(remote_tmp)를 포함한다.In addition, as a key value of [pynq] or [de1], the IP (ip) of the
상기 명령어 처리기(130)는 UDP 통신을 이용하여 모델 학습을 위해 필요한 데이터를 송수신한다. 여기서, 스텝(step)이란 모델 학습을 수행할 데이터가 상기 보드(300)에 전달되면 상기 보드(300)에 설정된 Rectified Linear Unit(LeRu) 모델의 스파이킹 버전인 Spiking LeRU 모델을 통해 학습이 진행된 데이터를 상기 호스트(10)에 전달하는 과정을 의미한다. The
입력 데이터는 사용자가 지정한 일정 시간동안 반복적으로 스텝을 수행하여 학습이 진행된다. 도 3은 상기 호스트(10)의 제1 스텝 처리기(150)와 상기 보드(300)의 제2 스텝 처리기(330)의 동작 과정을 나타낸다.The input data is learned by repeatedly performing steps for a predetermined time specified by the user. FIG. 3 shows an operation process of the
도 3을 참조하면, 상기 호스트(10)의 제1 스텝 처리기(150)에서 학습 모델 실행을 위한 데이터를 전달하면(S11), 상기 보드(300)의 제2 스텝 처리기(330)는 학습을 진행하고, 학습이 완료되면 Spiking LeRU의 학습 결과 데이터를 상기 호스트(10)에 반환한다(S12).Referring to FIG. 3 , when the
상기 S11와 S12이 한 스텝이고, 지정된 시간동안 스텝을 반복적으로 수행하여 학습한다.The steps S11 and S12 are one step, and the steps are repeatedly performed for a specified time to learn.
상기 보드(300)는 PGA 기반 뉴로모픽 아키텍처 보드에 해당하는 모듈이다. 예를 들어, PYNQ-Z1와 DE1-SoC 보드가 FPGA 기반 뉴로모픽 아키텍처 보드에 해당된다. 상기 보드(300)는 자원 관리기(310) 및 제2 스텝 처리기(330)를 포함한다. 상기 보드(300)는 다수개로 형성될 수 있다.The
상기 보드(300)는 상기 호스트(10)로부터 모델 학습에 필요한 데이터를 압축한 *.npz 파일과 상기 보드(300)에서 수행해야 할 스크립트의 경로를 수신 받아 뉴로모픽 아키텍처 보드의 레지스터 값을 설정한다. The
상기 자원 관리기(310)는 상기 호스트(10)로부터 전송 받은 *.npz 파일의 데이터 값을 활용하여 모델 학습을 실행 전의 레지스터 값과 학습 모델 관련 데이터를 초기화 한다. 또한, 상기 보드(300)의 모델 학습이 종료되면 모델 학습에 사용되었던 자원을 반환하며, 다음 학습에 사용에 필요 없는 레지스터 값과 *.npz 파일과 같은 자원을 삭제한다.The
상기 제2 스텝 처리기(330)는 매 스텝마다 모델 학습의 결과 데이터를 상기 호스트(10)의 제1 스텝 처리기(150)로 송신한다.The
도 4는 본 발명에서 수행되는 학습 모델 실행을 위한 데이터 전처리 과정을 보여주는 도면이다.4 is a diagram showing a data pre-processing process for executing a learning model performed in the present invention.
도 4를 참조하면, 상기 호스트(10)의 파일 분석기(110)는 외부 프로그램에서 NAAL_config 파일의 구성요소를 설정하고 초기 모델 학습을 위한 데이터를 전송하면(S21), NAAL_config 파일을 분석하여 학습을 수행할 상기 보드(300)의 정보와 학습 모델을 구동 제어를 위해 호스트에 대한 정보를 추출한다. 4, when the
또한, 상기 호스트(10)는 모델 학습 구동에 필요한 데이터를 *.npz 파일로 압축하고, NAAL_config 파일의 remote_tmp에 설정된 경로에 SSH 통신으로 NAAL_FPGA에 *.npz 파일을 전송한다(S22). 이후, 상기 보드(300)는 NAAL_config 파일의 NAAL_script에 설정된 파일을 실행한다. In addition, the
상기 호스트(10)는 상기 명령어 처리기(130) 및 상기 제1 스텝 처리기(150)를 동시에 사용하기 위해서 상기 보드(300)로 TCP 및 UDP 통신의 연결을 요청한다. 상기 보드(300)는 수신한 *.npz 파일을 기반으로 모델 학습을 위해 사용될 정보들을 저장하고 상기 호스트(10)와 통신하게 된다.The
도 5는 본 발명에서 수행되는 전체적인 학습 구동 시나리오를 보여주는 도면이다.5 is a diagram showing an overall learning driving scenario performed in the present invention.
도 5를 참조하면, 전처리 과정 이후, TCP 및 UDP 통신이 연결되면, 외부 프로그램이 NAAL_FPGA에서의 학습 모델 실행 명령어를 전송한다(S31). 상기 호스트(10)의 명령어 처리기(130)가 학습 모델 프로그램의 실행 명령어를 상기 보드(300)에 전달하고(S32), 상기 호스트(10)의 제1 스텝 처리기(150)가 외부 프로그램으로부터 받은 학습 데이터를 상기 보드(300)에 전송한다(S33). Referring to FIG. 5 , when TCP and UDP communication are connected after the preprocessing process, an external program transmits a learning model execution command in NAAL_FPGA ( S31 ). The
상기 보드(300)의 자원 관리기(310)는 상기 호스트(10)로부터 전송 받은 *.npz 파일의 데이터 값을 활용하여 모델 학습을 실행 전의 레지스터 값과 학습 모델 관련 데이터를 초기화 한다. The
상기 제2 스텝 처리기(330)는 전달받은 데이터를 LeRu모델의 스파이킹 버전인 Spiking LeRU 모델에 적용하여 인식 및 학습을 수행한다. 상기 제2 스텝 처리기(330)에서 학습의 결과 데이터를 상기 호스트(10)의 제1 스텝 처리기(150)에 전송하면 한 스텝이 처리된다. 이 과정을 반복하면서 PES 학습이 진행된다.The
본 발명에 따른, NAAL은 고성능 하드웨어의 지원 없이 크기가 작고 전력소비가 적은 뉴로모픽 칩셋을 사용하여 효율적인 학습이 가능하게 한다. 이는 사용자가 IoT 디바이스에서 학습하기 위해 기존의 서버를 통한 원격 실행을 하거나, 고성능 하드웨어를 연결해서 쓰지 않고도 크기가 작고 저전력인 IoT 환경을 만들 수 있어 자원 제약적인 환경에서도 학습이 가능하게 한다.According to the present invention, NAAL enables efficient learning by using a neuromorphic chipset with a small size and low power consumption without support of high-performance hardware. This enables users to learn from an IoT device remotely through an existing server or create a small and low-power IoT environment without connecting and using high-performance hardware, enabling learning even in resource-constrained environments.
이와 같은, 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. As such, the abstract structure design method for supporting the heterogeneous neuromorphic architecture may be implemented as an application or implemented in the form of program instructions that may be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, and the like alone or in combination.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. The program instructions recorded in the computer-readable recording medium may be specially designed and constructed for the present invention, and may be known and usable to those skilled in the computer software field.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magnetic-optical media such as floptical disks. media), and a hardware device specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the processing according to the present invention, and vice versa.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to the embodiments, it is understood that those skilled in the art can variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You can understand.
본 발명은 다양한 이기종 뉴로모픽 아키텍처를 추상화하여 다양한 IoT 환경의 응용 서비스에 필요한 인공지능 모델을 효율적으로 학습시키고 활용할 수 있도록 지원할 수 있다.The present invention can support to efficiently learn and utilize artificial intelligence models required for application services in various IoT environments by abstracting various heterogeneous neuromorphic architectures.
1: 이기종 IoT 환경 시스템
10: 이기종 뉴로모픽 아키텍처를 지원하는 추상화 구조
100: 호스트 장치
110: 파일 분석기
130: 명령어 처리기
150: 제1 스텝 처리기
300: FPGA 기반 뉴로모픽 아키텍처 보드
310, 350: 자원 관리기
330, 370: 제2 스텝 처리기1: Heterogeneous IoT environment system
10: Abstraction structures that support heterogeneous neuromorphic architectures
100: host device
110: file analyzer
130: command handler
150: first step processor
300: FPGA-based Neuromorphic Architecture Board
310, 350: resource manager
330, 370: second step processor
Claims (15)
상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 모델 프로그램의 실행 및 종료 명령어를 전달하고, 초기 설정 파일을 전송하는 명령어, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 대한 자원을 확인하는 명령어 및 경로 설정파일(NAAL_script)에 설정된 학습 모델 프로그램을 실행하는 명령어를 송신하는 명령어 처리기; 및
상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하고, 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 제1 스텝 처리기;를 포함하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
a file analyzer that analyzes the execution environment configuration file (NAAL_config) for operating in the FPGA-based neuromorphic architecture board and heterogeneous IoT environment;
A command and a path setting file (NAAL_script) for transferring the execution and termination commands of the learning model program to the FPGA-based neuromorphic architecture board, sending an initial setting file, and checking resources for the FPGA-based neuromorphic architecture board ) a command processor for transmitting a command to execute the learning model program set in; and
A first step processor that transmits the data necessary for the execution of the learning model program to the FPGA-based neuromorphic architecture board, and receives the learned result at every step from the FPGA-based neuromorphic architecture board. Host devices to support heterogeneous neuromorphic architectures.
상기 파일 분석기는 상기 설정파일(NAAL_config) 파일을 분석하여 학습을 수행할 FPGA 기반 뉴로모픽 아키텍처 보드의 정보와 학습 모델 구동 제어를 위해 호스트에 대한 정보를 추출하고,
상기 명령어 처리기는 모델 학습 구동에 필요한 데이터를 압축하고, 상기 설정파일(NAAL_config)의 학습 전처리 과정을 위한 임시 파일 경로(remote_tmp)에 설정된 경로로 SSH 통신을 이용하여 압축된 데이터 파일을 전송하고,
상기 명령어 처리기와 상기 제1 스텝 처리기를 동시에 사용하기 위해서 상기 FPGA 기반 뉴로모픽 아키텍처 보드로 TCP 및 UDP 통신의 연결을 요청하는 전처리 과정을 수행하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
The method of claim 1,
The file analyzer analyzes the configuration file (NAAL_config) file and extracts information about the FPGA-based neuromorphic architecture board to perform learning and information about the host to control the learning model,
The command processor compresses the data required to drive model learning, and transmits the compressed data file using SSH communication to the path set in the temporary file path (remote_tmp) for the pre-learning process of the setting file (NAAL_config),
A host device for supporting a heterogeneous neuromorphic architecture that performs a preprocessing process for requesting connection of TCP and UDP communication to the FPGA-based neuromorphic architecture board in order to simultaneously use the command processor and the first step processor.
상기 제1 스텝 처리기는 UDP 통신을 이용하여 상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 송수신하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
The method of claim 1,
The first step processor is a host device for supporting a heterogeneous neuromorphic architecture for transmitting and receiving data necessary for the execution of the learning model program using UDP communication.
상기 명령어 처리기는 SSH 통신의 SFTP(Secure File Transfer Protocol)를 통해 초기 설정 파일을 전송하는 명령어, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 대한 자원을 확인하는 명령어 및 경로 설정파일(NAAL_script)에 설정된 학습 모델 프로그램을 실행하는 명령어를 송신하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
The method of claim 1,
The command processor is a command to transmit an initial setting file through SFTP (Secure File Transfer Protocol) of SSH communication, a command to check resources for the FPGA-based neuromorphic architecture board, and a learning model set in a path setting file (NAAL_script) A host device for supporting heterogeneous neuromorphic architectures that sends instructions to execute programs.
상기 명령어 처리기는 상기 SSH 통신을 이용하여 전달되는 데이터 값들을 *.npz파일로 압축하여 한 번에 전달하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
The method of claim 4,
The command processor compresses the data values transmitted using the SSH communication into *.npz files and transmits them at a time, a host device for supporting a heterogeneous neuromorphic architecture.
상기 명령어 처리기는 TCP 통신을 이용하여 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 모델 프로그램의 실행 및 종료 명령어를 전달하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
The method of claim 1,
The command processor is a host device for supporting a heterogeneous neuromorphic architecture that transmits the execution and termination commands of the learning model program to the FPGA-based neuromorphic architecture board using TCP communication.
호스트의 IP(ip), 상기 FPGA 기반 뉴로모픽 아키텍처 보드에서 수행한 weight, bias, encoder 값을 전달 받을 경로(weight_path), 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 IP(ip), 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 SSH 포트(ssh_port), 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 SSH 아이디(ssh_user), 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 SSH 비밀번호(ssh_pwd), 상기 FPGA 기반 뉴로모픽 아키텍처 보드에서 모델 학습을 수행하는 파일(pes_network.py)의 경로 설정파일(NAAL_script), 학습 전처리 과정을 위한 임시 파일 경로(remote_tmp) 중 적어도 하나의 정보를 포함하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
According to claim 1, wherein the configuration file (NAAL_config),
IP (ip) of the host, the path to receive the weight, bias, and encoder values performed by the FPGA-based neuromorphic architecture board (weight_path), the IP (ip) of the FPGA-based neuromorphic architecture board, and the FPGA-based new SSH port (ssh_port) of the lomorphic architecture board, SSH ID (ssh_user) of the FPGA-based neuromorphic architecture board, SSH password (ssh_pwd) of the FPGA-based neuromorphic architecture board, in the FPGA-based neuromorphic architecture board A host device for supporting a heterogeneous neuromorphic architecture, including information on at least one of the path setting file (NAAL_script) of the file that performs model training (pes_network.py), and the temporary file path (remote_tmp) for the training preprocessing process .
상기 FPGA 기반 뉴로모픽 아키텍처 보드는 하나 이상의 보드를 포함하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
The method of claim 1,
The FPGA-based neuromorphic architecture board is a host device for supporting a heterogeneous neuromorphic architecture, including one or more boards.
모델 학습에 필요한 데이터를 압축한 *.npz 파일과 뉴로모픽 아키텍처 보드에서 수행해야 할 스크립트의 경로를 수신하여 레지스터 값을 설정하는 자원 관리기; 및
매 스텝마다 모델 학습의 결과 데이터를 상기 제1 스텝 처리기로 송신하는 제2 스텝 처리기를 포함하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
The method of claim 8, wherein each FPGA-based neuromorphic architecture board,
Resource manager that receives the compressed *.npz file of data required for model training and the path of the script to be executed on the neuromorphic architecture board, and sets the register value; and
A host device for supporting a heterogeneous neuromorphic architecture, comprising a second step processor for transmitting the result data of model training to the first step processor at every step.
상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 모델 프로그램의 실행 및 종료 명령어를 전달하는 단계;
상기 FPGA 기반 뉴로모픽 아키텍처 보드에 초기 설정 파일을 전송하는 명령어, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 대한 자원을 확인하는 명령어 및 경로 설정파일(NAAL_script)에 설정된 학습 모델 프로그램을 실행하는 명령어를 송신하는 단계;
상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하는 단계; 및
상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 단계;를 포함하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법.
analyzing the execution environment configuration file (NAAL_config) for operating in the FPGA-based neuromorphic architecture board and heterogeneous IoT environment;
transmitting execution and termination commands of the learning model program to the FPGA-based neuromorphic architecture board;
Send a command to transmit an initial setting file to the FPGA-based neuromorphic architecture board, a command to check resources for the FPGA-based neuromorphic architecture board, and a command to execute a learning model program set in a path setting file (NAAL_script) to do;
transmitting data necessary for the execution of the learning model program to the FPGA-based neuromorphic architecture board; and
Receiving the learned result at every step from the FPGA-based neuromorphic architecture board; including, an abstract structure design method for supporting a heterogeneous neuromorphic architecture.
학습 모델 실행을 위한 데이터 전처리 단계를 더 포함하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법.
The method of claim 10,
A method of designing an abstraction structure to support a heterogeneous neuromorphic architecture, further comprising a data preprocessing step for executing a training model.
상기 설정파일(NAAL_config) 파일을 분석하여 학습을 수행할 FPGA 기반 뉴로모픽 아키텍처 보드의 정보와 학습 모델 구동 제어를 위해 호스트에 대한 정보를 추출하는 단계;
상기 학습 모델 구동에 필요한 데이터를 압축하는 단계;
상기 설정파일(NAAL_config)의 학습 전처리 과정을 위한 임시 파일 경로(remote_tmp)에 설정된 경로로 SSH 통신을 이용하여 압축된 데이터 파일을 전송하는 단계; 및
상기 FPGA 기반 뉴로모픽 아키텍처 보드로 TCP 및 UDP 통신의 연결을 요청하는 단계;를 포함하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법.
The method of claim 11, wherein the data preprocessing step for executing the learning model comprises:
analyzing the configuration file (NAAL_config) file to extract information on the FPGA-based neuromorphic architecture board to perform learning and information on the host for controlling the learning model;
compressing data necessary for driving the learning model;
transmitting a compressed data file using SSH communication to a path set in a temporary file path (remote_tmp) for a pre-learning process of the setting file (NAAL_config); and
Requesting connection of TCP and UDP communication to the FPGA-based neuromorphic architecture board; including, an abstract structure design method for supporting heterogeneous neuromorphic architectures.
UDP 통신을 이용하여 상기 학습 모델 프로그램의 실행을 위해 필요한 데이터를 송수신하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법.
11. The method of claim 10, wherein the step of transmitting the data necessary for the execution of the learning model program to the FPGA-based neuromorphic architecture board and receiving the learned result at every step from the FPGA-based neuromorphic architecture board ,
An abstract structure design method for supporting a heterogeneous neuromorphic architecture that transmits and receives data necessary for the execution of the learning model program using UDP communication.
상기 학습 모델 프로그램을 실행하는 명령어를 송신하는 단계는, SSH 통신의 SFTP(Secure File Transfer Protocol)를 통해 송신하는 데이터 값들을 *.npz 파일로 압축하여 한 번에 송신하고,
상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 모델 프로그램의 실행 및 종료 명령어를 전달하는 단계는, TCP 통신을 이용하여 전달하는, 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법.
The method of claim 10,
In the step of sending a command to execute the learning model program, data values transmitted through SFTP (Secure File Transfer Protocol) of SSH communication are compressed into *.npz files and transmitted at a time,
The step of transmitting the execution and termination commands of the learning model program to the FPGA-based neuromorphic architecture board is an abstract structure design method for supporting a heterogeneous neuromorphic architecture, which is transmitted using TCP communication.
상기 이기종 뉴로모픽 아키텍처를 지원하기 위한 추상화 구조 설계 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체.
The method of claim 10,
A computer-readable storage medium in which a computer program for performing an abstract structure design method for supporting the heterogeneous neuromorphic architecture is recorded.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190152268A KR102477971B1 (en) | 2019-11-25 | 2019-11-25 | Method for supporting neuromorphic architectures, recording medium and host device for performing the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190152268A KR102477971B1 (en) | 2019-11-25 | 2019-11-25 | Method for supporting neuromorphic architectures, recording medium and host device for performing the method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210063762A true KR20210063762A (en) | 2021-06-02 |
KR102477971B1 KR102477971B1 (en) | 2022-12-14 |
Family
ID=76372746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190152268A KR102477971B1 (en) | 2019-11-25 | 2019-11-25 | Method for supporting neuromorphic architectures, recording medium and host device for performing the method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102477971B1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140107042A (en) * | 2013-02-27 | 2014-09-04 | 삼성전자주식회사 | Management apparatus and method for managing server node |
KR20160095856A (en) | 2015-02-04 | 2016-08-12 | 한국전자통신연구원 | System and method for detecting intrusion intelligently based on automatic detection of new attack type and update of attack type |
KR20170068360A (en) | 2015-12-09 | 2017-06-19 | 삼성전자주식회사 | Storage device for decentralized machine learning and machine learning method thereof |
US20180174045A1 (en) | 2016-12-16 | 2018-06-21 | SK Hynix Inc. | Apparatus and method for recognizing information of neuromorphic device |
KR20190056957A (en) * | 2017-11-17 | 2019-05-27 | 한국전자통신연구원 | COMPUTING SYSTEM AND METHOD FOR INTELLIGENT IoE INFORMATION FRAMEWORK |
KR20190119487A (en) * | 2018-04-12 | 2019-10-22 | 숭실대학교산학협력단 | Node management system for small data machine learning |
-
2019
- 2019-11-25 KR KR1020190152268A patent/KR102477971B1/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140107042A (en) * | 2013-02-27 | 2014-09-04 | 삼성전자주식회사 | Management apparatus and method for managing server node |
KR20160095856A (en) | 2015-02-04 | 2016-08-12 | 한국전자통신연구원 | System and method for detecting intrusion intelligently based on automatic detection of new attack type and update of attack type |
KR20170068360A (en) | 2015-12-09 | 2017-06-19 | 삼성전자주식회사 | Storage device for decentralized machine learning and machine learning method thereof |
US20180174045A1 (en) | 2016-12-16 | 2018-06-21 | SK Hynix Inc. | Apparatus and method for recognizing information of neuromorphic device |
KR20190056957A (en) * | 2017-11-17 | 2019-05-27 | 한국전자통신연구원 | COMPUTING SYSTEM AND METHOD FOR INTELLIGENT IoE INFORMATION FRAMEWORK |
KR20190119487A (en) * | 2018-04-12 | 2019-10-22 | 숭실대학교산학협력단 | Node management system for small data machine learning |
Non-Patent Citations (1)
Title |
---|
비특허문헌1(유상록 외 3명, 한국정보과학회 학술발표논문집, 2019.06.)* * |
Also Published As
Publication number | Publication date |
---|---|
KR102477971B1 (en) | 2022-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jian et al. | Deep learning for RF fingerprinting: A massive experimental study | |
Kang et al. | Neurosurgeon: Collaborative intelligence between the cloud and mobile edge | |
KR102034955B1 (en) | Method and apparatus for controlling transmit power in wireless communication system based on neural network | |
US10726335B2 (en) | Generating compressed representation neural networks having high degree of accuracy | |
WO2022012407A1 (en) | Neural network training method and related device | |
CN113408743A (en) | Federal model generation method and device, electronic equipment and storage medium | |
CN113033703A (en) | Quantum neural network training method and device, electronic device and medium | |
CN111798002A (en) | Local model proportion controllable federated learning global model aggregation method | |
US20180129939A1 (en) | Method and system of managing computing paths in an artificial neural network | |
CN113515341A (en) | Flexible distributed AI training cloud platform deployment method and related platform | |
Zeroual et al. | Using a fine-tuning method for a deep authentication in mobile cloud computing based on Tensorflow Lite framework | |
WO2023231635A1 (en) | Model transmission method and apparatus | |
KR20210096405A (en) | Apparatus and method for generating learning model for machine | |
US20200167655A1 (en) | Method and apparatus for re-configuring neural network | |
CN110012021B (en) | Self-adaptive computing migration method under mobile edge computing | |
KR102477971B1 (en) | Method for supporting neuromorphic architectures, recording medium and host device for performing the method | |
Park et al. | Dynamic neuromorphic architecture selection scheme for intelligent Internet of Things services | |
Qi | Task offloading and scheduling strategy for intelligent prosthesis in mobile edge computing environment | |
WO2023185541A1 (en) | Model training method and related device | |
Cheng et al. | Efficient deep learning approach for computational offloading in mobile edge computing networks | |
RU2704538C1 (en) | Network architecture of an anthropoid network and a method of realizing | |
KR102535007B1 (en) | Neuromorphic architecture dynamic selection method for snn model parameter-based modeling, recording medium and device for performing the method | |
Park et al. | Selecting a proper neuromorphic platform for the intelligent iot | |
Lu et al. | TreeNet based fast task decomposition for resource-constrained edge intelligence | |
CN112749540B (en) | Text matching method, training device and training equipment for text matching model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |