KR102298766B1 - 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법 - Google Patents

타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법 Download PDF

Info

Publication number
KR102298766B1
KR102298766B1 KR1020210019623A KR20210019623A KR102298766B1 KR 102298766 B1 KR102298766 B1 KR 102298766B1 KR 1020210019623 A KR1020210019623 A KR 1020210019623A KR 20210019623 A KR20210019623 A KR 20210019623A KR 102298766 B1 KR102298766 B1 KR 102298766B1
Authority
KR
South Korea
Prior art keywords
deep learning
learning model
information
target
target device
Prior art date
Application number
KR1020210019623A
Other languages
English (en)
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 KR1020210019623A priority Critical patent/KR102298766B1/ko
Application granted granted Critical
Publication of KR102298766B1 publication Critical patent/KR102298766B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)

Abstract

타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법이 개시되며, 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 방법은, 대상 딥러닝 모델에 대한 특성 정보 및 타겟 디바이스의 리소스 정보를 수신하는 단계 및 상기 특성 정보 및 상기 리소스 정보에 기초하여 상기 타겟 디바이스에서 상기 대상 딥러닝 모델을 구현하기 위한 최적 API(Application Programming Interface) 정보를 생성하는 단계를 포함할 수 있다.

Description

타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법{APPARATUS AND METHOD FOR CONVERTING DEEP LEARNING MODEL FOR TARGET DEVICE}
본원은 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법에 관한 것이다. 예를 들면, 본원은 타겟 디바이스에 대한 원-스텝(One-Step) 딥러닝 모델 변환 기법에 관한 것이다.
최근 들어 임베디드 디바이스에 새로운 기능을 추가(탑재)하는 것에 대한 요구가 증가하고, 임베디드 디바이스에 탑재되는 다양한 기능 별로 빠른 응답의 필요성이 커짐에 따라 엣지 컴퓨팅의 필요성이 대두되고 있다.
특히 보안, 운송, 제조, 의료, 자율주행, 스마트 홈 등의 분야에서 임베디드 디바이스에 인공지능(AI) 기반의 기능 추가가 요구되고 있으며, 사물 인터넷(IoT)에 인공지능(AI) 기반의 기능을 추가하기 위한 새로운 시장(사물 인터넷 AI 응용시장, AI-IoT)이 거대하게 형성되고 있다.
그러나, 이러한 새로운 시장 창출의 기회가 커지는 측면과는 다르게, IoT 장치 등 임베디드 디바이스에 탑재하기 위한 인공지능(AI) 기반의 응용 프로그램을 개발하기 위한 적절한 개발 도구가 현재까지 존재하지 않는다는 문제가 있다.
따라서, 임베디드 디바이스를 위한 AI 기반 프로그램의 개발 효율성은 여전히 낮으며, 관련 분야의 발전을 저해하는 가장 큰 병목 현상으로 평가되고 있다. 특히 기존에 도입된 AI용 개발 도구는 주로 서버 또는 클라우드 플랫폼 개발용으로 설계되어 있으며, IoT 응용에 맞는 AI 개발 도구는 IoT의 하드웨어적 제약에 의해 미비한 실정이다.
즉, 종래에 개발된 AI 개발 도구를 그대로 활용하여 IoT 장치에 최적화된 AI 응용 프로그램을 개발하기에는 IoT 장치에 탑재된 리소스 성능이 부족하고, IoT 장치의 프로세서 구조, 메모리 구조, 소프트웨어 환경 등 많은 부분에서 제약이 존재하기 때문에 쉽게 개발이 이루어지지 못하고 있다.
또한 임베디드(IoT) AI 개발도구도 IoT에 사용하기에 여전히 어려움을 가지고 있는데, 특히 제한된 프로세스의 성능, 메모리의 한계 등을 극복하고 AI 기능을 IoT에 탑재하기 위해서는 다양한 최적화 과정을 거쳐야 하나, 기존에 도입된 신경망 모델 압축 기법, 프루닝(Pruning) 기법 등의 최적화 과정을 적용하더라도 항상 최적의 동작을 보증하는 것은 아니라는 한계가 있다.
본원의 배경이 되는 기술은 한국등록특허공보 제10-2086815호에 개시되어 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, IoT 디바이스 등 임베디드 환경에서 구동하는 타겟 디바이스에 대한 맞춤형 최적화를 통해 소정의 딥러닝 모델을 구현하기 위한 최적의 사용자 API(Application Programming Interface)를 제공하는 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법을 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 방법은, 대상 딥러닝 모델에 대한 특성 정보 및 타겟 디바이스의 리소스 정보를 수신하는 단계 및 상기 특성 정보 및 상기 리소스 정보에 기초하여 상기 타겟 디바이스에서 상기 대상 딥러닝 모델을 구현하기 위한 최적 API(Application Programming Interface) 정보를 생성하는 단계를 포함할 수 있다.
또한, 상기 최적 API 정보를 생성하는 단계는, 상기 대상 딥러닝 모델과 연계된 운영체제, 프레임워크 및 플랫폼을 상기 리소스 정보를 고려하여 선택할 수 있다.
또한, 상기 리소스 정보는, 상기 타겟 디바이스의 코어 정보, 메모리 정보 및 하드웨어 가용성 정보를 포함할 수 있다.
또한, 상기 특성 정보는, 상기 대상 딥러닝 모델의 입력 레이어의 크기 정보 및 커널 정보를 포함할 수 있다.
또한, 상기 최적 API 정보는, 상기 선택된 운영체제, 프레임워크 및 플랫폼에 대응하는 정적 라이브러리(Static Library)를 포함할 수 있다.
또한, 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 방법은, 상기 최적 API 정보에 기초하여 상기 대상 딥러닝 모델에 대한 압축 최적화를 수행하는 단계를 포함할 수 있다.
또한, 상기 압축 최적화를 수행하는 단계는, 상기 특성 정보 및 상기 리소스 정보에 기초하여 단일 명령 다중 데이터(SIMD) 수준을 결정하는 단계를 포함할 수 있다.
또한, 상기 압축 최적화를 수행하는 단계는, 상기 정적 라이브러리에 포함된 연산자 중에서 상기 선택된 플랫폼에서 미지원하는 기능과 연계된 연산자를 제거하는 단계를 포함할 수 있다.
또한, 상기 타겟 디바이스는, 임베디드 디바이스일 수 있다.
한편, 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 장치는, 대상 딥러닝 모델에 대한 특성 정보 및 타겟 디바이스의 리소스 정보를 수신하는 수집부 및 상기 특성 정보 및 상기 리소스 정보에 기초하여 상기 타겟 디바이스에서 상기 대상 딥러닝 모델을 구현하기 위한 최적 API(Application Programming Interface) 정보를 생성하는 제1최적화부를 포함할 수 있다.
또한, 상기 제1최적화부는, 상기 대상 딥러닝 모델과 연계된 운영체제, 프레임워크 및 플랫폼을 상기 리소스 정보를 고려하여 선택할 수 있다.
또한, 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 장치는, 상기 최적 API 정보에 기초하여 상기 대상 딥러닝 모델에 대한 압축 최적화를 수행하는 제2최적화부를 포함할 수 있다.
또한, 상기 제2최적화부는, 상기 특성 정보 및 상기 리소스 정보에 기초하여 단일 명령 다중 데이터(SIMD) 수준을 결정하고, 상기 정적 라이브러리에 포함된 연산자 중에서 상기 선택된 플랫폼에서 미지원하는 기능과 연계된 연산자를 제거할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, IoT 디바이스 등 임베디드 환경에서 구동하는 타겟 디바이스에 대한 맞춤형 최적화를 통해 소정의 딥러닝 모델을 구현하기 위한 최적의 API(Application Programming Interface)를 제공하는 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법을 제공할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 사용자가 타겟 디바이스에 탑재하고자 하는 미리 학습된 딥러닝 모델을 자동으로 분석하고 최적화하여 타겟 디바이스에 맞는 최적의 API(Application Programming Interface)를 제공할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 타겟 디바이스에 딥러닝 엔진을 가볍게 최적화할 수 있다는 점에서 모바일 환경, IoT 응용에서 경쟁적 우위를 가질 수 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1은 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 장치를 포함하는 딥러닝 모델 최적화 시스템의 개략적인 구성도이다.
도 2는 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 장치의 개략적인 구성도이다.
도 3은 제1최적화부의 최적 API 정보 생성 프로세스를 설명하기 위한 개념도이다.
도 4는 최적 API 정보를 생성하기 위해 고려되는 운영체제, 프레임워크, 플랫폼 등의 선택 요소를 나타낸 도표이다.
도 5는 제2최적화부의 압축 최적화 프로세스를 설명하기 위한 개념도이다.
도 6은 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 방법에 대한 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본원은 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법에 관한 것이다. 예를 들면, 본원은 타겟 디바이스에 대한 원-스텝(One-Step) 딥러닝 모델 변환 기법에 관한 것이다.
도 1은 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 장치를 포함하는 딥러닝 모델 최적화 시스템의 개략적인 구성도이다.
도 1을 참조하면, 본원의 일 실시예에 따른 딥러닝 모델 최적화 시스템(10)은, 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 장치(100)(이하, '변환 장치(100)'라 한다.), 타겟 디바이스(200) 및 저장 디바이스(300)를 포함할 수 있다.
변환 장치(100), 타겟 디바이스(200) 및 저장 디바이스(300) 상호간은 네트워크(20)를 통해 통신할 수 있다. 네트워크(20)는 단말들 및 서버들과 같은 각각의 노드 상호간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(20)의 일 예에는, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5G 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), wifi 네트워크, 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
본원의 실시예에 관한 설명에서 타겟 디바이스(200)는 본원에서의 대상 딥러닝 모델을 디바이스 상에 구현하려는 대상 장치를 의미할 수 있다. 이와 관련하여, 변환 장치(100)는 타겟 디바이스(200)의 자원, 성능 등을 고려하여 타겟 디바이스(200)에 탑재하려는 대상 딥러닝 모델의 특성에 따라 최적화 하는 변환을 수행하는 구성일 수 있다.
또한, 본원의 실시예에 관한 설명에서 저장 디바이스(300)는 대상 딥러닝 모델을 포함하는 미리 학습된 복수의 딥러닝 모델을 저장(보다 구체적으로, 딥러닝 모델 각각과 연계된 네트워크 구조, 파라미터, 코드, 가중치 등의 특성 정보를 저장)하는 구성일 수 있다. 또한, 본원의 구현예에 따라 저장 디바이스(300)는 변환 장치(100)에 탑재되어 변환 장치(100)의 하위 구성으로서 마련되거나 변환 장치(100)와 별개의 디바이스로 마련되는 것일 수 있다.
타겟 디바이스(200)는 예를 들면, 스마트폰(Smartphone), 스마트패드(SmartPad), 태블릿 PC등과 PCS(Personal Communication System), GSM(Global System for Mobile communication), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말기 같은 모든 종류의 무선 통신 장치일 수 있다. 특히, 본원에서의 타겟 디바이스(200)는 임베디드 환경에서 구동하는 IoT 단말, 엣지 디바이스, 임베디드 보드 등을 의미하는 것일 수 있다.
이러한, 타겟 디바이스(200)는 서버 환경, 클라우드 환경 등과 달리 연산 능력, 메모리 등의 리소스에 제약이 존재하며, 본원에서 개시하는 변환 장치(100)는 이러한 타겟 디바이스(200)의 리소스적 제약을 고려하여 대상 딥러닝 모델에 대한 최적화를 수행하여 대상 딥러닝 모델과 연계된 인공지능 기능이 타겟 디바이스(200) 상에서 구현되도록 지원할 수 있는 것이다.
도 2는 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 장치의 개략적인 구성도이다.
도 2를 참조하면, 변환 장치(100)는 수집부(110), 제1최적화부(120) 및 제2최적화부(130)를 포함할 수 있다.
수집부(110)는 대상 딥러닝 모델에 대한 특성 정보 및 타겟 디바이스(200)의 리소스 정보를 수신할 수 있다. 본원의 일 실시예에 따르면, 수집부(110)는 저장 디바이스(300)로부터 특성 정보를 수신하고, 타겟 디바이스(200)로부터 리소스 정보를 수신할 수 있다.
본원의 일 실시예에 따르면, 타겟 디바이스(200)의 리소스 정보는 타겟 디바이스(200)의 코어 정보, 메모리 정보 및 하드웨어 가용성 정보를 포함할 수 있다. 예를 들어, 리소스 정보는 타겟 디바이스(200)에 탑재되는 프로세싱 장치(코어)의 수 정보를 포함할 수 있다.
또 다른 예로, 본원에서의 리소스 정보는 타겟 디바이스(200)가 중앙 처리 장치(Central Processing Unit, CPU) 및 그래픽 처리 장치(Graphics Processing Unit, GPU) 중 적어도 하나를 포함하는지 여부를 포함할 수 있다. 또한, 본원의 일 실시예에 따른 리소스 정보는 타겟 디바이스(200)에 탑재되는 적어도 하나의 중앙 처리 장치(CPU) 및 그래픽 처리 장치(GPU)의 기종 정보를 포함할 수 있다. 여기서, 기종 정보란 타겟 디바이스(200)가 중앙 처리 장치 및 그래픽 처리 장치를 모두 포함하는 경우, 중앙 처리 장치 및 그래픽 처리 장치의 기종, 제조사 등이 동일한지에 대한 정보 또는 중앙 처리 장치 및 그래픽 처리 장치의 호환성에 대한 정보, 공유 메모리의 존부 등을 포함할 수 있다.
특히, 리소스 정보는 타겟 디바이스(200)가 중앙 처리 장치 및 그래픽 처리 장치를 모두 포함하는 디바이스인 경우, 디바이스가 중앙 처리 장치 및 그래픽 처리 장치에 의해 공유되는 메모리를 포함하는지 여부를 포함할 수 있다.
또한, 본원의 일 실시예에 따르면, 대상 딥러닝 모델의 특성 정보는 대상 딥러닝 모델의 입력 레이어의 크기 정보 및 커널 정보를 포함할 수 있다. 예를 들어, 특성 정보는 대상 딥러닝 모델의 유형, 대상 딥러닝 모델의 유형에 따른 가중치 커널의 형상(kernel shape) 등을 포함할 수 있다.
또 다른 예로, 본원에서의 특성 정보는 대상 딥러닝 모델의 연산 라이브러리 정보, 대상 딥러닝 모델의 구조 정보를 포함할 수 있다. 예를 들어, 대상 딥러닝 모델의 구조 정보는 대상 딥러닝 모델에 포함되는 계층 정보를 포함할 수 있다. 예를 들어, 계층 정보는 대상 딥러닝 모델과 연계된 네트워크 구조에 포함된 계층(레이어)의 수, 계층 각각의 유형(예를 들면, 컨볼루션 레이어, Fully-connected 레이어 등) 정보, 계층(레이어)의 크기, 파라미터의 유형, 파라미터의 수 등을 포함할 수 있다.
본원의 일 실시예에 따르면, 연산 라이브러리 정보는 대상 딥러닝 모델에 대하여 선택된 인공지능 프레임워크에서 호출될 수 있는 도구, 함수들의 집합을 의미할 수 있으며, 이에 따라 연산 라이브러리 정보는, 대상 딥러닝 모델이 구현되는 기반이 되는 인공지능 프레임워크(예를 들면, 후술하는 Tensorflow, Pytorch, Caffe, Mxnet 등)에 따라 다르게 결정될 수 있다.
제1최적화부(120)는 대상 딥러닝 모델의 특성 정보 및 타겟 디바이스(200)의 리소스 정보에 기초하여 타겟 디바이스(200)에서 대상 딥러닝 모델을 구현하기 위한 최적 API(Application Programming Interface) 정보를 생성할 수 있다.
도 3은 제1최적화부의 최적 API 정보 생성 프로세스를 설명하기 위한 개념도이다.
도 3을 참조하면, 제1최적화부(120)는 대상 딥러닝 모델과 연계된 운영체제, 프레임워크 및 플랫폼을 타겟 디바이스(200)의 리소스 정보를 고려하여 선택할 수 있다. 참고로, 제1최적화부(120)에 의한 최적 API 정보 생성 프로세스는 사전 추론 과정으로 지칭될 수 있다.
도 4는 최적 API 정보를 생성하기 위해 고려되는 운영체제, 프레임워크, 플랫폼 등의 선택 요소를 나타낸 도표이다.
도 3 및 도 4를 참조하면, 본원의 일 실시예에 따르면, 수집부(110)는 온라인 환경(도 3의 Web Service)을 통해 대상 딥러닝 모델에 대한 특성 정보를 획득(수집)하는 것일 수 있다.
또한, 도 4를 참조하면, 제1최적화부(120)는 특성 정보 및 리소스 정보에 기초하여 IOS, Android, Linux, Mac OS, Windows 등을 포함하는 복수의 운영체제 중에서 최적화된 운영체제를 선택하도록 동작할 수 있으나, 이에만 한정되는 것은 아니고 본원에서는 종래에 이미 공지되었거나 향후 개발되는 다양한 운영체제가 적용될 수 있다. 다른 예로, 제1최적화부(120)는 변환 장치(100)로 인가된 사용자 입력에 기초하여 소정의 운영체제를 선택하고, 사용자에 의해 선택된 운영체제에 따른 최적 API 정보를 생성하는 것일 수 있다.
또한, 도 4를 참조하면, 제1최적화부(120)는 특성 정보 및 리소스 정보에 기초하여 Caffe, ONNX, Mxnet, Pytorch, DarkNet, Tensorflow 등을 포함하는 복수의 프레임워크 중에서 최적화된 프레임워크를 선택하도록 동작할 수 있으나, 이에만 한정되는 것은 아니고 본원에서는 종래에 이미 공지되었거나 향후 개발되는 다양한 인공지능 프레임워크(Framework)가 적용될 수 있다. 다른 예로, 제1최적화부(120)는 변환 장치(100)로 인가된 사용자 입력에 기초하여 소정의 유형의 프레임워크를 선택하고, 사용자에 의해 선택된 유형의 프레임워크에 따른 최적 API 정보를 생성하는 것일 수 있다.
또한, 도 4를 참조하면, 제1최적화부(120)는 특성 정보 및 리소스 정보에 기초하여 Nvidia, Jetson, Raspberry, ARM Cortex-A Family, Qcam Family, Hisilicon Family, X86-CPU, X86-GPU 등을 포함하는 복수의 플랫폼 중에서 최적화된 플랫폼을 선택하도록 동작할 수 있으나, 이에만 한정되는 것은 아니고 본원에서는 종래에 이미 공지되었거나 향후 개발되는 다양한 플랫폼이 적용될 수 있다. 다른 예로, 제1최적화부(120)는 변환 장치(100)로 인가된 사용자 입력에 기초하여 소정의 플랫폼을 선택하고, 사용자에 의해 선택된 유형의 플랫폼에 따른 최적 API 정보를 생성하는 것일 수 있다. 한편, 본원의 실시예예 관한 설명에서 플랫폼은 대상 딥러닝 모델이 구현되는 하드웨어 아키텍처를 의미하는 것일 수 있다.
이와 관련하여, 타겟 디바이스(200)인 IoT 장치는 주로 ARM Cortex-A 또는 ARM Cortex-M CPU를 사용하므로, 본원에서 개시하는 변환 장치(100)에 의해 최적화되는 하드웨어 아키텍처는 ARM Cortex-A 및 M 계열의 CPU를 지원하도록 설계될 수 있다. 특히, 타겟 디바이스(200)인 IoT 장치의 소프트웨어에 대한 다양성을 향상시키기 위해 변환 장치(100)의 구동을 위한 프로그램/어플리케이션은 C++언어에 기반하여 작성될 수 있다. 또한, 전술한 프로그램/어플리케이션은 GPU최적 가속을 위해 Vulkan 언어 등의 GPGPU 언어를 포괄하도록 GPU부분이 작성될 수 있다. 또한, 본원에서 개시하는 변환 장치(100)는 특정 제조사의 라이브러리 파일만을 제한적으로 사용하지 않도록 Android, Linux, RTOS, Mac OS X, Windows와 같은 다양한 운영체제 및 환경을 지원할 수 있다.
또한, 본원의 일 실시예에 따르면, 변환 장치(100)의 구동을 위한 프로그램/어플리케이션은 베어 메탈(펌웨어) 등에 기반하여 개발자가 타겟 디바이스(200)외의 다른 IoT 장치에도 이식하고 배포할 수 있도록 구현될 수 있다.
또한, 도 3 및 도 4를 참조하면, 제1최적화부(120)는 앞서 설명한 바와 같이 선택되는 운영체제, 프레임워크 및 플랫폼에 대응하는 정적 라이브러리(Static Library)를 포함하는 최적 API 정보를 생성할 수 있다. 또한, 제1최적화부(120)는 생성된 최적 API 정보에 포함된 정적 라이브러리(Static Library)를 타겟 디바이스(200)에 설치할 수 있다(도 4의 Download).
또한, 딥러닝 모델은 일반적으로 많은 수의 연산자를 갖는 심층 네트워크 구조로 이루어지며, 딥러닝 모델의 학습을 위한 프로그램에 따라 네트워크 구조가 고정되기 때문에 이런 특징을 활용하여 제1최적화부(120)는 대상 딥러닝 모델과 연계된 메모리 사용량 및 파워 사용량을 가상의 계산을 통해 파악할 수 있다.
이와 관련하여, 제1최적화부(120)는 사전 추론을 통해 대상 딥러닝 모델의 동작 과정에서 타겟 디바이스(200)의 사용 가능한 메모리에 작업을 사전 할당하고 할당 결과를 재사용하는 최적화 기법을 적용하여 대상 딥러닝 모델의 성능이 보다 향상되도록 할 수 있다. 즉, 모바일 디바이스, IoT 장치 등의 저사양 특성을 갖는 디바이스인 타겟 디바이스(200)는 메모리가 비교적 부족하기 때문에 메모리를 효율적으로 사용(할당)하는 것은 딥러닝 어플리케이션의 최적화에 있어서 중심적 요소이다.
달리 말해, 대상 딥러닝 모델의 동작에는 연산이 많은 부분을 차지하며, 이러한 연산을 위해서는 메모리 할당 및 해제 같은 기능이 반복적으로 발생하기 때문에 타겟 디바이스(200)가 적은 리소스(메모리)만을 보유한 경우에는 메모리 관리에 소요되는 시간과 부하가 무시할 수 없는 수준에 이른다.
따라서, 제1최적화부(120)는 대상 딥러닝 모델의 특성 정보에 기초하여 입력 크기가 결정되면 대상 크기에 기반하여 타겟 디바이스(200)에서의 메모리 사용량과 파워 사용량을 사전에 계산을 통해 파악하여 대상 딥러닝 모델과 연계된 전체 하위 작업을 가상으로 확인하고 메모리 할당 및 해제 등의 반복에 따라 타겟 디바이스(200)가 사용해야 할 메모리를 합산하여 필요 메모리를 정확히 추론할 수 있다.
이에 따라, 제1최적화부(120)는 사전 추론 단계에서 필요한 메모리 전체를 사전 할당할 수 있으며, 이러한 할당 결과는 이하에서 설명하는 제2최적화부(130)에 의해 수행되는 다음 추론 세션에서 재사용될 수 있다.
제2최적화부(130)는 제1최적화부(120)에 의해 생성된 최적 API 정보에 기초하여 대상 딥러닝 모델에 대한 압축 최적화를 수행할 수 있다. 참고로, 제2최적화부(130)에 의한 압축 최적화 프로세스는 엔지니어 수준 최적화, 어셈블러 코딩 최적화, 알고리즘 고급화 등으로 달리 지칭될 수 있다
도 5는 제2최적화부의 압축 최적화 프로세스를 설명하기 위한 개념도이다.
도 5를 참조하면, 제2최적화부(130)는 선택된 프레임워크에 대한 형식을 변환한 후, 압축 최적화가 수행되기 전 상태의 대상 딥러닝 모델(예를 들면, 도 5의 OPU Model)을 모델 압축기(Model Compressor)를 통해 최적화(Optimize)할 수 있다.
구체적으로, 제2최적화부(130)는 특성 정보 및 리소스 정보에 기초하여 단일 명령 다중 데이터(SIMD) 수준을 결정할 수 있다. 이와 관련하여, 제2최적화부(130)는 단일 명령 다중 데이터(SIMD) 기능의 채택(활성화) 여부를 특성 정보 및 리소스 정보에 기초하여 결정하여 필요에 따라 파이프라인 구조를 통해 대상 딥러닝 모델에 대한 성능을 향상시킬 수 있다.
또한, 본원의 일 실시예에 따르면, 제2최적화부(130)는 최적 API 정보에 포함된 정적 라이브러리에 포함된 연산자 중에서 제1최적화부(120)에 의해 선택된 플랫폼에서 미지원하는 기능과 연계된 연산자를 제거할 수 있다.
이와 관련하여, IoT 장치 등의 타겟 디바이스(200)에서 인공지능 기능의 구현을 위하여는 딥러닝 엔진에서 통합 인터페이스를 유지하면서 독립적인 구성 요소로 작동이 가능해야 한다. 특히, 특정 유형의 타겟 디바이스(200)에서 특정 기능이 지원되지 않는 경우에는 미지원되는 해당 기능을 전체 프레임워크에서 쉽게 제거할 수 있어야 한다. 특히 가벼운 딥러닝 엔진을 사용한 모바일과 IoT 응용에서의 라이브러리의 크기는 중요한 요소이기 때문에 서버 또는 클라우드 환경에 비하여 보다 엄격하게 관리되어야 한다.
이해를 돕기 위해 예시하면, 제2최적화부(130)는 Apple 사에서 제공하는 라이브러리에 포함된 Metal 연산자가 Android 플랫폼에서 지원되지 않는 점을 고려하여, Metal 연산자 모듈을 Android 플랫폼과 연계된 전체 프레임워크에서 제거(삭제)하는 최적화를 수행할 수 있다. 이렇듯, 본원에 의할 때 대상 딥러닝 모델의 구현 단계에서 불필요한 연산자를 근원적으로 분리함으로써 대상 딥러닝 모델을 보다 가볍게 업데이트 하여 타겟 디바이스(200)에서 원활히 구동되도록 할 수 있다.
전술한 바와 같이 본원에서 개시하는 변환 장치(100)는 다양한 하드웨어 아키텍처를 지원하며, 모든 하드웨어 사양을 충족하는 통합 표준이 없음을 고려하여 GPGPU 부분을 OpenCL, OpenGL, Vulkan 및 Apple Metal과 같은 다양한 소프트웨어 솔루션을 통해 지원할 수 있다.
또한, 본원의 일 실시예에 따르면, 제2최적화부(130)는 루프 시퀀스에 대한 수정, 타겟 디바이스(200)와 연계된 메모리 계층의 최적화 등 타겟 디바이스(200)에 구비되는 프로세싱 장치(예를 들면, 적어도 하나의 CPU 장치 및 적어도 하나의 GPU 장치 중 적어도 하나)와 연계된 최적화 방안을 생성할 수 있다.
다른 예로, 제2최적화부(130)는 슬라이스(Slice)의 크기, 루프 해제 인자(파라미터) 등과 같은 소정의 계획 가능한 매개 변수를 특정 레벨로 선택하는 대상 딥러닝 모델과 연계된 작업 할당 계획을 생성할 수 있다.
또 다른 예로, 제2최적화부(130)는 타겟 디바이스(200)의 메모리 계층 구조(아키텍쳐)와 연계하여, 하위 메모리에서 상위 메모리로 데이터(예를 들면, 딥러닝 모델의 계층별 입력 데이터, 출력 데이터 등) 전송하는 시간적 계획에 해당하는 스케줄(tiling), 타겟 디바이스(200)에 마련되는 프로세싱 장치별 각각의 코어에 딥러닝 모델의 계층별로 요구되는 연산 중 어느 연산을 할당할지에 대한 계획(달리 말해, spatial ordering), 반복문(루프문)을 수행하는 순서를 변경하여 데이터 재사용을 최대화하기 위한 최적화(loop reordering) 적용 여부 등에 대한 사항이 포함되는 작업 할당 계획을 생성할 수 있다.
또한, 제2최적화부(130)는 타겟 디바이스(200)에서의 메모리 접근(액세스) 방식, 데이터 재사용 활용 여부, 크로스 쓰레드 사용, 파이프라인 종속성, 선형화 모드 사용 여부 등 대상 딥러닝 모델의 구현에 영향을 미치는 다양한 최적화 요소를 고려하여 압축 최적화를 수행할 수 있다. 보다 구체적으로, 제2최적화부(130)는 압축 최적화가 이루어지기 전의 대상 딥러닝 모델과 관련한 전술한 다양한 최적화 요소의 수정 전 설정값을 대상 딥러닝 모델과 연계된 정보로서 수신하고, 수신한 설정값을 최적화하여 제공하는 형태로 압축 최적화를 수행하는 것일 수 있다.
한편, 제1최적화부(120) 또는 제2최적화부(130)는 중앙 처리 장치 및 그래픽 처리 장치를 포함하는 타겟 디바이스(200)가 중앙 처리 장치 및 그래픽 처리 장치에 의해 공유되는 메모리를 포함하는지 여부에 기초하여 최적 API 정보를 상이하게 출력하거나 대상 딥러닝 모델에 대한 압축 최적화를 적절한 수준으로 수행하도록 동작할 수 있으며, 구체적으로, 타겟 디바이스(200)에 중앙 처리 장치 및 그래픽 처리 장치에 의해 공유되는 메모리가 존재하지 않는 경우, 제1최적화부(120)는 메모리 재사용, 크로스 쓰레드 등 메모리와 프로세싱 장치의 데이터 전송 및 컴퓨팅 작업 전송으로 인한 오버 헤드를 감소시킬 수 있는 스케줄링 기법이 적용된 최적 API 정보를 생성하는 것일 수 있으나, 이에만 한정되는 것은 아니다.
한편, 본원의 일 실시예에 따르면, 제1최적화부(120)는 서로 다른 특성 정보 및 리소스 정보의 조합에 기초하여 획득되는 대상 딥러닝 모델에 대한 다수의 실행 데이터 각각에 대하여 소정의 보상을 부여하는 방식으로 학습되는 강화 학습(Reinforcement learning) 기반의 최적화 툴을 기초로 하여 최적 API 정보를 생성하는 것일 수 있다.
여기서, 강화 학습(Reinforcement learning)이란, 주어진 상태(state)에 대응한 행동(action)의 결과에 대하여 부여되는 보상(reward)을 통해 학습을 수행하는 에이전트(agent)가 최대의 보상을 받을 수 있는 정책을 스스로 수립하도록 학습시키는 기계 학습(machine learning)의 한 유형으로, 강화 학습에 대한 사항은 통상의 기술자에게 자명한 사항이므로, 자세한 설명은 생략하도록 한다. 본원에서는 종래에 이미 공지되었거나 향후 개발되는 다양한 강화 학습 알고리즘 모델이 적용될 수 있다.
이와 관련하여, 제1최적화부(120) 학습을 수행하는 에이전트(agent)인 최적화 툴이 주어진 상황(달리 말해, 각각의 특성 정보 및 리소스 정보의 조합)에 대하여 보상(reward)이 최대가 되도록 하는 최적 API 정보를 생성하는 방향으로 학습을 수행할 수 있다. 본원의 일 실시예에 따르면, 실행 데이터 각각에 대응하여 제1최적화부(120)의 최적화 툴로 부여되는 보상(reward)은 딥러닝 모델의 계층(레이어) 각각의 실행 시간 및 딥러닝 모델의 전체 학습 시간, 프로세싱 장치(CPU 장치 또는 GPU 장치)에서 발생하는 오버헤드 수준, 학습된 딥러닝 모델에 의한 추론 성능(해당 딥러닝 모델이 갖는 목적에 대응하는 분류 정확도 또는 식별 정확도 등), 메모리 접근 빈도, 데이터 전송 시간 등에 기초하여 부여되는 것일 수 있다.
예시적으로, 제1최적화부(120)는 소정의 딥러닝 모델에 대한 실행 데이터에 기초하여, 딥러닝 모델의 전체 학습 시간 또는 딥러닝 모델의 계층(레이어) 각각의 실행시간이 작아지게 하는 최적 API 정보를 전술한 최적화 툴이 생성하였을 때 보다 많은 보상(reward)이 부여되도록 하여 학습이 진행될수록 최적화 툴이 딥러닝 모델의 계층(레이어) 각각의 실행 시간, 전체 학습 시간 등이 감소될 수 있도록 하는 방향으로 최적 API 정보를 생성하도록 유도할 수 있으나, 이에만 한정되는 것은 아니다.
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.
도 6은 본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 방법에 대한 동작 흐름도이다.
도 6에 도시된 타겟 디바이스에 대한 딥러닝 모델 변환 방법은 앞서 설명된 변환 장치(100)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 변환 장치(100)에 대하여 설명된 내용은 타겟 디바이스에 대한 딥러닝 모델 변환 방법에 대한 설명에도 동일하게 적용될 수 있다.
도 6을 참조하면, 단계 S11에서 수집부(110)는, 대상 딥러닝 모델에 대한 특성 정보 및 타겟 디바이스(200)의 리소스 정보를 수신할 수 있다.
다음으로, 단계 S12에서 제1최적화부(120)는, 특성 정보 및 리소스 정보에 기초하여 타겟 디바이스(200)에서 대상 딥러닝 모델을 구현하기 위한 최적 API(Application Programming Interface) 정보를 생성할 수 있다.
또한, 단계 S12에서 제1최적화부(120)는, 대상 딥러닝 모델과 연계된 운영체제, 프레임워크 및 플랫폼을 리소스 정보를 고려하여 선택할 수 있다.
다음으로, 단계 S13에서 제2최적화부(130)는, 생성된 최적 API 정보에 기초하여 대상 딥러닝 모델에 대한 압축 최적화를 수행할 수 있다.
또한, 단계 S13에서 제2최적화부(130)는, 특성 정보 및 리소스 정보에 기초하여 단일 명령 다중 데이터(SIMD) 수준을 결정할 수 있다.
또한, 단계 S12에서 제2최적화부(130)는, 정적 라이브러리에 포함된 연산자 중에서 선택된 플랫폼에서 미지원하는 기능과 연계된 연산자를 제거할 수 있다.
상술한 설명에서, 단계 S11 내지 S13은 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본원의 일 실시예에 따른 타겟 디바이스에 대한 딥러닝 모델 변환 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 전술한 타겟 디바이스에 대한 딥러닝 모델 변환 방법은 기록 매체에 저장되는 컴퓨터에 의해 실행되는 컴퓨터 프로그램 또는 애플리케이션의 형태로도 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
10: 딥러닝 모델 최적화 시스템
100: 타겟 디바이스에 대한 딥러닝 모델 변환 장치
110: 수집부
120: 제1최적화부
130: 제2최적화부
200: 타겟 디바이스
300: 저장 디바이스
20: 네트워크

