KR102453370B1 - 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치 - Google Patents

대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치 Download PDF

Info

Publication number
KR102453370B1
KR102453370B1 KR1020180040202A KR20180040202A KR102453370B1 KR 102453370 B1 KR102453370 B1 KR 102453370B1 KR 1020180040202 A KR1020180040202 A KR 1020180040202A KR 20180040202 A KR20180040202 A KR 20180040202A KR 102453370 B1 KR102453370 B1 KR 102453370B1
Authority
KR
South Korea
Prior art keywords
neural network
feature map
buffer
processing method
convolutional neural
Prior art date
Application number
KR1020180040202A
Other languages
English (en)
Other versions
KR20190117103A (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 KR1020180040202A priority Critical patent/KR102453370B1/ko
Publication of KR20190117103A publication Critical patent/KR20190117103A/ko
Application granted granted Critical
Publication of KR102453370B1 publication Critical patent/KR102453370B1/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/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

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)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치가 제공된다. 본 발명의 실시예에 따른 신경망 처리 방법은, 특징맵을 분할한 후 재분할하고, 재분할된 특징맵을 신경망에 입력하여 특징맵을 이용한 연산을 수행하며, 연산 결과를 출력한다. 이에 의해, 대규모 채널을 가진 심층 컨볼루션 신경망의 파이프라인 처리를 위한 하드웨어를 FPGA, ASIC 등으로 구현할 수 있으며, 나아가 고속/저전력 처리까지도 가능하게 된다.

Description

대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치{Method and Apparatus for High-Speed Low-Power Processing in Large-Scale Deep Neural Network}
본 발명은 인공 지능 관련 기술에 관한 것으로, 더욱 상세하게는 심층 신경망(Deep Neural Network)를 가속하기 위한 방법에 관한 것이다.
도 1은 심층 컨볼루션 신경망(Deep Convolutional Neural Network)의 개념도이다. 심층 컨볼루션 신경망은, 도 1에 도시된 바와 같이, 컨볼루션 커널을 이용하여, 입력 특징맵(Feature Map)에 대해 컨볼루션(Multiply 및 Accumulation) 연산을 수행하여 출력 특징맵을 생성한다.
도 2 내지 도 4에는 심층 컨볼루션 신경망의 처리 방법을 나타내었다.
구체적으로, 도 2에는 CPU로 구현할 수 있는 심층 컨볼루션 신경망의 순차적 처리 방법을 나타내었고, 도 3에는 GPU, FPGA, ASIC 등으로 구현할 수 있는 심층 컨볼루션 신경망의 병렬 처리 방법을 나타내었다.
도 4에는 FPGA, ASIC 등으로 구현할 수 있는 심층 컨볼루션 신경망의 파이프라인 처리 방법을 나타내었다. 레이어 별로 독립적인 컨볼루션 계산기들이 구성되고, 레이어 간에는 파이프라인 처리 기법이 적용된다. 다음 레이어의 동작을 위해 이전 레이어에서의 모든 채널의 출력 값이 필요하다.
도 2 내지 도 4에 제시된 심층 컨볼루션 신경망의 처리 방법 중 가장 효과적인 방법은 심층 컨볼루션 신경망의 파이프라인 처리 방법이다. 도 5에는 심층 컨볼루션 신경망의 파이프라인 처리를 위한 하드웨어 장치의 구성을 나타낸 도면이다.
도시된 도면을 통해 짐작할 수 있는 바와 같이, 심층 컨볼루션 신경망의 파이프라인 처리 방법은 채널이 증가할 경우에 버퍼 메모리의 크기가 커지게 되는 문제가 있다.
최근 신경망의 경우 512채널까지 요구하고 있는데, 이를 위한 버퍼 크기는 제한된 메모리 리소스 환경의 FPGA, ASIC 등으로는 구현 불가능한 수준이다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 대규모 채널을 가진 심층 컨볼루션 신경망의 파이프라인 처리를 위한 하드웨어를 FPGA, ASIC 등으로 구현할 수 있도록 하기 위한 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 신경망 처리 방법은, 특징맵을 분할하는 단계; 분할된 특징맵을 재분할하는 단계; 재분할된 특징맵을 신경망에 입력하는 단계; 신경망에서 입력된 특징맵을 이용한 연산을 수행하는 단계; 및 연산 결과를 출력하는 단계;를 포함한다.
그리고, 분할 단계는, 특징맵을 수평으로 분할할 수 있다.
또한, 재분할 단계는, 분할된 특징맵을 수직으로 분할할 수 있다.
그리고, 재분할 단계는, 분할된 특징맵에 대해, 경계선을 중심으로 주변 일부가 중첩되도록 재분할할 수 있다.
또한, 재분할된 특징맵이 저장되는 버퍼와 경계선을 중심으로 한 중첩 영역이 저장되는 버퍼가 구분되어 있을 수 있다.
그리고, 입력 단계, 연산 수행 단계 및 출력 단계는, 파이프라인으로 처리될 수 있다.
또한, 신경망은, 심층 컨볼루션 신경망일 수 있다.
한편, 본 발명의 다른 실시예에 따른, 신경망 처리 장치는, 특징맵을 분할하고, 분할된 특징맵을 재분할하는 버퍼; 및 버퍼에서 재분할된 특징맵을 입력받아 연산을 수행하여 결과를 출력하는 신경망;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, 대규모 채널을 가진 심층 컨볼루션 신경망의 파이프라인 처리를 위한 하드웨어를 FPGA, ASIC 등으로 구현할 수 있으며, 나아가 고속/저전력 처리까지도 가능하게 된다.
도 1은 심층 컨볼루션 신경망의 개념도,
도 2는 심층 컨볼루션 신경망의 순차적 처리 방법,
도 3은 심층 컨볼루션 신경망의 병렬 처리 방법,
도 4는 심층 컨볼루션 신경망의 파이프라인 처리 방법,
도 5는 심층 컨볼루션 신경망의 파이프라인 처리를 위한 하드웨어 장치,
도 6은 본 발명의 일 실시예에 따른 심층 컨볼루션 신경망 처리 방법의 개념도,
도 7은 특징맵의 중첩 처리 개념을 나타낸 도면, 그리고,
도 8은 본 발명의 다른 실시예에 따른 심층 컨볼루션 신경망 처리를 위한 하드웨어 구성을 나타낸 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 6은 본 발명의 일 실시예에 따른 심층 컨볼루션 신경망 처리 방법의 개념도이다. 본 발명의 실시예에 따른 심층 컨볼루션 신경망 처리 방법은, 대규모 채널을 가진 심층 컨볼루션 신경망에 대한 파이프라인 처리 방법을 제시한다.
본 발명의 실시예에 따른 심층 컨볼루션 신경망 처리 방법에서는, 도 6에 도시된 바와 같이, 입력되는 특징맵(100)을 수평으로 분할하는 것에서 나아가, 수직으로도 재분할한다.
입력되는 특징맵(100)의 수평적 분할 처리와 수직적 분할 처리를 통해 파이프라인 버퍼의 너비(Width)를 감소시키기 위함이다.
구체적으로, 파이프라인 처리 시 2차원 특징맵의 라인 단위로 버퍼링하되, 파이프라인 버퍼의 크기를 줄이기 위해 특징맵을 수직적으로 분할하여 순차적으로 처리하도록 한다.
처리하는 특징맵의 너비 감소로 인해 이를 저장하는 파이프라인 버퍼의 너비 또한 감소된다.
이를 통해, 특징맵(100)은 블럭화되어 다수의 블럭들(110)로 나누어지며, 이에 따라 특징맵(100)은 라인 단위가 아닌 블럭 단위로 심층 컨볼루션 신경망(200)에 입력된다.
심층 컨볼루션 신경망(200)은 특징맵을 이용한 컨볼루션 연산을 수행하고, 연산 결과(120)를 출력한다.
한편, 수평으로 분할된 특징맵(100)을 수직으로 분할함에 있어, 경계선을 중심으로 주변 일부가 중첩되도록 한다. 구체적으로, 도 7에 도시된 바와 같이, 컨볼루션 윈도우의 너비를 기초로 적정 너비의 특징맵(100)이 중첩되어 분할되도록 하는 것이다.
특징맵(100)을 분할하여 처리하는 경우에, 경계선에서 발생하는 오류를 제거하여 성능 저하를 최소화기 위함이다. 이에, 파이프라인 버퍼 외에 이전 경계선에서의 특징맵 저장을 위한 별도의 버퍼가 필요하다.
도 8은 본 발명의 다른 실시예에 따른 심층 컨볼루션 신경망 처리를 위한 하드웨어 구성을 나타낸 도면이다.
본 발명의 실시예에 따른 심층 컨볼루션 신경망 처리를 위한 하드웨어는, 대규모 채널을 가진 심층 컨볼루션 신경망의 파이프라인 처리를 위한 하드웨어로, FPGA, ASIC 등으로 구현할 수 있다.
도시된 바와 같이, 본 발명의 실시예에 따른 심층 컨볼루션 신경망 처리를 위한 하드웨어는, 입력 특징맵 버퍼(210), 경계값 버퍼(215), 심층 컨볼루션 신경망 레이어-1(220), 특징맵 버퍼(230), 경계값 버퍼(235)를 포함한다.
입력 특징맵 버퍼(210)는 입력되는 특징맵을 임시 저장하고, 저장된 특징맵을 수평으로 분할하고 수직으로 재분할한다. 경계값 버퍼(215)에는 분할된 경계선 주변의 특징맵 값이 저장된다. 다음 블럭에 대한 연산에 필요하기 때문이다.
심층 컨볼루션 신경망 레이어-1(220)를 구성하는 컨볼루션 계산기들은 입력 특징맵 버퍼(210)와 경계값 버퍼(215)에 저장된 특징맵 데이터를 이용하여 컨볼루션 연산을 수행하고, 연산 결과(120)를 특징맵 버퍼(230)에 저장한다.
경계값 버퍼(235)에는 특징맵 버퍼(230)에 저장된 특징맵에서 경계선 주변의 특징맵 값이 저장된다. 특징맵 버퍼(230)와 경계값 버퍼(235)에 저장된 특징맵 데이터는 심층 컨볼루션 신경망 레이어-2(미도시)로 입력되어 연산된다.
이 과정은 심층 컨볼루션 신경망(200)을 구성하는 레이어들 전부에 대해 수행되며, 마지막 레이에어서의 연산 결과가 심층 컨볼루션 신경망(200)의 출력이 된다.
지금까지, 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치에 대해 바람직한 실시예를 들어 상세히 설명하였다.
위 실시예에서는, 특징맵 분할 기반의 심층 컨볼루션 신경망 파이프라인 처리 방법 및 이를 위한 하드웨어 장치를 제시하였으며, 이 과정에서 경계선 오류 제거를 위한 중첩처리 방법 및 이를 지원하기 위한 버퍼 구조를 제시하였다.
위 실시예에서 언급한 심층 컨볼루션 신경망은 신경망의 일종으로 언급한 것이다. 다른 종류의 신경망으로 대체되는 경우에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다.
본 발명의 실시예에 따른 대규모 심층 신경망 처리 방법 및 장치는, 심층 인공 신경망에 대한 가속 기술로, ADAS(Advanced Driver Assistance System : 첨단 운전자 지원 시스템), 자율주행 등을 위한 차량 지능화 기술에 적용될 수 있다.
나아가, 본 발명의 실시예에 따른 대규모 심층 신경망 처리 방법 및 장치는, 보안 및 감시 카메라 지능형 영상처리 기술에도 적용될 수 있고, 그 밖의 다른 기술 분야에도 적용될 수 있음은 물론이다.
한편, 본 실시예에 따른 장치와 방법의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 입력 특징맵
200 : 심층 컨볼루션 신경망
210, 230 : 특징맵 버퍼
215, 235 : 경계값 버퍼
220 : 심층 컨볼루션 신경망 레이어

Claims (8)

  1. 특징맵을 제1 방향으로 분할하는 단계;
    분할된 특징맵을 제1 방향과 다른 제2 방향으로 재분할하는 단계;
    재분할된 특징맵을 신경망에 입력하는 단계;
    신경망에서 입력된 특징맵을 이용한 연산을 수행하는 단계; 및
    연산 결과를 출력하는 단계;를 포함하고,
    입력 단계, 연산 수행 단계 및 출력 단계는,
    파이프라인으로 처리되는 것을 특징으로 하는 신경망 처리 방법.
  2. 청구항 1에 있어서,
    분할 단계는,
    특징맵을 수평으로 분할하는 것을 특징으로 하는 신경망 처리 방법.
  3. 청구항 2에 있어서,
    재분할 단계는,
    분할된 특징맵을 수직으로 분할하는 것을 특징으로 하는 신경망 처리 방법.
  4. 청구항 3에 있어서,
    재분할 단계는,
    분할된 특징맵에 대해, 경계선을 중심으로 주변 일부가 중첩되도록 재분할하는 것을 특징으로 하는 신경망 처리 방법.
  5. 청구항 4에 있어서,
    재분할된 특징맵이 저장되는 버퍼와 경계선을 중심으로 한 중첩 영역이 저장되는 버퍼가 구분되어 있는 것을 특징으로 하는 신경망 처리 방법.
  6. 삭제
  7. 청구항 1에 있어서,
    신경망은,
    심층 컨볼루션 신경망인 것을 특징으로 하는 신경망 처리 방법.
  8. 특징맵을 제1 방향으로 분할하고, 분할된 특징맵을 제1 방향과 다른 제2 방향으로 재분할하는 버퍼;
    버퍼에서 재분할된 특징맵을 입력받아 연산을 수행하여 결과를 출력하는 신경망;를 포함하고,
    재분할된 특징맵 입력, 입력된 특징맵 연산 및 연산 결과 출력은,
    파이프라인으로 처리되는 것을 특징으로 하는 신경망 처리 장치.
KR1020180040202A 2018-04-06 2018-04-06 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치 KR102453370B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180040202A KR102453370B1 (ko) 2018-04-06 2018-04-06 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180040202A KR102453370B1 (ko) 2018-04-06 2018-04-06 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190117103A KR20190117103A (ko) 2019-10-16
KR102453370B1 true KR102453370B1 (ko) 2022-10-07

Family

ID=68421587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180040202A KR102453370B1 (ko) 2018-04-06 2018-04-06 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102453370B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111416743B (zh) * 2020-03-19 2021-09-03 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
KR20230083960A (ko) 2021-12-03 2023-06-12 한국전자통신연구원 저전력 신경망 연산 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101802096B1 (ko) 2016-11-30 2017-11-27 연세대학교 산학협력단 반도체 공정에서 불량을 분류 및 진단하는 장치 및 방법
KR101847874B1 (ko) 2017-06-28 2018-05-25 서경대학교 산학협력단 합성곱 신경망을 이용한 이미지 인식 방법 및 그 기록 매체

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100956747B1 (ko) * 2008-02-11 2010-05-12 한국과학기술원 신경망회로와 병렬처리 프로세서를 결합한 컴퓨터구조 및그를 이용한 처리방법
US10417555B2 (en) * 2015-05-29 2019-09-17 Samsung Electronics Co., Ltd. Data-optimized neural network traversal
US10387770B2 (en) * 2015-06-10 2019-08-20 Samsung Electronics Co., Ltd. Spiking neural network with reduced memory access and reduced in-network bandwidth consumption
KR102592076B1 (ko) * 2015-12-14 2023-10-19 삼성전자주식회사 딥러닝 기반 영상 처리 장치 및 방법, 학습 장치
KR20180020724A (ko) * 2016-08-19 2018-02-28 주식회사 케이티 나선형 신경망 네트워크 기반의 딥러닝에서 특징맵의 계산을 위한 피라미드 히스토리 맵 생성 방법 및 특징맵 생성 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101802096B1 (ko) 2016-11-30 2017-11-27 연세대학교 산학협력단 반도체 공정에서 불량을 분류 및 진단하는 장치 및 방법
KR101847874B1 (ko) 2017-06-28 2018-05-25 서경대학교 산학협력단 합성곱 신경망을 이용한 이미지 인식 방법 및 그 기록 매체

Also Published As

Publication number Publication date
KR20190117103A (ko) 2019-10-16

Similar Documents

Publication Publication Date Title
KR20180060149A (ko) 컨볼루션 처리 장치 및 방법
WO2020048396A1 (zh) 一种连续图像的目标检测方法、装置、设备及存储介质
US11734554B2 (en) Pooling processing method and system applied to convolutional neural network
US20150221069A1 (en) Method for real time video processing involving changing a color of an object on a human face in a video
KR102453370B1 (ko) 대규모 심층 신경망의 고속 저전력 처리를 위한 방법 및 장치
WO2020264264A1 (en) Dilated convolution using systolic array
WO2020199476A1 (zh) 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质
WO2019084788A1 (zh) 用于神经网络的运算装置、电路及相关方法
JP6927320B2 (ja) 推論装置、畳み込み演算実行方法及びプログラム
CN110276444B (zh) 基于卷积神经网络的图像处理方法及装置
CN110428382B (zh) 一种用于移动终端的高效视频增强方法、装置和存储介质
JP7298713B2 (ja) パラメータ最適化装置、パラメータ最適化方法、およびパラメータ最適化プログラム
KR101993085B1 (ko) 심층 학습을 이용하는 의미적 영상 분할 방법
CN110490803B (zh) 一种图像语义分割分块预测的拼接方法、设备和存储介质
CN113971732A (zh) 小目标检测方法、装置、可读存储介质及电子设备
WO2021245942A1 (en) Information processing apparatus, information processing method, and computer readable medium
KR20160133924A (ko) 컨벌루션 연산 장치 및 방법
CN109767446B (zh) 一种实例分割方法及装置、电子设备、存储介质
US9818045B2 (en) Apparatus and method for detecting a feature in an image
CN114580618A (zh) 一种反卷积处理方法、装置、电子设备及介质
KR20120043209A (ko) 윈도우 기반 영상 처리에서 고속으로 윈도우 영역 내 화소 연산을 수행하기 위한 방법 및 장치
KR20220078819A (ko) 딥러닝 연산 수행 방법 및 장치
CN113034366A (zh) 无拼接缝sar图像分割并行加速处理方法
CN112633462A (zh) 卷积神经网络的存储器优化的区块式推论方法及其系统
CN107798651B (zh) 一种提高图像填充效率的方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant