01( ) CSTV18-16.hwp

Similar documents
Ⅱ. Embedded GPU 모바일 프로세서의 발전방향은 저전력 고성능 컴퓨팅이다. 이 러한 목표를 달성하기 위해서 모바일 프로세서 기술은 멀티코 어 형태로 발전해 가고 있다. 예를 들어 NVIDIA의 최신 응용프 로세서인 Tegra3의 경우 쿼드코어 ARM Corte

°í¼®ÁÖ Ãâ·Â

(JBE Vol. 21, No. 1, January 2016) (Regular Paper) 21 1, (JBE Vol. 21, No. 1, January 2016) ISSN 228

09권오설_ok.hwp

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 10, Oct ,,. 0.5 %.., cm mm FR4 (ε r =4.4)

<313120C0AFC0FCC0DA5FBECBB0EDB8AEC1F2C0BB5FC0CCBFEBC7D15FB1E8C0BAC5C25FBCF6C1A42E687770>

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 27(12),

(JBE Vol. 23, No. 2, March 2018) (Special Paper) 23 2, (JBE Vol. 23, No. 2, March 2018) ISSN

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 26(11),

High Resolution Disparity Map Generation Using TOF Depth Camera In this paper, we propose a high-resolution disparity map generation method using a lo

À±½Â¿í Ãâ·Â

디지털포렌식학회 논문양식

<30312DC2F7BCBCB4EBC4C4C7BBC6C32DBED5BACEBAD B1C731C8A3292E687770>

Journal of Educational Innovation Research 2017, Vol. 27, No. 4, pp DOI: A Study on the Opti

10 이지훈KICS hwp

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

<35335FBCDBC7D1C1A42DB8E2B8AEBDBAC5CDC0C720C0FCB1E2C0FB20C6AFBCBA20BAD0BCAE2E687770>

<31325FB1E8B0E6BCBA2E687770>

인문사회과학기술융합학회

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6),

DBPIA-NURIMEDIA

#Ȳ¿ë¼®

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Mar.; 28(3),

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Feb.; 29(2), IS

3 : OpenCL Embedded GPU (Seung Heon Kang et al. : Parallelization of Feature Detection and Panorama Image Generation using OpenCL and Embedded GPU). e

05( ) CPLV12-04.hwp

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6),


THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 25(11),

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 6, Jun Rate). STAP(Space-Time Adaptive Processing)., -

<BFA9BAD02DB0A1BBF3B1A4B0ED28C0CCBCF6B9FC2920B3BBC1F62E706466>

19_9_767.hwp

[Brochure] KOR_TunA

DBPIA-NURIMEDIA

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Mar.; 25(3),

3. 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발.hwp

06_ÀÌÀçÈÆ¿Ü0926

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

Parallel Computation of Neural Network

Ch 1 머신러닝 개요.pptx

01이국세_ok.hwp