Claims (14)

  1. 타겟 디바이스에 대한 딥러닝 모델 변환 방법에 있어서,
    대상 딥러닝 모델에 대한 특성 정보 및 타겟 디바이스의 리소스 정보를 수신하는 단계; 및
    상기 특성 정보 및 상기 리소스 정보에 기초하여 상기 타겟 디바이스에서 상기 대상 딥러닝 모델을 구현하기 위한 최적 API(Application Programming Interface) 정보를 생성하는 단계; 및
    상기 최적 API 정보에 기초하여 상기 대상 딥러닝 모델에 대한 압축 최적화를 수행하는 단계,
    를 포함하고,
    상기 최적 API 정보를 생성하는 단계는,
    상기 대상 딥러닝 모델과 연계된 운영체제, 프레임워크 및 플랫폼을 상기 리소스 정보를 고려하여 선택하고, 상기 선택된 운영체제, 프레임워크 및 플랫폼에 대응하여 호출 가능한 함수의 집합인 정적 라이브러리(Static Library)를 상기 타겟 디바이스에 설치하고,
    상기 압축 최적화를 수행하는 단계는,
    상기 설치된 정적 라이브러리에 포함된 연산자 중에서 상기 선택된 플랫폼에서 미지원하는 기능과 연계된 연산자를 제거하여 상기 대상 딥러닝 모델을 경량화 하는 단계,
    를 포함하는 것인, 변환 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 리소스 정보는,
    상기 타겟 디바이스의 코어 정보, 메모리 정보 및 하드웨어 가용성 정보를 포함하는 것인, 변환 방법.
  4. 제1항에 있어서,
    상기 특성 정보는,
    상기 대상 딥러닝 모델의 입력 레이어의 크기 정보 및 커널 정보를 포함하는 것인, 변환 방법.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 압축 최적화를 수행하는 단계는,
    상기 특성 정보 및 상기 리소스 정보에 기초하여 단일 명령 다중 데이터(SIMD) 수준을 결정하는 단계,
    를 포함하는 것인, 변환 방법.
  8. 삭제
  9. 제1항에 있어서,
    상기 타겟 디바이스는,
    임베디드 디바이스인 것을 특징으로 하는, 변환 방법.
  10. 타겟 디바이스에 대한 딥러닝 모델 변환 장치에 있어서,
    대상 딥러닝 모델에 대한 특성 정보 및 타겟 디바이스의 리소스 정보를 수신하는 수집부;
    상기 특성 정보 및 상기 리소스 정보에 기초하여 상기 타겟 디바이스에서 상기 대상 딥러닝 모델을 구현하기 위한 최적 API(Application Programming Interface) 정보를 생성하는 제1최적화부; 및
    상기 최적 API 정보에 기초하여 상기 대상 딥러닝 모델에 대한 압축 최적화를 수행하는 제2최적화부,
    를 포함하고,
    상기 제1최적화부는,
    상기 대상 딥러닝 모델과 연계된 운영체제, 프레임워크 및 플랫폼을 상기 리소스 정보를 고려하여 선택하고, 상기 선택된 운영체제, 프레임워크 및 플랫폼에 대응하여 호출 가능한 함수의 집합인 정적 라이브러리(Static Library)를 상기 타겟 디바이스에 설치하고,
    상기 제2최적화부는,
    상기 설치된 정적 라이브러리에 포함된 연산자 중에서 상기 선택된 플랫폼에서 미지원하는 기능과 연계된 연산자를 제거하여 상기 대상 딥러닝 모델을 경량화 하는 것인, 변환 장치.
  11. 삭제
  12. 삭제
  13. 제10항에 있어서,
    상기 제2최적화부는,
    상기 특성 정보 및 상기 리소스 정보에 기초하여 단일 명령 다중 데이터(SIMD) 수준을 결정하고, 상기 정적 라이브러리에 포함된 연산자 중에서 상기 선택된 플랫폼에서 미지원하는 기능과 연계된 연산자를 제거하는 것인, 변환 장치.
  14. 제1항, 제3항, 제4항, 제7항 및 제9항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터에서 판독 가능한 기록매체.
KR1020210019623A 2021-02-15 2021-02-15 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법 KR102298766B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210019623A KR102298766B1 (ko) 2021-02-15 2021-02-15 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210019623A KR102298766B1 (ko) 2021-02-15 2021-02-15 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102298766B1 true KR102298766B1 (ko) 2021-09-07

Family

ID=77796954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210019623A KR102298766B1 (ko) 2021-02-15 2021-02-15 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102298766B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230104037A (ko) * 2021-12-30 2023-07-07 주식회사 에임퓨처 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치
CN116991561A (zh) * 2023-09-27 2023-11-03 国网北京市电力公司 一种模型转换调度方法、装置、设备及介质
KR102661026B1 (ko) * 2022-12-21 2024-04-25 한국과학기술원 동적 리소스 적응형 딥러닝 모델 추론 방법 및 상기 방법을 수행하는 딥러닝 모델 추론 장치
CN117971236A (zh) * 2024-03-31 2024-05-03 浪潮电子信息产业股份有限公司 基于词法和语法分析的算子解析方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190141694A (ko) * 2017-04-17 2019-12-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 메모리 대역폭 활용을 감소시키기 위해 활성화 데이터의 압축 및 압축 해제를 사용하는 신경망 프로세서
KR20200080819A (ko) * 2018-12-27 2020-07-07 (주)아크릴 인공 신경망의 상용화 서비스 제공 방법
KR20200100845A (ko) * 2018-01-05 2020-08-26 제이엠 드라이버 엘엘씨 (디비에이 링스 테크놀로지) 사물 인터넷(iot) 디바이스를 위한 재구성가능한 임베디드 규칙 엔진

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190141694A (ko) * 2017-04-17 2019-12-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 메모리 대역폭 활용을 감소시키기 위해 활성화 데이터의 압축 및 압축 해제를 사용하는 신경망 프로세서
KR20200100845A (ko) * 2018-01-05 2020-08-26 제이엠 드라이버 엘엘씨 (디비에이 링스 테크놀로지) 사물 인터넷(iot) 디바이스를 위한 재구성가능한 임베디드 규칙 엔진
KR20200080819A (ko) * 2018-12-27 2020-07-07 (주)아크릴 인공 신경망의 상용화 서비스 제공 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230104037A (ko) * 2021-12-30 2023-07-07 주식회사 에임퓨처 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치
KR102656567B1 (ko) * 2021-12-30 2024-04-12 주식회사 에임퓨처 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치
KR102661026B1 (ko) * 2022-12-21 2024-04-25 한국과학기술원 동적 리소스 적응형 딥러닝 모델 추론 방법 및 상기 방법을 수행하는 딥러닝 모델 추론 장치
CN116991561A (zh) * 2023-09-27 2023-11-03 国网北京市电力公司 一种模型转换调度方法、装置、设备及介质
CN117971236A (zh) * 2024-03-31 2024-05-03 浪潮电子信息产业股份有限公司 基于词法和语法分析的算子解析方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
KR102298766B1 (ko) 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법
KR102257028B1 (ko) 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
US20170353397A1 (en) Offloading Execution of an Application by a Network Connected Device
US20220198296A1 (en) User context migration based on computation graph in artificial intelligence application executing in edge computing environment
US20220092439A1 (en) Decoupled architecture for artificial intelligence model management
RU2658190C2 (ru) Управление доступом во время выполнения к интерфейсам прикладного программирования
Tang et al. A container based edge offloading framework for autonomous driving
Doyu et al. A tinymlaas ecosystem for machine learning in iot: Overview and research challenges
EP3866443A1 (en) Opc ua server, system operating using opc ua, and method of executing opc ua system
US20220012607A1 (en) Managing artificial intelligence model partitions for edge computing environment
CN113127203B (zh) 面向云边计算的深度学习分布式编译器及构造方法
Chen et al. Task partitioning and offloading in IoT cloud-edge collaborative computing framework: a survey
Benedetto et al. MobiCOP: a scalable and reliable mobile code offloading solution
CN116467061A (zh) 一种任务执行的方法、装置、存储介质及电子设备
CN110750333A (zh) 一种云服务工厂平台全生命周期管理方法
Kaya et al. Seamless computation offloading for mobile applications using an online learning algorithm
Justino et al. Outsourcing resource-intensive tasks from mobile apps to clouds: Android and aneka integration
CN114490062A (zh) 一种本地磁盘的调度方法、装置、电子设备及存储介质
Islam et al. ELITE: Energy and Latency-Optimized Task Offloading for DVFS-Enabled Resource-Constrained Devices in MEC
WO2020246965A1 (en) Task distribution across multiple processing devices
US20220114033A1 (en) Latency and dependency-aware task scheduling workloads on multicore platforms using for energy efficiency
Olmsted et al. FogWeaver: Task allocation optimization strategy across hybrid fog environments
Tang et al. Edge computing energy-efficient resource scheduling based on deep reinforcement learning and imitation learning
Khan Author's Accepted Manuscript
CN114816672A (zh) 虚拟机的创建方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant