KR102477971B1 - 뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치 - Google Patents

뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치 Download PDF

Info

Publication number
KR102477971B1
KR102477971B1 KR1020190152268A KR20190152268A KR102477971B1 KR 102477971 B1 KR102477971 B1 KR 102477971B1 KR 1020190152268 A KR1020190152268 A KR 1020190152268A KR 20190152268 A KR20190152268 A KR 20190152268A KR 102477971 B1 KR102477971 B1 KR 102477971B1
Authority
KR
South Korea
Prior art keywords
fpga
neuromorphic architecture
board
learning
file
Prior art date
Application number
KR1020190152268A
Other languages
English (en)
Other versions
KR20210063762A (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 KR1020190152268A priority Critical patent/KR102477971B1/ko
Publication of KR20210063762A publication Critical patent/KR20210063762A/ko
Application granted granted Critical
Publication of KR102477971B1 publication Critical patent/KR102477971B1/ko

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/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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

Landscapes

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

Abstract

뉴로모픽 아키텍처를 지원하기 위한 호스트 장치는, FPGA 기반 뉴로모픽 아키텍처 보드와 IoT 환경에서 동작하기 위한 실행환경 설정파일(NAAL_config)을 분석하는 파일 분석기, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 프로그램의 실행 및 종료 명령어를 전달하는 명령어 처리기; 및 학습 프로그램의 구동에 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 송신하고, 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 제1 스텝 처리기를 포함한다. 이에 따라, 뉴로모픽 아키텍처 기반의 통합개발환경을 위한 표준화를 이룰 수 있다.

Description

뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치{METHOD FOR SUPPORTING NEUROMORPHIC ARCHITECTURES, RECORDING MEDIUM AND HOST DEVICE FOR PERFORMING THE METHOD}
본 발명은 뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치에 관한 것으로서, 더욱 상세하게는 다양한 뉴로모픽 아키텍처를 지원하여 다양한 IoT 환경의 응용 서비스에 필요한 인공지능 모델을 효율적으로 학습시키고 활용할 수 있도록 지원하는 기술에 관한 것이다.
최근 주목을 받고 있는 인공지능, 특히 딥러닝 기술은 이미지 분류 및 해석, 스타크래프트 등의 게임 분야에서 인간의 능력에 필적하는 성능을 보여주고 있다. 하지만, 이는 많은 계산량을 필요로 하기 때문에 고가의 GPU(또는 이와 유사한 처리 장치, 예를 들어 구글의 TPU)를 여러 개 연결하여 사용하는 고사양 컴퓨팅 시스템을 요구한다.
따라서, 인공지능 기술을 IoT 디바이스나 웨어러블 기기 등의 소형 디바이스에서도 사용하기 위해서는 기존의 인공 신경망 기반의 기술로는 한계가 있다.
뉴로모픽 아키텍처는 차세대 인공지능 반도체로서 연산이나 전력 면에서 매우 우수한 반도체로 여겨지고 있다. IBM은 2008년 DARPA의 SyNAPSE 프로젝트를 기반으로 2014년 TrueNorth라는 뉴로모픽 칩 개발하였다.
사람의 뇌 신경세포 구조와 기능을 모방한 TrueNorth는 256개의 뉴런을 갖는 코어를 4096개 연결한 형태로 기존 마이크로프로세서보다 10,000분의 1 수준의 초저전력 성능을 보여준다. 하지만, 2014년 발표 이후 개발 도구나 후속 연구 개발은 없다.
인텔은 가장 최근에 발표된 LIF(Leaky Integrate-and-Fire) 뉴런을 지원하는 유일한 하드웨어인 Loihi를 발표하였다. 코어당 13만개의 뉴런을 구현하였으며, 칩 하나에 128개의 코어를 장착하여 총 1천6백만 개 정도의 뉴런과 130만개의 시냅스로 이루어져 있다.
기존 하드웨어들은 LIF가 아니라 선형 모델 기반의 뉴런을 지원하는데, LIF가 훨씬 생물학적 뉴런에 가까운 모델이다. USB형태의 소형 프로토타입을 발표할 예정이며, 일부 한정된 연구팀에게만 하드웨어 공개되고 있다.
뉴로모픽 아키텍처 기반의 소프트웨어 개발 패키지인 워털루대학의 Nengo와 AppliedBrainResearch은 파이썬 언어를 사용한다. Nengo는 복잡한 스파이킹 및 비스파이킹 신경망의 시뮬레이션이 가능하다.
또한, 확장 가능하고 유연하게 설계되어 있기 때문에 다양한 뉴런 타입 및 학습 규칙을 추가할 수 있으며 하드웨어로부터 바로 입력을 연결할 수 있어 다양한 응용에 활용될 수 있다.
신경망 기술을 위해 NEF를 사용하고 있으며, 백앤드로 인텔의 Loihi, SpiNNaker, AppliedBrainResarch의 FPGA 보드 등을 지원한다. IBM의 TrueNorth와 마찬가지로 선형 모델 기반의 뉴런을 지원한다.
인공지능을 적용하기 위한 다량의 데이터를 학습할 수 있는 고성능 대용량 서버와 그 데이터를 처리할 수 있는 슈퍼컴퓨터가 필요하다. 하지만, 뉴로모픽 아키텍처 보드라는 인공지능 반도체를 활용하면 저전력 IoT 환경에서도 고성능 하드웨어의 지원 없이 학습을 수행할 수 있다.
소형 디바이스에 인공지능을 적용하기 위한 다량의 데이터를 학습할 수 있는 기술로 뉴로모픽 아키텍처가 매우 적절한 기술로 평가되고 있다. 뉴로모픽 아키텍처를 활용한 소프트웨어 플랫폼 및 개발 환경 구축이 필수적인데, 아직까지 뉴로모픽 아키텍처 기반의 통합개발환경을 위한 표준화는 전무한 실정이다.
KR 2017-0068360 A KR 2016-0095856 A US 2018/0174045 A1
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 소프트웨어의 개발 과정에서 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치를 제공하는 것이다.
본 발명의 다른 목적은 뉴로모픽 아키텍처를 지원하기 위한 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 상기 뉴로모픽 아키텍처를 지원하는 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
본 발명의 일 실시예에 따른 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치는, 하나 이상의 FPGA 기반 뉴로모픽 아키텍처 보드에서의 학습을 지원하는, 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치로서, 상기 FPGA 기반 뉴로모픽 아키텍처 보드와 IoT 환경에서 동작되기 위한 실행환경 설정파일(NAAL_config)을 분석하는 파일 분석기, 외부 프로그램으로부터 수신한, 학습 프로그램의 실행 및 종료 명령어를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하는 명령어 처리기 및 상기 학습 프로그램의 구동에 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 송신하고, 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 제1 스텝 처리기를 포함하되, 상기 호스트 장치는 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 마련된 학습 프로그램을 실행시키기 위한 전처리 과정을 더 수행하고, 상기 전처리 과정은, 상기 파일 분석기를 통해 상기 실행환경 설정파일(NAAL_config)을 분석하여 학습을 수행할 FPGA 기반 뉴로모픽 아키텍처 보드의 정보와 학습 구동을 제어하는 호스트에 대한 정보를 추출하고, 상기 명령어 처리기를 통해 상기 학습 프로그램의 실행에 필요한 데이터를 압축하고, 상기 실행환경 설정파일(NAAL_config) 중 전처리 과정을 위한 임시 파일 경로(remote_tmp)에 설정된 경로를 기초로 SSH 통신을 통해 상기 압축된 데이터 파일을 송신하며, 상기 명령어 처리기와 상기 제1 스텝 처리기를 동시에 사용하기 위해서 상기 FPGA 기반 뉴로모픽 아키텍처 보드로 TCP 및 UDP 통신의 연결을 요청하는 것을 포함한다.
한편, 제1 스텝 처리기는 상기 UDP 통신을 이용하여 상기 학습 프로그램의 구동에 필요한 데이터를 송수신할 수 있다.
또한, 명령어 처리기는 SSH 통신의 SFTP(Secure File Transfer Protocol)를 통해 상기 학습 프로그램의 실행에 필요한 데이터를 *.npz파일로 압축하여 한 번에 송신할 수 있다.
또한, 명령어 처리기는 상기 TCP 통신을 이용하여 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 상기 학습 프로그램의 실행 및 종료 명령어를 전달할 수 있다.
또한, 상기 설정파일(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) 중 적어도 하나의 정보를 포함할 수 있다.
또한, 각각의 상기 FPGA 기반 뉴로모픽 아키텍처 보드는, 상기 학습 프로그램의 실행에 필요한 데이터를 압축한 *.npz 파일과 뉴로모픽 아키텍처 보드에서 수행해야 할 스크립트의 경로를 수신하여 레지스터 값을 설정하는 자원 관리기 및 매 스텝마다 학습의 결과 데이터를 상기 제1 스텝 처리기로 송신하는 제2 스텝 처리기를 포함할 수 있다.
본 발명의 다른 실시예에 다른 뉴로모픽 아키텍쳐 지원 방법은, 하나 이상의 FPGA 기반 뉴로모픽 아키텍처 보드에서의 학습을 지원하는 호스트 장치에서의 뉴로모픽 아키텍처 지원 방법으로서, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 마련된 학습 프로그램을 실행시키기 위한 전처리 단계, 외부 프로그램으로부터 수신한, 학습 프로그램의 실행 및 종료 명령어를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하는 단계, 상기 학습 프로그램의 구동에 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 송신하는 단계 및 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 단계를 포함하되, 상기 전처리 단계는, 상기 FPGA 기반 뉴로모픽 아키텍처 보드와 IoT 환경에서 동작되기 위한 실행환경 설정파일(NAAL_config)을 분석하는 단계로서, 상기 실행환경 설정파일(NAAL_config)을 분석하여 학습을 수행할 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 정보와 학습 구동을 제어하는 호스트에 대한 정보를 추출하는, 실행환경 설정파일(NAAL_config)을 분석하는 단계, 상기 학습 프로그램의 실행에 필요한 데이터를 압축하는 단계, 상기 실행환경 설정파일(NAAL_config) 중 전처리 과정을 위한 임시 파일 경로(remote_tmp)에 설정된 경로를 기초로 SSH 통신을 통해 상기 압축된 데이터를 송신하는 단계 및 상기 FPGA 기반 뉴로모픽 아키텍처 보드로 TCP 및 UDP 통신의 연결을 요청하는 단계;를 포함한다.
한편, 학습 프로그램의 구동에 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 송신하는 단계 및 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 단계는, 상기 UDP 통신을 이용하여 상기 학습 프로그램의 구동에 필요한 데이터를 송수신할 수 있다.
또한, SSH 통신을 통해 상기 압축된 데이터를 송신하는 단계는, SSH 통신의 SFTP(Secure File Transfer Protocol)를 통해 상기 학습 프로그램의 실행에 필요한 데이터를 *.npz 파일로 압축하여 한 번에 송신하고, 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 프로그램의 실행 및 종료 명령어를 전달하는 단계는, 상기 TCP 통신을 이용하여 전달할 수 있다.
또한, 본 발명의 또 다른 실시예에 따르면, 상기 뉴로모픽 아키텍처 지원 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체일 수 있다.
이와 같은 뉴로모픽 아키텍처를 지원하기 위한 방법 및 호스트 장치에 따르면, 고성능 하드웨어의 지원 없이 크기가 작고 전력소비가 적은 뉴로모픽 칩셋을 사용하여 효율적인 학습이 가능하게 한다. 이는 사용자가 IoT 디바이스에서 학습하기 위해 기존의 서버를 통한 원격 실행을 하거나, 고성능 하드웨어를 연결해서 쓰지 않고도 크기가 작고 저전력인 IoT 환경을 만들 수 있어 자원 제약적인 환경에서도 학습이 가능하게 한다.
도 1은 본 발명의 일 실시예에 따른 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치를 포함하는 전체 IoT 환경 시스템의 블록도이다.
도 2는 본 발명에서 사용하는 실행환경 설정파일(NAAL_config)의 구성요소의 예를 보여주는 도표이다.
도 3은 본 발명에서 수행되는 학습의 한 스텝(step)의 과정을 보여주는 도면이다.
도 4는 본 발명에서 수행되는 학습 프로그램의 실행을 위한 데이터 전처리 과정을 보여주는 도면이다.
도 5는 본 발명에서 수행되는 전체적인 학습 구동 시나리오를 보여주는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치를 포함하는 전체 IoT 환경 시스템의 블록도이다. 도 2는 본 발명에서 사용하는 실행환경 설정파일(NAAL_config)의 구성요소의 예를 보여주는 도표이다.
본 발명에 따른 뉴로모픽 아키텍처를 지원하기 위한 시스템 구조(10)는 다양한 뉴로모픽 아키텍처를 지원하여 다양한 IoT 환경의 응용 서비스에 필요한 인공지능 모델을 효율적으로 학습시키고 활용할 수 있도록 지원한다.
본 발명에서는 뉴로모픽 아키텍처를 지원하는 시스템 구조(10)를 Neuromorphic Architecture Abstract Layer(NAAL)로 정의한다. NAAL은 뉴로모픽 아키텍처 실행환경으로 하드웨어적으로 NAAL_HOST(라즈베리파이, 로컬 PC 등)와 FPGA 기반 뉴로모픽 아키텍처 보드로 구분된다.
따라서, NAAL를 호스트에 해당되는 NAAL_HOST와 FPGA 기반 뉴로모픽 아키텍처 보드에 해당되는 NAAL_FPGA로 모듈을 나눠 설계하고 구현하였다. NAAL_HOST는 학습 프로그램의 구동을 위해 필요한 데이터를 전송하고 학습 및 인식 결과를 전달 받는 것을 목표로 한다. NAAL_FPGA는 학습 프로그램을 구동하고 갱신된 학습 및 인식 결과를 전달하는 것을 목표로 한다.
도 1을 참조하면, 전체 IoT 환경 시스템(1)에서 뉴로모픽 아키텍처를 지원하기 위한 시스템 구조(10)는 호스트 장치(100, NAAL_HOST 이하 호스트)와 한 개 이상의 FPGA 기반 뉴로모픽 아키텍처 보드(300, NAAL_FPGA 이하 보드)를 포함한다.
본 발명에 따른 호스트(10)는 파일 분석기(110), 명령어 처리기(130) 및 제1 스텝 처리기(150)를 포함한다. 보드(300)는 각 모듈마다 자원 관리기(310, 350) 및 제2 스텝 처리기(330, 370)를 포함한다.
본 발명의 호스트(10)는 뉴로모픽 아키텍처를 지원하기 위한 소프트웨어(애플리케이션)가 설치되어 실행될 수 있으며, 파일 분석기(110), 명령어 처리기(130) 및 제1 스텝 처리기(150)의 구성은 호스트(10)에서 실행되는 뉴로모픽 아키텍처를 지원을 수행하기 위한 소프트웨어에 의해 제어될 수 있다.
호스트(10)는 별도의 단말이거나 또는 단말의 일부 모듈일 수 있다. 또한, 파일 분석기(110), 명령어 처리기(130) 및 제1 스텝 처리기(150)의 구성은 통합 모듈로 형성되거나, 하나 이상의 모듈로 이루어 질 수 있다. 그러나, 이와 반대로 각 구성은 별도의 모듈로 이루어질 수도 있다.
호스트(10)는 이동성을 갖거나 고정될 수 있다. 호스트(10)는, 디바이스(device), 기구(apparatus), 단말(terminal), UE(user equipment), MS(mobile station), 무선기기(wireless device), 휴대기기(handheld device) 등 다른 용어로 불릴 수 있다. 예를 들어, 호스트(10)는 로컬 PC일 수 있다. 또한, 보드(300)는 서버 또는 엔진 등 다른 용어로 불릴 수 있다.
호스트(10) 및 보드(300)는 운영체제(Operation System; OS), 즉 시스템을 기반으로 다양한 소프트웨어를 실행하거나 제작할 수 있다. 운영체제는 소프트웨어가 장치의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로서, 안드로이드 OS, iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터 운영체제 및 윈도우 계열, 리눅스 계열, 유닉스 계열, MAC, AIX, HP-UX 등 컴퓨터 운영체제를 모두 포함할 수 있다.
호스트(10)는 호스트 디바이스에 해당하는 모듈이다. 호스트(10)는 보드(300)에서 학습 프로그램의 구동을 위해 필요한 데이터들을 송수신하는 API를 설계하고 구현한다.
호스트(10)는 보드(300)와의 데이터 송수신을 위해 총 3개의 통신을 사용한다. 먼저, TCP 통신을 사용하여 보드(300)에 학습 프로그램의 실행 및 종료 명령어를 전달한다. 학습 프로그램의 구동 여부를 전달하는 역할을 수행하기 때문에 보드(300)가 서버 역할을 담당한다.
두 번째로, 학습 프로그램의 구동을 위해 필요한 데이터 값들을 SSH의 SFTP Secure File Transfer Protocol(SFTP)을 통해 전달한다. 여러 데이터 값들은 *.npz파일로 압축이 되어 한 번에 전달된다.
마지막으로, 학습 프로그램을 구동시킨 후 인식 혹은 학습의 결과를 수신하기 위해 UDP 통신을 사용한다. 보드(300)에서 학습의 매 스텝(step)마다 업데이트 된 결과를 전송한다. 호스트(10)는 업데이트된 학습 및 인식의 결과를 전달받아 사용자에게 전달한다.
파일 분석기(110)는 보드(300)와 IoT 환경에서 동작하기 위한 실행환경 설정파일(NAAL_config)을 분석한다. NAAL 실행환경 설정을 위한 실행환경 설정파일(NAAL_config)의 구성요소에 대해 도 2에 도시하였다.
도 2를 참조하면, 호스트의 키 값으로, [host]의 IP(ip), 보드(300)에서 수행한 weight, bias, encoder 값을 전달 받을 경로(weight_path)를 포함한다.
또한, [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)를 포함한다.
명령어 처리기(130)는 UDP 통신을 이용하여 학습 프로그램을 실행시키는데 필요한 데이터를 송수신한다.
입력 데이터는 사용자가 지정한 일정 시간동안 반복적으로 스텝을 수행하여 학습이 진행된다. 여기서, 스텝이란, 학습 프로그램의 구동에 필요한 데이터가 보드(300)에 전달되면 보드(300)에 설정된 Rectified Linear Unit(LeRu) 모델의 스파이킹 버전인 Spiking LeRU 모델을 통해 학습이 진행된 데이터를 호스트(10)에 전달되는 일련의 과정을 의미한다.
도 3은 호스트(10)의 제1 스텝 처리기(150)와 보드(300)의 제2 스텝 처리기(330)의 동작 과정을 나타낸다.
도 3을 참조하면, 호스트(10)의 제1 스텝 처리기(150)에서 학습 프로그램의 구동에 필요한 데이터를 송신하면(S11), 보드(300)의 제2 스텝 처리기(330)는 학습을 진행하고, 학습이 완료되면 Spiking LeRU의 학습 결과 데이터를 호스트(10)에 반환한다(S12).
상기 S11와 S12이 한 스텝이고, 지정된 시간동안 스텝을 반복적으로 수행하여 학습한다.
보드(300)는 FPGA 기반 뉴로모픽 아키텍처 보드에 해당하는 모듈이다. 보드(300)는 자원 관리기(310) 및 제2 스텝 처리기(330)를 포함한다. 보드(300)는 다수개로 형성될 수 있다.
보드(300)는 호스트(10)로부터 학습 프로그램의 실행에 필요한 데이터를 압축한 *.npz 파일과 보드(300)에서 수행해야 할 스크립트의 경로를 수신 받아 뉴로모픽 아키텍처 보드의 레지스터 값을 설정한다.
자원 관리기(310)는 호스트(10)로부터 전송 받은 *.npz 파일의 데이터 값을 활용하여 학습을 실행하기 전의 전의 레지스터 값과 학습 프로그램 관련 데이터를 초기화 한다. 또한, 자원 관리기(310)는 보드(300)에서 학습이 종료되면 학습에 사용되었던 자원을 반환하며, 다음 학습시 불필요한 레지스터 값과 *.npz 파일과 같은 자원을 삭제한다.
제2 스텝 처리기(330)는 매 스텝마다 학습의 결과 데이터를 호스트(10)의 제1 스텝 처리기(150)로 송신한다.
도 4는 본 발명에서 수행되는 학습 프로그램의 실행을 위한 데이터 전처리 과정을 보여주는 도면이다.
도 4를 참조하면, 호스트(10)의 파일 분석기(110)는 외부 프로그램에서 NAAL_config 파일의 구성요소를 설정하고 초기 학습을 위한 데이터를 전송하면(S21), NAAL_config 파일을 분석하여 학습을 수행할 보드(300)의 정보와 학습 구동을 제어하는 호스트에 대한 정보를 추출한다.
또한, 호스트(10)는 학습 프로그램의 실행에 필요한 데이터를 *.npz 파일로 압축하고, NAAL_config 파일의 remote_tmp에 설정된 경로에 SSH 통신으로 NAAL_FPGA에 *.npz 파일을 송신한다(S22). 이후, 보드(300)는 NAAL_config 파일의 NAAL_script에 설정된 파일을 실행한다.
호스트(10)는 명령어 처리기(130) 및 제1 스텝 처리기(150)를 동시에 사용하기 위해서 보드(300)로 TCP 및 UDP 통신의 연결을 요청한다. 보드(300)는 수신한 *.npz 파일을 기반으로 학습 프로그램을 위해 사용될 정보들을 저장하고 호스트(10)와 통신하게 된다.
도 5는 본 발명에서 수행되는 전체적인 학습 구동 시나리오를 보여주는 도면이다.
도 5를 참조하면, 전처리 과정 이후, TCP 및 UDP 통신이 연결되면, 외부 프로그램이 NAAL_FPGA에서의 학습 프로그램의 실행 명령어를 전송한다(S31). 호스트(10)의 명령어 처리기(130)가 학습 프로그램의 실행 명령어를 보드(300)에 전달하고(S32), 호스트(10)의 제1 스텝 처리기(150)가 외부 프로그램으로부터 받은 학습 데이터를 보드(300)에 전송한다(S33).
보드(300)의 자원 관리기(310)는 호스트(10)로부터 전송 받은 *.npz 파일의 데이터 값을 활용하여 학습 프로그램을 실행하기 전의 레지스터 값과 학습 프로그램 관련 데이터를 초기화 한다.
제2 스텝 처리기(330)는 전달받은 데이터를 LeRu모델의 스파이킹 버전인 Spiking LeRU 모델에 적용하여 인식 및 학습을 수행한다. 제2 스텝 처리기(330)에서 학습의 결과 데이터를 호스트(10)의 제1 스텝 처리기(150)에 전송하면 한 스텝이 처리된다. 이 과정을 반복하면서 PES 학습이 진행된다.
본 발명에 따른, NAAL은 고성능 하드웨어의 지원 없이 크기가 작고 전력소비가 적은 뉴로모픽 칩셋을 사용하여 효율적인 학습이 가능하게 한다. 이는 사용자가 IoT 디바이스에서 학습하기 위해 기존의 서버를 통한 원격 실행을 하거나, 고성능 하드웨어를 연결해서 쓰지 않고도 크기가 작고 저전력인 IoT 환경을 만들 수 있어 자원 제약적인 환경에서도 학습이 가능하게 한다.
이와 같은, 뉴로모픽 아키텍처를 지원하기 위한 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
본 발명은 다양한 뉴로모픽 아키텍처를 지원하여 다양한 IoT 환경의 응용 서비스에 필요한 인공지능 모델을 효율적으로 학습시키고 활용할 수 있도록 지원할 수 있다.
1: IoT 환경 시스템
10: 뉴로모픽 아키텍처를 지원하는 시스템 구조
100: 호스트 장치
110: 파일 분석기
130: 명령어 처리기
150: 제1 스텝 처리기
300: FPGA 기반 뉴로모픽 아키텍처 보드
310, 350: 자원 관리기
330, 370: 제2 스텝 처리기

Claims (15)

  1. 하나 이상의 FPGA 기반 뉴로모픽 아키텍처 보드에서의 학습을 지원하는, 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치로서,
    상기 FPGA 기반 뉴로모픽 아키텍처 보드와 IoT 환경에서 동작되기 위한 실행환경 설정파일(NAAL_config)을 분석하는 파일 분석기;
    외부 프로그램으로부터 수신한, 학습 프로그램의 실행 및 종료 명령어를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하는 명령어 처리기; 및
    상기 학습 프로그램의 구동에 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 송신하고, 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 제1 스텝 처리기;를 포함하되,
    상기 호스트 장치는 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 마련된 학습 프로그램을 실행시키기 위한 전처리 과정을 더 수행하고,
    상기 전처리 과정은,
    상기 파일 분석기를 통해 상기 실행환경 설정파일(NAAL_config)을 분석하여 학습을 수행할 FPGA 기반 뉴로모픽 아키텍처 보드의 정보와 학습 구동을 제어하는 호스트에 대한 정보를 추출하고,
    상기 명령어 처리기를 통해 상기 학습 프로그램의 실행에 필요한 데이터를 압축하고, 상기 실행환경 설정파일(NAAL_config) 중 전처리 과정을 위한 임시 파일 경로(remote_tmp)에 설정된 경로를 기초로 SSH 통신을 통해 상기 압축된 데이터 파일을 송신하며,
    상기 명령어 처리기와 상기 제1 스텝 처리기를 동시에 사용하기 위해서 상기 FPGA 기반 뉴로모픽 아키텍처 보드로 TCP 및 UDP 통신의 연결을 요청하는 것을 포함하는, 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 스텝 처리기는 상기 UDP 통신을 이용하여 상기 학습 프로그램의 구동에 필요한 데이터를 송신하는, 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
  4. 삭제
  5. 제1항에 있어서,
    상기 명령어 처리기는 SSH 통신의 SFTP(Secure File Transfer Protocol)를 통해 상기 학습 프로그램의 실행에 필요한 데이터를 *.npz파일로 압축하여 한 번에 송신하는, 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
  6. 제1항에 있어서,
    상기 명령어 처리기는 상기 TCP 통신을 이용하여 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 상기 학습 프로그램의 실행 및 종료 명령어를 전달하는, 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
  7. 제1항에 있어서, 상기 설정파일(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) 중 적어도 하나의 정보를 포함하는, 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
  8. 삭제
  9. 제1항에 있어서, 각각의 상기 FPGA 기반 뉴로모픽 아키텍처 보드는,
    상기 학습 프로그램의 실행에 필요한 데이터를 압축한 *.npz 파일과 뉴로모픽 아키텍처 보드에서 수행해야 할 스크립트의 경로를 수신하여 레지스터 값을 설정하는 자원 관리기; 및
    매 스텝마다 학습된 결과 데이터를 상기 제1 스텝 처리기로 송신하는 제2 스텝 처리기를 포함하는, 뉴로모픽 아키텍처를 지원하기 위한 호스트 장치.
  10. 하나 이상의 FPGA 기반 뉴로모픽 아키텍처 보드에서의 학습을 지원하는 호스트 장치에서의 뉴로모픽 아키텍처 지원 방법으로서,
    상기 FPGA 기반 뉴로모픽 아키텍처 보드에 마련된 학습 프로그램을 실행시키기 위한 전처리 단계;
    외부 프로그램으로부터 수신한, 학습 프로그램의 실행 및 종료 명령어를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 전달하는 단계;
    상기 학습 프로그램의 구동에 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 송신하는 단계; 및
    상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 단계;를 포함하되,
    상기 전처리 단계는,
    상기 FPGA 기반 뉴로모픽 아키텍처 보드와 IoT 환경에서 동작되기 위한 실행환경 설정파일(NAAL_config)을 분석하는 단계로서, 상기 실행환경 설정파일(NAAL_config)을 분석하여 학습을 수행할 상기 FPGA 기반 뉴로모픽 아키텍처 보드의 정보와 학습 구동을 제어하는 호스트에 대한 정보를 추출하는, 실행환경 설정파일(NAAL_config)을 분석하는 단계;
    상기 학습 프로그램의 실행에 필요한 데이터를 압축하는 단계;
    상기 실행환경 설정파일(NAAL_config) 중 전처리 과정을 위한 임시 파일 경로(remote_tmp)에 설정된 경로를 기초로 SSH 통신을 통해 상기 압축된 데이터를 송신하는 단계; 및
    상기 FPGA 기반 뉴로모픽 아키텍처 보드로 TCP 및 UDP 통신의 연결을 요청하는 단계;를 포함하는, 뉴로모픽 아키텍처 지원 방법.
  11. 삭제
  12. 삭제
  13. 제10항에 있어서, 상기 학습 프로그램의 구동에 필요한 데이터를 상기 FPGA 기반 뉴로모픽 아키텍처 보드에 송신하는 단계 및 상기 FPGA 기반 뉴로모픽 아키텍처 보드로부터 매 스텝마다 학습된 결과를 수신하는 단계는,
    상기 UDP 통신을 이용하여 상기 학습 프로그램의 구동에 필요한 데이터를 송신하는, 뉴로모픽 아키텍처 지원 방법.
  14. 제10항에 있어서,
    상기 SSH 통신을 통해 상기 압축된 데이터를 송신하는 단계는,
    SSH 통신의 SFTP(Secure File Transfer Protocol)를 통해 상기 학습 프로그램의 실행에 필요한 데이터를 *.npz 파일로 압축하여 한 번에 송신하고,
    상기 FPGA 기반 뉴로모픽 아키텍처 보드에 학습 프로그램의 실행 및 종료 명령어를 전달하는 단계는, 상기 TCP 통신을 이용하여 전달하는, 뉴로모픽 아키텍처 지원 방법.
  15. 제10항에 따른, 상기 뉴로모픽 아키텍처 지원 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체.
KR1020190152268A 2019-11-25 2019-11-25 뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치 KR102477971B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190152268A KR102477971B1 (ko) 2019-11-25 2019-11-25 뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190152268A KR102477971B1 (ko) 2019-11-25 2019-11-25 뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치

Publications (2)

Publication Number Publication Date
KR20210063762A KR20210063762A (ko) 2021-06-02
KR102477971B1 true KR102477971B1 (ko) 2022-12-14

Family

ID=76372746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190152268A KR102477971B1 (ko) 2019-11-25 2019-11-25 뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치

Country Status (1)

Country Link
KR (1) KR102477971B1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140107042A (ko) * 2013-02-27 2014-09-04 삼성전자주식회사 관리 장치 및 서버 노드 관리 방법
KR20160095856A (ko) 2015-02-04 2016-08-12 한국전자통신연구원 새로운 공격 유형의 자동 탐지 및 공격 유형 모델 갱신을 통한 지능형 침입 탐지 시스템 및 방법
US20170169358A1 (en) 2015-12-09 2017-06-15 Samsung Electronics Co., Ltd. In-storage computing apparatus and method for decentralized machine learning
KR20180070196A (ko) 2016-12-16 2018-06-26 에스케이하이닉스 주식회사 뉴로모픽 장치의 정보 인식 장치 및 방법
KR102435503B1 (ko) * 2017-11-17 2022-08-24 한국전자통신연구원 지능형 IoE 정보 프레임워크를 위한 컴퓨팅 시스템 및 방법
KR102182493B1 (ko) * 2018-04-12 2020-11-24 숭실대학교산학협력단 스몰 데이터 기계 학습을 위한 노드 관리 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
비특허문헌1(유상록 외 3명, 한국정보과학회 학술발표논문집, 2019.06.)*

Also Published As

Publication number Publication date
KR20210063762A (ko) 2021-06-02

Similar Documents

Publication Publication Date Title
Kang et al. Neurosurgeon: Collaborative intelligence between the cloud and mobile edge
McChesney et al. Defog: fog computing benchmarks
CN108304921A (zh) 卷积神经网络的训练方法及图像处理方法、装置
CN113408743A (zh) 联邦模型的生成方法、装置、电子设备和存储介质
US20190130272A1 (en) Generating compressed representation neural networks having high degree of accuracy
KR20190113114A (ko) 무선 통신 시스템에서 신경망 기반의 송신전력 제어 방법 및 장치
US10915812B2 (en) Method and system of managing computing paths in an artificial neural network
WO2020108457A1 (zh) 目标对象的控制方法、装置、设备及存储介质
Valery et al. CPU/GPU collaboration techniques for transfer learning on mobile devices
Zeroual et al. Using a fine-tuning method for a deep authentication in mobile cloud computing based on Tensorflow Lite framework
CN114358319B (zh) 基于机器学习框架的分类方法及相关装置
CN115293254A (zh) 基于量子多层感知器的分类方法及相关设备
US20200167655A1 (en) Method and apparatus for re-configuring neural network
KR102477971B1 (ko) 뉴로모픽 아키텍처를 지원하기 위한 방법, 이를 수행하기 위한 기록 매체 및 호스트 장치
Pandey et al. An automation framework for benchmarking and optimizing performance of remote desktops in the cloud
de Matos et al. An Empirical Study about the Adoption of Multi-language Technique in Computation Offloading in a Mobile Cloud Computing Scenario.
WO2023231635A1 (zh) 一种模型传输的方法及装置
RU2704538C1 (ru) Сетевая архитектура человекоподобной сети и способ реализации
Vishnu et al. Mobile application-based virtual assistant using deep learning
CN112749540B (zh) 文本匹配方法、文本匹配模型的训练方法及装置、设备
KR102535007B1 (ko) Snn 모델 파라미터를 기반으로 모델 수행을 위한 뉴로모픽 아키텍처 동적 선택 방법, 이를 수행하기 위한 기록 매체 및 장치
CN110012021B (zh) 一种移动边缘计算下的自适应计算迁移方法
CN113515341A (zh) 一种灵活的分布式ai训练云平台部署方法及相关平台
KR102336902B1 (ko) 분산형 가상 데스크탑 시스템 및 처리 방법
KR20220060337A (ko) 연합 학습을 통한 전장 상황 인지 기술 개선 방법

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