1 : HEVC Rough Mode Decision (Ji Hun Jang et al.: Down Sampling for Fast Rough Mode Decision for a Hardware-based HEVC Intra-frame encoder) (Special P

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

[ReadyToCameral]RUF¹öÆÛ(CSTA02-29).hwp

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 26(12),

Æ÷Àå½Ã¼³94š

08김현휘_ok.hwp

룩업테이블기반비선형렌즈플레어실시간렌더링방법 (Real-Time Nonlinear Lens-Flare Rendering Method Based on Look-Up Table) 조성훈 정유나 이성길 (Sunghun Jo) (Yuna Jeong) (Sungkil Lee) 요

기관별 공동 Template

04-다시_고속철도61~80p

<4D F736F F D20B1E2C8B9BDC3B8AEC1EE2DC0E5C7F5>

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Sep.; 30(9),


À¯Çõ Ãâ·Â

ePapyrus PDF Document

WIDIN - Toolholding Catalogue.pdf

DBPIA-NURIMEDIA

07.045~051(D04_신상욱).fm

DBPIA-NURIMEDIA

ISO17025.PDF

슬라이드 1

09È«¼®¿µ 5~152s

정보기술응용학회 발표

DBPIA-NURIMEDIA

(JBE Vol. 23, No. 2, March 2018) (Special Paper) 23 2, (JBE Vol. 23, No. 2, March 2018) ISSN

04서종철fig.6(121~131)ok

Introduction to Deep learning

04_이근원_21~27.hwp

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

6.24-9년 6월

0125_ 워크샵 발표자료_완성.key

04_오픈지엘API.key

Journal of Educational Innovation Research 2018, Vol. 28, No. 1, pp DOI: * A Analysis of

28 저전력복합스위칭기반의 0.16mm 2 12b 30MS/s 0.18um CMOS SAR ADC 신희욱외 Ⅰ. 서론 Ⅱ. 제안하는 SAR ADC 구조및회로설계 1. 제안하는 SAR ADC의전체구조

00내지1번2번

<333820B1E8C8AFBFEB2D5A B8A620C0CCBFEBC7D120BDC7BFDC20C0A7C4A1C3DFC1A42E687770>

<30382E20B1C7BCF8C0E720C6EDC1FD5FC3D6C1BEBABB2E687770>


14.531~539(08-037).fm

歯kjmh2004v13n1.PDF

김경재 안현철 지능정보연구제 17 권제 4 호 2011 년 12 월

(JBE Vol. 20, No. 6, November 2015) (Regular Paper) 20 6, (JBE Vol. 20, No. 6, November 2015) ISSN

, N-. N- DLNA(Digital Living Network Alliance).,. DLNA DLNA. DLNA,, UPnP, IPv4, HTTP DLNA. DLNA, DLNA [1]. DLNA DLNA DLNA., [2]. DLNA UPnP. DLNA DLNA.

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

03이승호_ok.hwp

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jan.; 26(1),

Microsoft PowerPoint - ch03ysk2012.ppt [호환 모드]


DE1-SoC Board

1. 서 론

APOGEE Insight_KR_Base_3P11

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

<30312DC1A4BAB8C5EBBDC5C7E0C1A4B9D7C1A4C3A52DC1A4BFB5C3B62E687770>

부문별 에너지원 수요의 변동특성 및 공통변동에 미치는 거시적 요인들의 영향력 분석

Chap 6: Graphs

(JBE Vol. 23, No. 5, September 2018) (Regular Paper) 23 5, (JBE Vol. 23, No. 5, September 2018) ISSN

Electronics and Telecommunications Trends 인공지능을이용한 3D 콘텐츠기술동향및향후전망 Recent Trends and Prospects of 3D Content Using Artificial Intelligence Technology

Transcription:

ISSN 2383-630X(Print) / ISSN 2383-6296(Online) Journal of KIISE, Vol. 46, No. 3, pp. 219-227, 2019. 3 https://doi.org/10.5626/jok.2019.46.3.219 ARM 기반 IoT 장치에서효율적인딥러닝수행을위한 BLAS 및신경망라이브러리의성능및에너지비교 (Performance and Energy Comparison of Different BLAS and Neural Network Libraries for Efficient Deep Learning Inference on ARM-based IoT Devices) 이하윤 신동군 (Hayun Lee) (Dongkun Shin) 요약기존에 IoT 장치에서딥러닝을수행하기위해주로클라우드컴퓨팅을사용했다. 그러나클라우드컴퓨팅을사용할경우연결을보장할수없고, 통신을위한에너지소모, 그리고보안에대한취약성이문제가된다. 이와같은문제점을해결하기위해최근 IoT 장치내에서딥러닝을수행하기위한시도가진행되고있다. 이시도들은주로 IoT 장치를위한연산량이적은딥러닝모델또는압축기법등을제안하지만, 실제 IoT 장치에서수행될때의영향에대한분석이부족했다. IoT 장치마다연산장치의구성과지원되는라이브러리가다르기때문에, 최적의딥러닝수행을위해각 IoT 장치에서다양한수행환경에대한분석이필요하다. 본논문에서는다양한하드웨어구성을가진 IoT 장치에서수행환경에따른성능및에너지를측정하고분석한다. 또한, 적절한라이브러리를사용하는것만으로도속도와에너지효율이최대 9.43 배, 26.78 배까지상승하는것을보여준다. 키워드 : IoT, 딥러닝, 딥러닝라이브러리, 딥러닝프로파일링, GPU 가속 Abstract Cloud computing is generally used to perform deep learning on IoT devices. However, its application is associated with limitations such as connection instability, energy consumption for communication, and security vulnerabilities. To solve such problems, recent attempts at performing deep learning within IoT devices have occurred. These attempts mainly suggest either lightweight deep learning models or compression techniques concerning IoT devices, but they lack analysis of the effect when it is performed in actual IoT devices. Since each IoT device has different configuration of processing units and supported libraries, it is necessary to analyze various execution environments in each IoT device in order to perform optimized deep learning. In this study, performance and energy of IoT devices with various hardware configurations were measured and analyzed according to the application of the deep learning model, library, and compression technique. It was established that utilizing the appropriate libraries improve both speed and energy efficiency up to 13.3 times and 48.5 times, respectively. Keywords: IoT, deep learning, deep learning library, deep learning profiling, GPU-based acceleration 이논문은 2019년도정부 ( 과학기술정보통신부 ) 의재원으로정보통신기획평가원의지원을받아수행된연구임 (No.IITP-2017-0-00914, 지능형 IoT 장치용소프트웨어프레임워크 ) 이논문은 2018 한국컴퓨터종합학술대회에서 ARM 기반 IoT 장치에서효율적인딥러닝수행을위한 BLAS 및신경망라이브러리의성능및에너지비교 의제목으로발표된논문을확장한것임 학생회원 : 성균관대학교전자전기컴퓨터공학과 lhy920806@gmail.com 종신회원 : 성균관대학교전자전기컴퓨터공학과교수 (Sungkyunkwan Univ.) dongkun@skku.edu (Corresponding author 임 ) 논문접수 : 2018년 8월 22일 (Received 22 August 2018) 논문수정 : 2018년 11월 26일 (Revised 26 November 2018) 심사완료 : 2018년 12월 4일 (Accepted 4 December 2018) CopyrightC2019 한국정보과학회ː 개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지제46권제3호 (2019. 3)

220 정보과학회논문지제 46 권제 3 호 (2019. 3) 1. 서론딥러닝은이미지분류, 자연어처리, 자율주행차등다양한분야에서우수한성능을보인다. 최근연구에서고성능 GPU 또는가속기에서딥러닝수행을가속하기위해많은알고리즘및하드웨어구조가제안되었다. 그러나기존 IoT 장치에서딥러닝을가속하기위한연구는상대적으로적다. 이전에는 IoT 장치에서딥러닝응용을수행하기위해주로클라우드컴퓨팅을사용했다. 그러나클라우드컴퓨팅을사용하게되면세가지문제점이존재한다. 첫번째, 불안정한통신환경과예측불가능한응답시간으로인해서비스제공에차질이발생할수있다. 두번째, 통신을위해필요한에너지가 IoT 장치만으로수행할때보다클수있다 [1]. 마지막으로, 클라우드로데이터를올려야하므로보안에취약하다. 이와같은문제점들을해결하기위해 IoT 장치에서딥러닝을수행할필요가있다. IoT 장치는제한된전력과낮은계산성능을가지고있다. 이전연구들에서는 IoT 장치에서딥러닝을수행하기위하여최적화된네트워크모델 [2,3] 과네트워크압축기법등이제안되었다. 이들은모두딥러닝수행을위한모델의크기와곱셈연산의수를줄이는것에초점을맞추었다. 일반적으로 IoT 장치에서딥러닝모델을수행하기위해 Caffe, TensorFlow와같은딥러닝프레임워크를사용한다. 이러한딥러닝프레임워크들은 CPU 또는 GPU에서딥러닝수행을가속하기위해각장치에최적화된 BLAS(Basic Linear Algebra Subprograms) 또는신경망라이브러리를사용한다. 그러나딥러닝수행을위해사용할수있는 BLAS 및신경망라이브러리는 IoT 장치에따라다르다. 또한같은구조의네트워크모델을사용하더라도, 수행하는라이브러리에따라수행시간과에너지가달라진다. 그러므로효율적인딥러닝수행을위해각 IoT 장치에서다양한수행환경에대한분석이필요하다. 그러나이전연구에서는이와같은분석이제대로이루어지지않았다. 본논문에서는다양한 IoT 장치, 딥러닝모델, 라이브러리에대해수행시간및에너지를측정한다. 측정에사용되는장치들은표 1과같이다양한하드웨어구성과특성을갖는다. 이후장치-라이브러리별성능분석을통해기존대비속도, 에너지효율을비교및분석한다. 2장에서는본논문과관련된연구들을소개한다. 3장에서는 CNN 및라이브러리와관련된배경지식을설명한다. 4장에서는실험환경및실험결과를설명하고, 5 장에서는결론을제시한다. 표 1 다양한하드웨어구성및지원을가진 IoT 장치들 Table 1 IoT devices with various hardware configurations and support CPU GPU Raspberry Pi 3 (PI3) Cortex-A53 (quad core) ODROID XU3 (XU3) Cortex-A15 (quad core) Cortex-A7 (quad core) Mali T-628 MP6 Jetson TX2 (TX2) Cortex-A57 (quad core) Denver2 (dual core) 256-core Pascal NEON OpenCL CUDA 2. 관련연구 CNN(Convolutional Neural Network) 은이미지분류및센서데이터처리와같은작업에서우수한성능을보여준다. 그러나초기 CNN 모델은메모리요구량과연산량이많아제한된자원을가진 IoT 장치에서사용하기에적합하지않았다. 이를해결하기위해 Squeeze Net[2], MobileNet[3] 과같은경량 CNN 모델이제안되었다. 이들은각각 fire 모듈과 depthwise separable convolution을사용해이전 CNN 모델의정확도를유지하면서도연산량과모델의크기를크게줄였다. 이전부터서로다른 BLAS 라이브러리를비교하는연구는존재했다. CPU와 GPU에서 CLBlast, clblas, cublas를사용하여 BLAS 라이브러리의수행시간을측정한연구의경우, 다양한아키텍처에따라각각의라이브러리의성능을보여준다 [4]. 또한 CPU와 GPU에서각각 MKL, cublas를사용하여수행시간을분석한연구도있다 [5]. 그러나이들은세가지한계점이존재한다. 첫번째, CLBlast와 clblas 실험을제외하고는 ARM 기반 IoT 장치에서의 BLAS 비교를수행하지않았다. 두번째, 수행하는동안소모하는에너지에대한고려가되어있지않다. 세번째, 실제 BLAS 라이브러리를사용하여딥러닝모델을수행하는환경에대한고려가없었다. 다양한장치에서딥러닝모델의수행을비교하는연구도있었다 [6]. 이연구에서는 Snapdragon 800, Tegra K1, Edison에대해딥러닝의수행시간과에너지소모량을측정하였다. 그러나이논문은두가지한계점이있다. 첫번째, 다양한라이브러리를고려하지않고딥러닝수행환경을고정하였다. 두번째, Tegra K1을제외한나머지장치들은라이브러리지원이없어직접구현하여실험하였다. 본논문에서는앞서언급된한계점들을해결하기위

ARM 기반 IoT 장치에서효율적인딥러닝수행을위한 BLAS 및신경망라이브러리의성능및에너지비교 221 해 ARM 기반 IoT 장치에서사용될수있는다양한 BLAS 및신경망라이브러리에대하여딥러닝모델수행단위로수행시간과에너지소모량을비교하여결과를분석한다. 3. 배경 3.1 CNN(Convolutional Neural Network) CNN은 convolution 레이어를사용하는신경망을의미한다. CNN은사진, 음성과같이지역성 (locality) 이있는데이터를처리함에있어좋은성능을보여주기때문에 RNN(Recurrent Neural Network) 와함께딥러닝에서많이사용되고있다. Convolution 레이어의배치크기가 1이라가정할때, 입력데이터 I C H W 와해당레이어의커널 K N C K h K w 를통해출력데이터 O N H W 를만든다. 이때, C, H, W 는각각입력데이터의채널, 높이, 너비를나타내고, N, K h, K w 는각각커널의개수, 높이, 너비를나타낸다. Convolution 레이어의연산을수식으로나타내면다음과같다. (1) 초기에제안되었던 CNN 모델은주로이미지의특징을추출하고, 분류하기위해 convolution 레이어와 fully-connected 레이어를같이사용하였다. 그러나, fully-connected 레이어를사용할경우두가지문제점이존재한다. 첫번째, convolution 레이어와비교하여많은수의파라미터가필요하다. 두번째, 입력데이터의크기가고정된다. 이러한문제를해결하기위해최근 fully-connected 레이어를사용하지않은 CNN 모델들이많이나타나고있다 [2,3]. 이모델들은전체를 convolution 레이어로구성하고, 마지막 convolution 레이어이후에 global average pooling을통해 fully-connected 레이어를대체한다. 일반적으로 CNN 모델은상당히많은수의파라미터와곱셈연산을필요로하기때문에 IoT 장치와같이자원이제한된모바일환경에적용시키기어려웠다. 그러나최근연구에서 SqueezeNet, MobileNet과같이모바일환경을위한모델들이제안되어, 적은연산으로기존의모델들과근접한성능을내는것이가능하게되었다. SqueezeNet과 MobileNet은모두 fully-connected 레이어가존재하지않으며, 그림 1과같은모듈을기반으로구성된다. 그림 1(a) 는 SqueezeNet에서사용되는 fire 모듈이다. Fire 모듈은 squeeze 레이어와 expand 레이어로구성 (a) Fire Module (b) Depthwise Separable Convolution 그림 1 다양한 CNN 모듈 Fig. 1 Various CNN modules 된다. Squeeze 레이어에서는 1x1 convolution을통해입력데이터보다적은채널수를가지는중간데이터를만듦으로써이후 convolution 수행에필요한연산의수를줄인다. Expand 레이어에서는중간데이터를 1x1, 3x3 convolution을통해결과데이터를증가시킨다. 그림 1(b) 는 MobileNet 에서사용되는 DSC (Depthwise Separable Convolution) 이다. DSC는 depthwise convolution과 pointwise convolution으로구성된다. Depthwise convolution은각채널마다 convolution을수행하여연산량을줄인다. Pointwise convolution은 1x1 convolution 과같으며 depthwise convolution의결과들을합치기위해수행한다. DSC를사용할경우기존과비교하여연산량은다음과같은감소를얻게된다. (2) 위의식에서 N은 depthwise convolution의커널의크기인 K h, K w 보다상대적으로크기때문에무시가능하다. 즉, DSC는 depthwise convolution의커널을 3x3 으로사용하였을때, 기존의 convolution과비교하여연산량이약 9배감소하게된다. 과거에는 convolution 레이어연산자체를최적화하는시도가거의없었기때문에, convolution 레이어를구현하기위해주로최적화가잘되어있는 BLAS 라이브러리의 GEMM(GEneral Matrix Multiplication) 연산을사용하였다. 그림 2와같이입력데이터에 im2col 연산을수행한후 GEMM을수행하면 convolution과같은결과를얻을수있다. 최근에딥러닝을위한신경망라이브러리들이개발되면서 BLAS 라이브러리를사용하여수행한결과와비교하여더빠른수행시간을제공하기도한다.

222 정보과학회논문지제 46 권제 3 호 (2019. 3) 그림 2 GEMM을사용한 convolution 연산 Fig. 2 Convolution operation using GEMM 3.2 BLAS / 신경망라이브러리그림 3은본논문에서딥러닝모델수행을실시한소프트웨어스택을보여준다. 굵은상자는 BLAS 및신경망라이브러리를나타내며, 이름아래의괄호는본논문에서사용된버전을의미한다. 라이브러리마다지원하는연산장치가다르기때문에, 각장치에맞는라이브러리를사용해야한다. 딥러닝모델수행시 ArmCL[7] 과 TVM[8] 을사용하는경우를제외하고는딥러닝프레임워크로써 Caffe[9] 를사용했다. 또한그림 3에서의 Caffe와 Caffe opencl 은각각 github에서 master 브랜치 (commit: 8645207) 와 opencl 브랜치 (commit: 74312cf) 를의미한다. 그림 3 딥러닝모델수행을위한소프트웨어스택 Fig. 3 Software stack for deep learning model execution 3.2.1 BLAS 라이브러리 BLAS는벡터와매트릭스연산을수행하기위해최적화된함수를제공하는라이브러리이다. 레벨 1부터 3까지각각벡터-벡터, 벡터-매트릭스, 매트릭스-매트릭스연산을수행하는함수가제공된다. BLAS는오랜시간다양한하드웨어에맞게최적화되어왔기때문에딥러닝수행을위해서도많이사용된다. 예를들어, Caffe는 im2col 함수와함께 BLAS 라이브러리를사용하여 convolution 레이어를구현한다. 대표적인 BLAS 라이브러리에는 OpenBLAS[10], CLBlast[4], cublas가있다. OpenBLAS는다양한 CPU 특징들에맞게최적화된 BLAS 라이브러리이며, 멀티쓰레드를통한가속을지원한다. 본논문에서타겟으로하고있는 ARMv7, ARMv8 CPU에대해서도최적화가되어있으며, ARMv8 부터 NEON 을지원 (ARMv7 의경우성능상의문제로지원안함 ) 한다. CLBlast는 OpenCL을지원하는 CPU 및GPU에최적화된 BLAS 라이브러리이다. CLBlast는다양한장치에대해최적화가가능하도록튜닝할수있는파라미터를제공한다. XU3의경우 CLBlast를사용하여 GPU 가속이가능하지만, TX2에서는사용할수없다. 그이유는 TX2의 GPU가 OpenCL을지원하지않기때문이다. cublas 는 CUDA를지원하는 GPU에최적화된 BLAS 라이브러리이다. cublas를통해 TX2에내장된 GPU 를가속할수있다. 3.3.2 신경망라이브러리신경망라이브러리는 BLAS 라이브러리와다르게딥러닝워크로드에최적화된함수를제공한다. 예를들어, 신경망라이브러리는 convolution 레이어를수행하기위해 GEMM 뿐만이아니라 direct convolution, FFT, Winograd 등 convolution을빠르게수행하기위한다양한알고리즘들을제공한다. 대표적인신경망라이브러리에는 ArmCL(ARM Compute Library)[7], cudnn이있다. ArmCL은 ARM CPU와 GPU에최적화된신경망라이브러리이다. ARM CPU와 GPU에대하여각각 NEON, OpenCL로가속을수행한다. 또한, OpenCL로가속할경우 CLTuner를통해최적화된 OpenCL 커널및워크그룹크기를찾아준다. ArmCL은 Caffe와같은딥러닝프레임워크없이딥러닝수행이가능하며, ArmNN을사용할경우 Caffe 또는 TensorFlow 모델을 ArmCL을사용하여딥러닝을수행할수있다. cudnn은 CUDA를지원하는 GPU에최적화된신경망라이브러리이다. ArmCL과유사하게레이어별로 API를제공한다. 3.3.3 TVM TVM[8] 은 CPU, GPU, FPGA 등다양한장치에대한최적화된딥러닝수행코드를생성하는딥러닝컴파일러스택이다. TVM 스택은계산그래프최적화 (computational graph optimization) 와텐서연산스케줄링 (tensor operation scheduling) 을통해코드를생성한다. TVM 버전 0.4에서 AUTOTVM 모듈이추가되었으며, 해당모듈을통해스케줄링공간상의여러경우의수를시도하여최적의수행코드를찾는다. 해당버전까지는 ARM CPU에대해서만지원이되고, 버전 0.5부터 OpenCL과 CUDA를지원할예정이다. 4. 실험 4.1 실험환경실험을위해표 1에서언급된세가지장치와그림 3 에있는여섯가지라이브러리를사용하였다. 라이브러

ARM 기반 IoT 장치에서효율적인딥러닝수행을위한 BLAS 및신경망라이브러리의성능및에너지비교 223 리마다지원하는장치가다르기때문에, 각장치에맞는라이브러리만사용하여실험을진행하였다. 전력측정을위해 PI3에서는 Monsoon Power Monitor 를사용하였고, XU3와 TX2에서는내장된 power monitor 를사용하였다. OpenBLAS의스레드개수는모두 4개로통일하였고, TX2의 Denver2 CPU는활성화하지않은상태에서실험을진행하였다. CNN 실험을위해 SqueezeNet(Sq) v1.1과 Mobile-Net (Mo) v1을사용하였다. 4.2 GEMM 성능비교그림 4는매트릭스크기에따라각장치 -라이브러리별 SGEMM(Single precision floating GEMM) 연산속도를보여준다. m k, k n 크기를갖는매트릭스두개에대하여 GEMM 연산을한다고가정했을때, FLOPS 산출방식은다음과같다. (3) 그림 4에서, 모든라이브러리는매트릭스크기가커짐에따라연산속도도같이증가한다. OpenBLAS는매트릭스크기가작을때에는빠르지만, 매트릭스크기가커짐에따라속도향상이크지않음을볼수있다. 또한, CLBlast 실험결과를제외하면 GPU로수행하는것이 CPU로수행하는것보다빠른성능을보여준다. 특히, TX2에서 cublas를사용할때다른라이브러리와비교하여독보적으로빠른성능을보인다. 4.3 CNN 수행성능비교그림 5와 6은각각장치-라이브러리별 CNN 수행에대한수행시간및에너지효율과전력소모를보여준다. 그림 4 장치 - 라이브러리별 SGEMM 수행성능비교 Fig. 4 Comparison of devices and libraries in SGEMM execution performance 그림 5 장치 - 라이브러리별 CNN 모델수행시간및에너지효율비교 Fig. 5 Comparison of devices and libraries in CNN model execution time and energy efficiency

224 정보과학회논문지제 46 권제 3 호 (2019. 3) (a) Sq 그림 7 Caffe 프레임워크의 Convolution 구현 Fig. 7 Convolution implementation in Caffe framework (b) Mo 그림 6 장치-라이브러리별 CNN 모델수행에따른전력소모 Fig. 6 Comparison of power consumption according to CNN model execution for different device-library pairs 그림 5에서흰색심볼은 CPU, 검은색심볼은 GPU에서수행되었음을의미한다. ArmCL(cl) 과 TVM(cpu) 는모두튜닝을수행한후실행한결과이고, 그외의라이브러리는튜닝이지원되지않는다. 그림 6의 Big/Little은각각 XU3의 A15/A7 CPU의전력소모를나타낸다. XU3-Mo의 CLBlast 실험은메모리부족으로실행불가능하여제외하였다. 그림 5에서 PI3는 Sq와 Mo의라이브러리수행시간순서가같고, XU3도마찬가지이다. 그러나 TX2에서는 Sq와 Mo의라이브러리수행시간순서가다르다. TX2에서 Sq의라이브러리수행시간순서는 cudnn, ArmCL (neon), cublas이지만, Mo일때수행시간순서는 ArmCL(neon), cublas 그리고 cudnn으로 ArmCL (neon) 이가장빠른속도를보이고, 에너지효율도 ArmCL(neon) 이 cublas와 cudnn보다좋다. cudnn 은 Winograd[11] 와같은빠른 convolution 알고리즘과그외에도최적화된커널들을수행할수있기때문에보통 cublas로수행하는것보다빠르다. 그러나 cudnn 이 Mo에서이들중가장느린이유는 Mo에서사용하는 depthwise convolution을 Caffe에서비효율적으로수행하기때문이다. 그림 7은 Caffe의 convolution 구현을간단하게나타낸것이다. Caffe에서는 depthwise convolution을수행하기위해그룹의개수 G가입력의채널수와같은 convolution을수행한다. Caffe의구현상 cublas와 cudnn 버전모두그룹의수만큼함수를반복호출하게된다. 즉, 하나의 convolution을여러개의 CUDA 커널로나누어수행하면서연산을수행하는데이터의크기가작아지게되므로그림 4와같이전체적으로연산수행속도가감소한다. 그러나 ArmCL(neon) 의경우 depthwise convolution를하나의커널로수행할수있도록구현되어있기때문에둘과비교하여좋은성능을보여준다. 또한실험에사용된모든장치에서 OpenBLAS 대신 ArmCL(neon) 또는 TVM(cpu) 를사용했을때, Sq보다 Mo에서수행시간향상이더큰이유도앞에서말한 Caffe의구현때문이다. 추가적으로 cudnn 은입력의채널이 1인 convolution을수행할경우 GEMV(Matrix-Vector) 연산을수행하므로 cublas와유사한성능을내게된다. 그림 5에서 GPU로수행했을경우 TX2-Mo 실험을제외했을때대체적으로수행시간과상관없이 CPU 수행과비교하여에너지효율이좋다. 이는그림 5와 6을통해두가지분석이가능하다. 첫번째, XU3는 GPU의전력소모가 CPU 전력소모와비교하여최소 19.4% 에서최대 41.5% 밖에되지않기때문이다. 단, CLBlast 는전력소모자체는적으나, 수행시간이느리기때문에에너지효율이좋지않다. 두번째, TX2의경우 CPU 와동일한수행시간이걸리더라도전력소모가낮거나, TVM(gpu) 와같이전력소모가크더라도수행속도가매우빠르기때문이다. 단, Mo에서 cudnn과 cublas 는 CPU보다수행시간도느리고, 전력소모도비슷하기때문에에너지효율이낮다.

ARM 기반 IoT 장치에서효율적인딥러닝수행을위한 BLAS 및신경망라이브러리의성능및에너지비교 225 마지막으로, XU3에서 TVM(gpu) 가 TVM(cpu) 보다수행시간이작은데이는현재 TVM이 ARM CPU에대해서만 auto-tuner를지원하기때문이다. TVM의 auto-tuner는데이터크기에최적화된파라미터설정을찾아최적의커널코드를생성하므로높은성능향상을보일수있다. 이에반해 ArmCL(cl) 에서도튜닝은지원하지만이미구현되어있는커널코드중에서최적의워크그룹크기를찾는것이기때문에 TVM과차이가있다. 4.4 Half-precision float-point 연산기존의 single-precision float-point 연산대신 halfprecision float-point를사용할경우cnn의수행시간을더단축시킬수있다. 그림 8은 XU3에서딥러닝을수행한결과와 ArmCL(cl)-fp16 의수행결과를비교한다. XU3에내장되어있는 Mali T-628은 shader core 안에두개의 arithmetic 파이프라인을가지고있다. Arithmetic 파이프라인은 128-bit quad-word 레지스터를가지고있는 SIMD (Single Instruction Multiple Data) 벡터프로세싱엔진이다. SIMD를사용할경우 FP32와 FP16은각각 4개, 8개의연산을동시에처리할수있다. 그러므로 FP16을사용할경우 FP32 성능과비교하여최대 2배증가할수있다. 그러나그림 8과같이 ArmCL(cl)-fp16은 ArmCL(cl) 과비교하여수행시간이약 1.5~1.57배증가했다. 2배가되지않았던이유에대해서는 Mali GPU 프로파일링을통해분석하도록한다. 그림 9 이미지한장처리당 GPU 명령어개수 Fig. 9 Number of GPU instructions per one image processing 그림 10 XU3 캐시 hit rate Fig. 10 XU3 cache hit rate 그림 8 XU3-FP16 수행시간비교 Fig. 8 Comparison of XU3-FP16 execution time 4.5 Mali GPU 프로파일링이번실험에서는 ARM Streamline 도구를사용하여 Mali GPU 프로파일링을실시하였다. 그림 9는 XU3에서 Sq와 Mo를수행하였을때이미지한장을처리하기위해발생된 GPU 명령어개수를보여준다. 그래프의 A 와 LS는각각 Arithmetic과 Load/Store를의미한다. 그림 8과 9를보면 A 명령어와 LS명령어가적을수록수행시간이빠르다는것을알수있다. 그림 10과 11은각각 XU3에서 Sq와 Mo 수행시캐시 hit rate와외부버스 ( 메인메모리 ) 로부터읽고쓰는양을보여준다. LSC는 LS 캐시를의미하며데이터를읽고쓰는역할을하는 LS 파이프라인의 L1 캐시이다. L2C는 L2 캐시를의미하며 LS 파이프라인을포함하고있는 shader core의캐시이다. XU3는 ArmCL(cl) 을사용할때 LSC 읽기와 L2C 쓰기의 hit rate가높고, LSC 쓰기와 L2C 읽기의 hit rate가낮음을알수있다. 이를통해 ArmCL(cl) 이 TVM, CLBlast와비교하여 L2 캐시 hit rate는낮지만메모리접근을최적화하여구현했기때문에 L2 캐시접근자체가낮으므로그림 11처럼메인메모리로부터읽고쓰는양이적음을알수있다. FP16 (ArmCL(cl)-fp16) 이 FP32 (ArmCL(cl)) 와비교하여시간이 2배로줄지않은이유는다음과같다. 첫

226 정보과학회논문지제 46 권제 3 호 (2019. 3) 해자신의하드웨어에맞는최적의라이브러리를사용하는것만으로도속도와에너지효율이최대 13.3배, 48.5배까지상승하는것을보여준다. References 그림 11 XU3 외부버스읽기 / 쓰기 Fig. 11 XU3 external bus read/write 번째, 그림 9에서알수있듯이 FP16의 A 명령어가 FP32보다 2배가아닌 1.65~1.77배적은것을확인할수있다. 왜냐하면 2배의데이터를동시에연산한다고해도데이터의끝부분에서 SIMD 공간을충분히활용하지못하는경우가존재하기때문이다. 두번째, FP16의 LS 캐시의 hit rate가 FP32의것보다낮다는것은 L2캐시접근이 2배로줄어들지않는것을의미하기때문이다. 4.6 성능향상비교표 2는그림 5와 7의결과를바탕으로수행시간과에너지소모량측면에서의향상결과를보여준다. 베이스라인은모두 Caffe 프레임워크에서 OpenBLAS 또는 cudnn을사용한것으로가정하였다. 이때, 앞선실험의결과를바탕으로각장치마다속도향상이가장높은라이브러리를선택하였다. TX2에서 Sq를수행할때를제외하고는속도와에너지효율이모두상승하였다. 표 2 최적화된라이브러리를통한성능향상 Table 2 Improved performance with optimized libraries Device RPI3 XU3 TX2 Model Sq Mo Sq Mo Sq Mo Baseline Caffe + OpenBLAS / cudnn Optimized TVM(cpu) ArmCL(cl)-fp16 TVM(gpu) Speed up 2.7x 4.3x 7.0x 13.3x 1.6x 4.7x Energy 2.5x 4.2x 26.2x 48.5x 0.6x 3.1x 5. 결론본논문은딥러닝을수행하기위한다양한라이브러리를서로다른하드웨어조건을갖춘 IoT 장치에서속도와에너지를비교및분석한다. 또한, 실험결과를통 [1] Y. Kang, J. Hauswald, C. Gao, A. Rovinski, T. Mudge, J. Mars, L. Tang, "Neurosurgeon: Collaborative intelligence between the cloud and mobile edge," Proc. of the 23nd International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 615-629, 2017. [2] F. N. Iandola, S. Han, M. W. Moskewicz, K. Ashraf, W. J. Dally, K. Keutzer, "SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and< 0.5 MB model size," CoRR, abs/1602.07360, 2016. [3] A. G. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, H. Adam, "Mobilenets: Efficient convolutional neural networks for mobile vision applications," CoRR, abs/1704.04861, 2017. [4] C. Nugteren, "CLBLast: A tuned opencl BLAS library," Proc. of the International Workshop on OpenCL, Article No. 5, 2018. [5] F. Li, Y. Ye, Z. Tian, and X. Zhang, "CPU versus GPU: which can perform matrix computation fasterperformance comparison for basic linear algebra subprograms," Neural Computing and Applications, pp. 1-13, 2018. [6] N. D. Lane, S. Bhattacharya, P. Georgiev, C. Forlivesi, F. Kawsar, "An early resource characterization of deep learning on wearables, smartphones and internet-of-things devices," Proc. of the 2015 International Workshop on Internet of Things towards Applications, pp. 7-12, 2015. [7] ARM. ARM Compute Library [Online]. Available https://github.com/arm-software/computelibrary (downloaded 2018, Dec. 11) [8] T. Chen, T. Moreau, Z. Jiang, L. Zheng, E. Yan, M. Cowan, H. Shen, L. Wang, Y. Hu, L. Ceze, C. Guestrin, A. Krishnamurthy, "TVM: End-to-End Optimization Stack for Deep Learning," CoRR, abs/1802.04799, 2018. [9] The Berkeley Vision and Learning Center. Caffe [Online]. Available https://github.com/bvlc/caffe (downloaded 2018, Dec. 11) [10] Zhang Xianyi. OpenBLAS [Online]. Available https:// github.com/xianyi/openblas (downloaded 2018, Dec. 11) [11] A. Lavin, S. Gray, "Fast algorithms for convolutional neural networks," Proc. of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 4013-4021, 2016.

ARM 기반 IoT 장치에서효율적인딥러닝수행을위한 BLAS 및신경망라이브러리의성능및에너지비교 227 이하윤 2017 년성균관대학교컴퓨터공학과 ( 학사 ) 2017 년 ~ 현재성균관대학교전자전기컴퓨터공학과석박통합과정. 관심분야는임베디드시스템, IoT 프레임워크, 엣지컴퓨팅 신동군 1994년서울대학교계산통계학과 ( 학사 ) 2000년서울대학교전산과학과 ( 석사 ). 2004년서울대학교컴퓨터공학부 ( 박사 ). 2004년~ 2007년삼성전자소프트웨어책임연구원 2007년~현재성균관대학교소프트웨어대학부교수. 관심분야는임베디드시스템, 실시간시스템, 저전력시스템