KR102257028B1 - 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법 - Google Patents

컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법 Download PDF

Info

Publication number
KR102257028B1
KR102257028B1 KR1020200128989A KR20200128989A KR102257028B1 KR 102257028 B1 KR102257028 B1 KR 102257028B1 KR 1020200128989 A KR1020200128989 A KR 1020200128989A KR 20200128989 A KR20200128989 A KR 20200128989A KR 102257028 B1 KR102257028 B1 KR 102257028B1
Authority
KR
South Korea
Prior art keywords
deep learning
learning model
target
computing platform
information
Prior art date
Application number
KR1020200128989A
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 KR1020200128989A priority Critical patent/KR102257028B1/ko
Application granted granted Critical
Publication of KR102257028B1 publication Critical patent/KR102257028B1/ko

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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

Abstract

컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법이 개시되며, 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법은, 소정의 디바이스에서 구현된 딥러닝 모델에 대한 상기 디바이스의 플랫폼 정보에 따른 실행 데이터를 포함하는 테스트 데이터를 준비하는 단계, 상기 테스트 데이터에 기초하여, 타겟 딥러닝 모델을 구현하기 위한 최적화된 작업 할당 계획을 제공하는 스케줄러를 학습시키는 단계, 상기 타겟 딥러닝 모델과 연계된 정보를 수신하는 단계 및 상기 스케줄러에 기반하여 상기 타겟 딥러닝 모델에 대한 최적화된 작업 할당 계획을 생성하는 단계를 포함할 수 있다.

Description

컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법{APPARATUS AND METHOD FOR ALLOCATING DEEP LEARNING TASK ADAPTIVELY BASED ON COMPUTING PLATFORM}
본원은 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법에 관한 것이다.
딥러닝(Deep Learning)은 인공신경망(artificial neural network)에 많은 수의 레이어(layer)를 만들고 학습시키는 여러 가지 방법을 통틀어 일컫는다. 특히, 딥러닝은 자율 주행 자동차, 자연어 처리, 음성인식 분야를 비롯하여 빅데이터와 연계한 데이터 분석 등 다양한 분야에서 활발하게 연구가 진행되고 있으며, 딥러닝 모델의 구조는 복수의 레이어를 포함하는 구조로서, 예를 들어, 각 레이어별 채널(channel) 개수나 차원(dimension), 파라미터(parameter)의 수 등은 구현하고자 하는 딥러닝 모델의 유형에 따라 다양하게 결정될 수 있다.
또한, 오늘날 이러한 딥러닝 모델의 구축과 인공지능의 개발 및 적용은 종래에 개발된 인공지능 프레임워크를 활용하여 이루어지며, 현재 개발된 주요 인공지능 프레임워크는 Tensorflow, Pytorch, Caffe, Mxnet 등이 존재한다.
그러나, 현재 개발된 인공지능 프레임워크를 실제로 활용할 때는, 프레임워크가 실행되는 프로세싱 장치(예를 들면, CPU, GPU 등)를 선택해야 하는데, 선택된 프로세싱 장치의 특성에 맞추어 인공지능 프레임워크의 실행 알고리즘을 변경하는 작업은 어려운 일이다. 이와 관련하여, 엔비디아 사의 TensorRT, 인텔 사의 OpenVINO 등은 프레임워크가 실행되는 프로세싱 장치에 따라 어느 정도 수준의 최적화를 수행하는 라이브러리를 제공하기는 하나, 개발자가 스스로 많은 최적화 작업을 수행할 것이 요구되며, 특히, CPU 및 GPU가 동시에 동작하는 상황에 대한 최적화 라이브러리의 개발은 미비한 실정이다.
또한, 딥러닝 모델에서의 추론(Inference)은 통상적으로 CPU 또는 GPU에서 수행되나, CPU와 GPU를 함께 포함하는 하드웨어 구조를 갖는 디바이스에서는 이기종 아키텍처를 이용한 병렬 처리가 더 나은 성능을 보이는 경우가 많다. 한편, 딥러닝 모델의 대부분의 기능은 병렬 처리가 더 나은 처리 특성을 보이므로, 딥러닝 애플리케이션 개발은 GPU에서 주로 수행되나, 특정한 일부 기능(예를 들면, ROI 등)은 GPU가 아닌 CPU에서 오히려 효율적으로 처리되는 경우가 있는 등 하드웨어의 속성에 따른 영항을 받게 된다.
이렇듯, 다양한 컴퓨팅 플랫폼을 포함하는 하드웨어를 통해 딥러닝 추론 소프트웨어를 개발하는 과정에서는 하드웨어의 구조적 특성 및 딥러닝 모델의 구현을 위한 데이터 처리 구조의 특성이 충분히 고려되어야 하며, 이와 관련하여 딥러닝 모델을 최적화 하기 위한 많은 선행 연구가 진행된바 있다.
대표적으로, 컨볼루션 신경망(Convolutional Neural Network)과 관련하여, 필터의 재사용을 극대화하는 Weight Stationary 기법, 부분합(Partial sum)의 재사용을 최대화하는 Output Stationary 기법, 프로세싱 장치의 코어 각각이 하나의 Row를 처리하는 방식으로 다양한 재사용을 발생시키는 Row stationary 기법 등이 존재하나, 이러한 종래의 기법들은 모두 수행 가능한 최적화 방법을 모두 고려하여 수행되는 것이 아니라 개발자의 휴리스틱에 기반하여 제한적으로 적용될 수 있는 알고리즘이라는 한계점을 갖는다.
달리 말해, 딥러닝 모델이 구현되는 컴퓨팅 플랫폼의 속성에 기초하여 최상의 성능을 보이도록 딥러닝 작업 할당을 자동적으로 최적화하는 기법은 현재까지 개시된바 없으므로, 이에 대한 개발이 요구된다.
본원의 배경이 되는 기술은 한국등록특허공보 제10-2086815호에 개시되어 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 소정의 딥러닝 모델이 구현되는 컴퓨팅 플랫폼의 속성에 기반하여 최적의 성능으로 딥러닝 모델이 구현될 수 있도록 하는 최적화된 작업 할당 계획을 제공하는 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법을 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법은, 소정의 디바이스에서 구현된 딥러닝 모델에 대한 상기 디바이스의 플랫폼 정보에 따른 실행 데이터를 포함하는 테스트 데이터를 준비하는 단계, 상기 테스트 데이터에 기초하여, 타겟 딥러닝 모델을 구현하기 위한 최적화된 작업 할당 계획을 제공하는 스케줄러를 학습시키는 단계, 상기 타겟 딥러닝 모델과 연계된 정보를 수신하는 단계 및 상기 스케줄러에 기반하여 상기 타겟 딥러닝 모델에 대한 최적화된 작업 할당 계획을 생성하는 단계를 포함할 수 있다.
또한, 상기 플랫폼 정보는 상기 딥러닝 모델이 실행되는 컴퓨팅 플랫폼의 유형 정보를 포함할 수 있다.
또한, 상기 컴퓨팅 플랫폼은, 임베디드 환경, 모바일 환경, 서버 환경 또는 데스크탑 환경을 포함할 수 있다.
또한, 상기 플랫폼 정보는, 상기 컴퓨팅 플랫폼이 중앙 처리 장치(Central Processing Unit, CPU) 및 그래픽 처리 장치(Graphics Processing Unit, GPU) 중 적어도 하나를 포함하는지 여부 및 상기 컴퓨팅 플랫폼에 포함되는 적어도 하나의 상기 중앙 처리 장치 및 상기 그래픽 처리 장치의 기종 정보를 포함할 수 있다.
또한, 상기 스케줄러를 학습시키는 단계는, 상기 실행 데이터 각각에 대응하는 보상을 통한 강화 학습(Reinforcement learning)에 기초하여 상기 스케줄러를 학습시킬 수 있다.
또한, 상기 스케줄러를 학습시키는 단계는, 상기 실행 데이터 각각에 대응하는 딥러닝 모델의 런타임 데이터를 수집하는 단계 및 상기 런타임 데이터에 기초하여 결정되는 상기 보상을 통해 상기 스케줄러를 조정하는 단계를 포함할 수 있다.
또한, 상기 타겟 딥러닝 모델과 연계된 정보는, 상기 타겟 딥러닝 모델의 연산 라이브러리 정보 및 계층 정보를 포함할 수 있다.
또한, 상기 수신하는 단계는, 타겟 디바이스에 대한 상기 플랫폼 정보를 수신할 수 있다.
또한, 상기 최적화된 작업 할당 계획을 생성하는 단계는, 상기 수신한 플랫폼 정보를 고려하여 상기 타겟 디바이스에서 상기 타겟 딥러닝 모델이 구현되는 경우에 대한 상기 최적화된 작업 할당 계획을 생성할 수 있다.
한편, 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치는, 소정의 디바이스에서 구현된 딥러닝 모델에 대한 상기 디바이스의 플랫폼 정보에 따른 실행 데이터를 포함하는 테스트 데이터를 준비하는 수집부, 상기 테스트 데이터에 기초하여, 타겟 딥러닝 모델을 구현하기 위한 최적화된 작업 할당 계획을 제공하는 스케줄러를 학습시키는 학습부 및 상기 타겟 딥러닝 모델과 연계된 정보를 수신하고, 상기 스케줄러에 기반하여 상기 타겟 딥러닝 모델에 대한 최적화된 작업 할당 계획을 생성하는 분석부를 포함할 수 있다.
또한, 상기 플랫폼 정보는, 임베디드 환경, 모바일 환경, 서버 환경 또는 데스크탑 환경을 포함하는 상기 딥러닝 모델이 실행되는 컴퓨팅 플랫폼의 유형 정보, 상기 컴퓨팅 플랫폼이 중앙 처리 장치(Central Processing Unit, CPU) 및 그래픽 처리 장치(Graphics Processing Unit, GPU) 중 적어도 하나를 포함하는지 여부 및 상기 컴퓨팅 플랫폼에 포함되는 적어도 하나의 상기 중앙 처리 장치 및 상기 그래픽 처리 장치의 기종 정보를 포함할 수 있다.
또한, 상기 학습부는, 상기 실행 데이터 각각에 대응하는 보상을 통한 강화 학습(Reinforcement learning)에 기초하여 상기 스케줄러를 학습시킬 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 소정의 딥러닝 모델이 구현되는 컴퓨팅 플랫폼의 속성에 기반하여 최적의 성능으로 딥러닝 모델이 구현될 수 있도록 하는 최적화된 작업 할당 계획을 제공하는 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법을 제공할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 강화학습을 통해 자동 조정되는 스케줄러를 통해 다양한 하드웨어 딥러닝 워크로드에 대한 최적의 구성 지침을 제공할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 딥러닝 모델이 구현 및 실행되는 하드웨어의 속성에 대응하여 학습, 추론 등에 소요되는 시간을 저감할 수 있는 최적화된 작업 할당 계획을 수립할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 기존에 개발된 인공지능 프레임워크에 지정된 딥러닝 워크로드는 다양한 하드웨어 백엔드에 배포할 수 있는 엔드-투-엔드(End-to-End) 컴파일 및 최적화 스택을 구축할 수 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1은 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치를 포함하는 인공지능 시스템의 개략적인 구성도이다.
도 2는 타겟 디바이스의 플랫폼 유형에 따라 구분되는 아키텍쳐 특성을 예시적으로 나타낸 도면이다.
도 3은 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치의 개략적인 구성도이다.
도 4는 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법에 대한 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본원은 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법에 관한 것이다.
도 1은 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치를 포함하는 인공지능 시스템의 개략적인 구성도이다.
도 1을 참조하면, 본원의 일 실시예에 따른 인공지능 시스템(10)은 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치(100)(이하, '딥러닝 작업 할당 장치(100)'라 한다.) 및 타겟 디바이스(200)를 포함할 수 있다.
또한, 도면에는 도시되지 않았으나, 딥러닝 작업 할당 장치(100) 및 타겟 디바이스(200) 상호간은 네트워크(미도시)를 통해 통신할 수 있다. 네트워크(미도시)는 단말들 및 서버들과 같은 각각의 노드 상호간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(미도시)의 일 예에는, 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) 네트워크 등이 포함되나 이에 한정되지는 않는다. 다른 예로, 딥러닝 작업 할당 장치(100)는 타겟 디바이스(200) 내에 탑재(설치)되는 형태로 구현될 수 있다.
타겟 디바이스(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) 단말기 같은 모든 종류의 무선 통신 장치일 수 있다.
딥러닝 작업 할당 장치(100)는 소정의 디바이스에서 구현된 딥러닝 모델에 대한 디바이스의 플랫폼 정보에 따른 실행 데이터를 포함하는 테스트 데이터(1)를 준비할 수 있다. 예시적으로, 도 1을 참조하면, 딥러닝 작업 할당 장치(100)는 타겟 디바이스(200)로부터 소정의 딥러닝 모델에 대한 실행 데이터를 테스트 데이터(1)로서 수집하여 보유하는 것일 수 있으나 이에만 한정되는 것은 아니다.
다른 예로, 딥러닝 작업 할당 장치(100)는 타겟 디바이스(200)가 아닌 소정의 디바이스(본원의 구현예에 따라 서로 다른 복수의 디바이스를 포함할 수 있다.)에서 구현된 소정의 딥러닝 모델에 대한 실행 데이터를 테스트 데이터(1)로서 수집하되, 수집되는 테스트 데이터(1)는 디바이스의 플랫폼 정보 및 딥러닝 모델의 유형 정보 중 적어도 하나가 변경된 다양한 디바이스 환경과 딥러닝 모델의 유형에 대응하여 수집되는 것일 수 있다.
이와 관련하여, 딥러닝 작업 할당 장치(100)는 테스트 데이터(1)에 기초한 후술하는 강화학습(Reinforcement Leaning) 방식으로 스케줄러(1000)가 자동 조정되도록 스케줄러(1000)를 학습시키므로, 학습이 완료된 스케줄러(1000)가 플랫폼 정보, 구현하려는 딥러닝 모델의 속성 등에 대응하는 최적화된 구성 방법을 제공할 수 있도록 다양한 컴퓨팅 플랫폼 환경, 다양한 유형의 딥러닝 모델 등과 연계된 조건이 변경된 상태에서 수집되는 다수의 실행 데이터를 테스트 데이터(1)로서 확보할 수 있다.
본원의 실시예에 관한 설명에서, '플랫폼 정보'는 소정의 딥러닝 모델이 실행되는 컴퓨팅 플랫폼의 유형 정보를 포함할 수 있다. 구체적으로 예시하면, 컴퓨팅 플랫폼은 임베디드 환경, 모바일 환경, 서버 환경 또는 데스크탑 환경 등을 포함할 수 있으나, 이에만 한정되는 것은 아니다.
도 2는 타겟 디바이스의 플랫폼 유형에 따라 구분되는 아키텍쳐 특성을 예시적으로 나타낸 도면이다.
도 2를 참조하면, 딥러닝 모델이 구현 및 실행되는 하드웨어(디바이스) 환경에 따라 디바이스 내의 메모리를 통한 데이터 전송 및 컴퓨팅 작업 전송으로 인한 오버헤드 발생 정도 등이 다양하게 변화할 수 있으며, 특히, 임베디드 환경, 모바일 환경, 데스크탑 환경 등의 컴퓨팅 플랫폼에서 구비되는 프로세싱 장치에 대한 메모리 구조는 각각 상이할 수 있고, 이에 따라 딥러닝 추론에서 CPU(Central Processing Unit) 장치 및 GPU(Graphics Processing Unit) 장치 모두를 활용한 이기종 아키텍처 기반의 병렬처리가 활용되는데 가장 큰 어려움으로 작용하게 된다.
구체적으로, 도 2의 (a)와 같이 디바이스에 CPU 장치와 GPU 장치가 마련되되, CPU 장치와 GPU 장치의 기종(제조사)이 동일하지 않은 경우(예를 들면, 인텔 사의 CPU와 엔비디아 사의 GPU를 함께 탑재한 디바이스 등) 등에서는, GPU 장치의 보드와 디바이스의 메모리(예를 들면, Host memory 등) 사이에 빈번한 데이터 전송과 컴퓨팅 작업 전송으로 인한 오버헤드가 과도하게 발생할 수 있다.
반면에, 도 2의 (b)와 같이 디바이스 탑재된 CPU 장치와 GPU 장치가 동일한 메모리(Unified Memory)를 사용하는 경우(예를 들면, 임베디드 환경 또는 모바일 환경의 컴퓨팅 플랫폼을 사용하는 경우, 동일 제조사의 CPU 장치 및 GPU 장치가 탑재된 데스크탑 플랫폼을 사용하는 경우 등)에는 CPU 장치 및 GPU 장치가 통합된 메모리를 사용하기 때문에 데이터 전송에 의해 발생하는 오버헤드가 도 2의 (a)의 환경과 대비하여 과도하지 않을 수 있다.
또한, 임베디드 환경의 컴퓨팅 플랫폼과 관련하여, 임베디드 시스템 환경에서도 GPU를 탑재한 임베디드 디바이스들이 등장함에 따라 이를 이용한 고속 병렬 연산이 가능해져, 방대한 연산량을 요구하는 딥러닝을 임베디드 환경에서 구현하는 것에 대한 요구가 높아지고 있다. 그러나, 종래의 대부분의 인공지능 프레임워크들은 데스크탑 환경, 서버 환경 등에서 빠른 학습을 위해 가능한 많은 병렬 컴퓨팅 자원을 활용하는데 최적화되어 있어, 추론(Inference)의 실시간 성능과 저전력, 낮은 메모리 소모량 등이 중요한 임베디드 환경에 있어서 큰 장애가 될 수 있다. 특히, 임베디드 환경은 서버 환경 등과는 다른 아키텍쳐 특성을 가지며, 특히, 임베디드 환경에서는 도 2의 (a)와 같이 호스트와 GPU 간에 메모리가 분리되지 않고, 공유되는 경우가 많아 이를 고려한 딥러닝 모델의 구현이 요구된다.
한편, CPU 장치를 이용한 멀티 쓰레드 작업과 관련하여서는, 통상적으로 Big/Little 멀티 쓰레드 구조가 활용될 수 있기 때문에, 어떤 쓰레드가 어떤 작업에 선택(Thread binding)되고 얼마나 많은 쓰레드가 선택되는지에 따라 딥러닝 모델의 성능이나 딥러닝 모델을 구현하기 위해 소모되는 리소스 등이 달라질 수 있다.
이와 관련하여, 본원의 일 실시예에 따른 플랫폼 정보는 컴퓨팅 플랫폼이 중앙 처리 장치(Central Processing Unit, CPU) 및 그래픽 처리 장치(Graphics Processing Unit, GPU) 중 적어도 하나를 포함하는지 여부를 포함할 수 있다. 또한, 본원의 일 실시예에 따른 플랫폼 정보는 컴퓨팅 플랫폼에 포함되는 적어도 하나의 중앙 처리 장치(CPU) 및 그래픽 처리 장치(GPU)의 기종 정보를 포함할 수 있다. 여기서, 기종 정보란 타겟 디바이스(200) 등에 중앙 처리 장치 및 그래픽 처리 장치를 모두 포함하는 경우, 중앙 처리 장치 및 그래픽 처리 장치의 기종, 제조사 등이 동일한지에 대한 정보 또는 중앙 처리 장치 및 그래픽 처리 장치의 호환성에 대한 정보, 공유 메모리의 존부 등을 포함할 수 있다.
특히, 플랫폼 정보는 타겟 디바이스(200) 등이 중앙 처리 장치 및 그래픽 처리 장치를 모두 포함하는 디바이스인 경우, 디바이스가 중앙 처리 장치 및 그래픽 처리 장치에 의해 공유되는 메모리를 포함하는지 여부를 의미할 수 있다.
이와 관련하여, 후술하는 바와 같이, 학습이 완료된 스케줄러(1000)는 중앙 처리 장치 및 그래픽 처리 장치를 포함하는 타겟 디바이스(200)가 중앙 처리 장치 및 그래픽 처리 장치에 의해 공유되는 메모리를 포함하는지 여부에 기초하여 작업 할당 계획을 상이하게 출력하도록 동작할 수 있으며, 구체적으로, 타겟 디바이스(200)에 중앙 처리 장치 및 그래픽 처리 장치에 의해 공유되는 메모리가 존재하지 않는 경우에는, 작업 할당 계획에 메모리 재사용, 크로스 쓰레드 등 메모리와 프로세싱 장치의 데이터 전송 및 컴퓨팅 작업 전송으로 인한 오버 헤드를 감소시킬 수 있는 스케줄링 기법이 포함될 수 있으나, 이에만 한정되는 것은 아니다.
또한, 딥러닝 작업 할당 장치(100)는 수집된 테스트 데이터(1)에 기초하여, 타겟 딥러닝 모델을 구현하기 위한 작업 할당 계획을 제공하는 스케줄러를 학습시킬 수 있다. 구체적으로, 본원의 일 실시예에 따르면, 딥러닝 작업 할당 장치(100)는 테스트 데이터(1)에 포함된 실행 데이터 각각에 대응하는 보상을 통하여 학습을 수행하는 강화 학습(Reinforcement learning) 방식에 기초하여 스케줄러를 학습시키는 것일 수 있다.
여기서, 강화 학습(Reinforcement learning)이란, 주어진 상태(state)에 대응한 행동(action)의 결과에 대하여 부여되는 보상(reward)을 통해 학습을 수행하는 에이전트(agent)가 최대의 보상을 받을 수 있는 정책을 스스로 수립하도록 학습시키는 기계 학습(machine learning)의 한 유형으로, 강화 학습에 대한 사항은 통상의 기술자에게 자명한 사항이므로, 자세한 설명은 생략하도록 한다. 본원에서는 종래에 이미 공지되었거나 향후 개발되는 다양한 강화 학습 알고리즘 모델이 적용될 수 있다.
이와 관련하여, 딥러닝 작업 할당 장치(100)는 학습을 수행하는 에이전트(agent)인 스케줄러(1000)가 주어진 상황(보다 구체적으로, 소정의 플랫폼 정보에 대응되는 디바이스에서 특정 유형의 딥러닝 모델을 구현하려는 경우 등)에 대하여 보상(reward)이 최대가 되도록 하는 작업 할당 계획을 수립하는 방향으로 학습을 수행할 수 있다. 본원의 일 실시예에 따르면, 실행 데이터 각각에 대응하여 스케줄러(1000)에게 부여되는 보상(reward)은 딥러닝 모델의 계층(레이어) 각각의 실행 시간 및 딥러닝 모델의 전체 학습 시간, 프로세싱 장치(CPU 장치 또는 GPU 장치)에서 발생하는 오버헤드 수준, 학습된 딥러닝 모델에 의한 추론 성능(해당 딥러닝 모델이 갖는 목적에 대응하는 분류 정확도 또는 식별 정확도 등), 메모리 접근 빈도, 데이터 전송 시간 등에 기초하여 부여되는 것일 수 있다.
예시적으로, 딥러닝 작업 할당 장치(100)는 소정의 딥러닝 모델에 대한 실행 데이터에 기초하여, 딥러닝 모델의 전체 학습 시간 또는 딥러닝 모델의 계층(레이어) 각각의 실행시간이 작아지게 하는 작업 할당 계획을 스케줄러(1000)가 수립하였을 때 보다 많은 보상(reward)이 부여되도록 하여 학습이 진행될수록 스케줄러(1000)가 딥러닝 모델의 계층(레이어) 각각의 실행 시간, 전체 학습 시간 등이 감소될 수 있도록 하는 방향으로 작업 할당 계획을 수립하도록 유도할 수 있으나, 이에만 한정되는 것은 아니다.
본원의 일 실시예에 따르면, 딥러닝 작업 할당 장치(100)는 수집된 테스트 데이터(1)에 포함된 실행 데이터 각각에 대응하는 딥러닝 모델의 런타임(Runtime) 데이터를 수집할 수 있다. 또한, 딥러닝 작업 할당 장치(100)는 수집된 런타임 데이터에 기초하여 강화학습을 위한 보상을 결정하고, 결정된 보상을 통해 스케줄러(1000)를 조정하는 방식으로 학습을 반복할수록 스케줄러(1000)가 플랫폼 정보에 기초한 최적의 작업 할당 계획을 출력할 수 있도록 스케줄러(1000)를 학습시킬 수 있다.
즉, 딥러닝 작업 할당 장치(100)는 딥러닝 연산 구성 공간에서 최상의 작업 할당 계획을 탐색하기 위한 블랙 박스(Black box) 최적화를 통해 스케줄러(1000)를 학습시킬 수 있다. 달리 말해, 딥러닝 작업 할당 장치(100)는, 소프트웨어 검사 기법 중 하나인 블랙 박스(Black box) 최적화를 통해 소정의 딥러닝 모델의 내부 구조나 작동 원리를 정확하게 모르는 경우에도 딥러닝 모델의 동작 결과(예를 들면, 추론 성능, 실행 시간, 학습 시간, 메모리 접근량, 리소스 소모량 등)를 기초로 딥러닝 모델의 성능을 개선할 수 있는 방향으로의 작업 할당 계획이 수립될 수 있도록 스케줄러(1000)를 학습시킬 수 있다.
또한, 딥러닝 작업 할당 장치(100)는 타겟 딥러닝 모델과 연계된 정보를 수신할 수 있다. 여기서, 타겟 딥러닝 모델과 연계된 정보란, 사용자가 타겟 디바이스(200) 환경에서 구현하려는 딥러닝 모델인 타겟 딥러닝 모델에 대한 정보로서, 학습된 스케줄러(1000)에 의해 최적화된 작업 할당 계획을 제공받고자 하는 딥러닝 모델에 대한 유형, 기능, 구조, 속성 등을 의미할 수 있다.
구체적으로, 타겟 딥러닝 모델과 연계된 정보는, 타겟 딥러닝 모델의 연산 라이브러리 정보(2) 및 타겟 딥러닝 모델의 구조 정보(3)를 포함할 수 있다. 예를 들어, 타겟 딥러닝 모델의 구조 정보(3)는 타겟 딥러닝 모델에 포함되는 계층 정보를 포함할 수 있다. 예를 들어, 계층 정보는 타겟 딥러닝 모델과 연계된 네트워크 구조에 포함된 계층(레이어)의 수, 계층 각각의 유형(예를 들면, 컨볼루션 레이어, Fully-connected 레이어 등) 정보, 계층(레이어)의 크기, 파라미터의 유형, 파라미터의 수 등을 포함할 수 있다.
본원의 일 실시예에 따르면, 연산 라이브러리 정보는 타겟 딥러닝 모델에 대하여 선택된 인공지능 프레임워크에서 호출될 수 있는 도구, 함수들의 집합을 의미할 수 있으며, 이에 따라 연산 라이브러리 정보는, 타겟 딥러닝 모델이 구현되는 기반이 되는 인공지능 프레임워크(예를 들면, 전술한 Tensorflow, Pytorch, Caffe, Mxnet 등)에 따라 다르게 결정될 수 있고, 스케줄러(1000)는 연산 라이브러리 정보에 반영된 타겟 딥러닝 모델의 기반이 되는 인공지능 프레임워크의 유형에 기초하여 최적화된 작업 할당 계획을 수립하는 것일 수 있다.
또한, 딥러닝 작업 할당 장치(100)는 타겟 디바이스(200)에 대한 플랫폼 정보를 수신할 수 있다. 보다 구체적으로 이해를 돕기 위해 예시하면, 타겟 디바이스(200)에 대한 플랫폼 정보는 타겟 딥러닝 모델을 구현하고자 하는 디바이스인 타겟 디바이스(200)의 컴퓨팅 플랫폼의 유형 정보(예를 들면, 타겟 디바이스(200)에 대응하는 환경이 임베디드 환경, 모바일 환경, 서버 환경 또는 데스크탑 환경인지 여부 등), 처리(프로세싱) 장치의 유형 정보, 처리(프로세싱) 장치의 기종 정보 등을 포함할 수 있다.
또한, 딥러닝 작업 할당 장치(100)는 학습된 스케줄러(1000)에 기반하여 타겟 딥러닝 모델에 대한 최적화된 작업 할당 계획을 생성할 수 있다. 구체적으로, 딥러닝 작업 할당 장치(100)의 스케줄러(1000)는 수신된 타겟 딥러닝 모델과 연계된 정보 및 타겟 디바이스(200)에 대한 플랫폼 정보 중 적어도 하나에 기초하여 최적화된 작업 할당 계획을 생성할 수 있다.
구체적으로, 본원의 일 실시예에 따르면, 스케줄러(1000)가 생성하는 작업 할당 계획은 루프 시퀀스에 대한 수정, 타겟 디바이스(200)와 연계된 메모리 계층의 최적화 등 타겟 디바이스(200)에 구비되는 프로세싱 장치(예를 들면, 적어도 하나의 CPU 장치 및 적어도 하나의 GPU 장치 중 적어도 하나)와 연계된 최적화 방안을 포함할 수 있다.
다른 예로, 스케줄러(1000)가 생성하는 작업 할당 계획은 슬라이스(Slice)의 크기, 루프 해제 인자(파라미터) 등과 같은 소정의 계획 가능한 매개 변수를 특정 레벨로 선택하는 것을 포함할 수 있다.
또 다른 예로, 스케줄러(1000)에 의해 생성되는 작업 할당 계획은 타겟 디바이스(200)의 메모리 계층 구조(아키텍쳐)와 연계하여, 하위 메모리에서 상위 메모리로 데이터(예를 들면, 딥러닝 모델의 계층별 입력 데이터, 출력 데이터 등) 전송하는 시간적 계획에 해당하는 스케줄(tiling), 타겟 디바이스(200)에 마련되는 프로세싱 장치별 각각의 코어에 딥러닝 모델의 계층별로 요구되는 연산 중 어느 연산을 할당할지에 대한 계획(달리 말해, spatial ordering), 반복문(루프문)을 수행하는 순서를 변경하여 데이터 재사용을 최대화하기 위한 최적화(loop reordering) 적용 여부 등에 대한 사항이 포함될 수 있다.
또한, 스케줄러(1000)가 생성하는 작업 할당 계획에는 타겟 디바이스(200)에서의 메모리 접근(액세스) 방식, 데이터 재사용 활용 여부, 크로스 쓰레드 사용, 파이프라인 종속성, 선형화 모드 사용 여부 등 타겟 딥러닝 모델의 구현에 영향을 미치는 다양한 최적화 요소가 고려될 수 있다. 보다 구체적으로, 딥러닝 작업 할당 장치(100)는 스케줄러(1000)에 의해 작업 할당 계획이 생성 및 적용되기 전의 타겟 딥러닝 모델과 관련한 전술한 다양한 최적화 요소의 수정 전 설정값을 타겟 딥러닝 모델과 연계된 정보로서 수신하고, 스케줄러(1000) 장치가 수신한 설정값을 최적화하여 제공하는 형태로 작업 할당 계획을 출력하는 것일 수 있다.
이와 관련하여, 본원의 일 실시예에 따르면, 딥러닝 작업 할당 장치(100)는 타겟 디바이스(200)에서 타겟 딥러닝 모델이 구현되는 경우에 대한 최적화된 작업 할당 계획을 생성하되, 딥러닝 작업 할당 장치(100)가 타겟 디바이스(200)에 대한 플랫폼 정보를 수신하지 않은 경우에도, 타겟 딥러닝 모델에 대한 최적화된 작업 할당 계획을 생성하도록 동작할 수 있다.
구체적으로, 딥러닝 작업 할당 장치(100)에 의한 스케줄러(1000)의 강화 학습 과정에서, 수집된 테스트 데이터(1)에 포함된 딥러닝 모델의 런타임 데이터에 기초하여 스케줄러(1000)가 학습(탐색) 과정에서 조정될 수 있는 것과 마찬가지로, 타겟 딥러닝 모델이 타겟 디바이스(200)에서 실행되는 경우 수집되는 런타임 데이터(예를 들면, 타겟 딥러닝 모델의 계층(레이어) 각각의 실행 결과를 의미할 수 있다.)를 활용하여 타겟 디바이스(200)에 대한 플랫폼 정보가 명확하지 않은 경우에도, 학습된 스케줄러(1000)는 주어진 하드워드 백엔드(달리 말해, 타겟 디바이스(200)의 디바이스 환경 등)에서 타겟 딥러닝 모델의 각 계층(레이어)의 실행 시간을 예측하고, 예측 결과 및 런타임 데이터에 반영된 실제 실행 시간의 오차 등에 기초하여 작업 할당 계획을 지속적으로 갱신하도록 동작할 수 있다.
즉, 딥러닝 작업 할당 장치(100)는 강화 학습을 통해 스케줄러(1000)가 작업 할당 계획을 생성하고, 해당 작업 할당 계획에 따른 타겟 딥러닝 모델에 대한 실행 데이터(런타임 데이터)를 통해 보상을 획득하는 일련의 시퀀스를 반복할수록 스케줄러(1000)가 딥러닝 모델의 유형 또는 컴퓨팅 플랫폼 등에 대한 맞춤형의 작업 할당 계획을 제공하도록 스케줄러(1000)를 조정(개선)할 수 있으므로, 백엔드 단에서 정기적인 업데이트를 수행하지 않더라도 스케줄러(1000)는 자동으로 업데이트 될 수 있다.
도 3은 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치의 개략적인 구성도이다.
도 3을 참조하면, 딥러닝 작업 할당 장치(100)는, 수집부(110), 학습부(120) 및 분석부(130)를 포함할 수 있다.
수집부(110)는, 소정의 디바이스에서 구현된 딥러닝 모델에 대한 디바이스의 플랫폼 정보에 따른 실행 데이터를 포함하는 테스트 데이터를 준비할 수 있다.
학습부(120)는, 준비된 테스트 데이터에 기초하여, 타겟 딥러닝 모델을 구현하기 위한 최적화된 작업 할당 계획을 제공하는 스케줄러(1000)를 학습시킬 수 있다.
구체적으로, 학습부(120)는, 테스트 데이터(1) 포함된 실행 데이터 각각에 대응하는 보상을 통한 강화 학습(Reinforcement learning)에 기초하여 스케줄러(1000)를 학습시킬 수 있다.
분석부(130)는, 타겟 딥러닝 모델과 연계된 정보를 수신하고, 학습된 스케줄러(1000)에 기반하여 타겟 딥러닝 모델에 대한 최적화된 작업 할당 계획을 생성할 수 있다.
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.
도 4는 본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법에 대한 동작 흐름도이다.
도 4에 도시된 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법은 앞서 설명된 딥러닝 작업 할당 장치(100)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 딥러닝 작업 할당 장치(100)에 대하여 설명된 내용은 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법에 대한 설명에도 동일하게 적용될 수 있다.
도 4를 참조하면, 단계 S11에서 수집부(110)는, 소정의 디바이스에서 구현된 딥러닝 모델에 대한 디바이스의 플랫폼 정보에 따른 실행 데이터를 포함하는 테스트 데이터(1)를 준비할 수 있다. 여기서, 플랫폼 정보는 테스트 데이터(1)를 수집하기 위해 실행된 딥러닝 모델이 실행되는 컴퓨팅 플랫폼의 유형 정보를 포함할 수 있다.
다음으로, 단계 S12에서 학습부(120)는, 단계 S11을 통해 준비된 테스트 데이터(1)에 기초하여, 타겟 딥러닝 모델을 구현하기 위한 최적화된 작업 할당 계획을 제공하는 스케줄러(1000)를 학습시킬 수 있다.
또한, 단계 S12에서 학습부(120)는, 테스트 데이터(1)에 포함된 실행 데이터 각각에 대응하는 보상을 통한 강화 학습(Reinforcement learning)에 기초하여 스케줄러(1000)를 학습시킬 수 있다.
구체적으로, 단계 S12에서 학습부(120)는, 실행 데이터 각각에 대응하는 딥러닝 모델의 런타임 데이터를 수집하고, 수집된 런타임 데이터에 기초하여 결정되는 보상을 통해 스케줄러(1000)를 조정하는 방식으로 강화학습을 통해 스케줄러(1000)를 학습시킬 수 있다.
다음으로, 단계 S131에서 분석부(130)는, 타겟 딥러닝 모델과 연계된 정보를 수신할 수 있다. 여기서, 타겟 딥러닝 모델과 연계된 정보는, 타겟 딥러닝 모델의 연산 라이브러리 정보 및 타겟 딥러닝 모델의 계층 정보를 포함할 수 있다.
다음으로, 단계 S132에서 분석부(130)는, 타겟 디바이스(200)에 대한 플랫폼 정보를 수신할 수 있다.
다음으로, 단계 S14에서 분석부(130)는, 수신한 타겟 딥러닝 모델과 연계된 정보 및 타겟 디바이스(200)의 플랫폼 정보 중 적어도 하나를 고려하여 타겟 디바이스(200)에서 타겟 딥러닝 모델이 구현되는 경우에 대응하는 최적화된 작업 할당 계획을 생성할 수 있다.
또한, 본원의 일 실시예에 따르면, 타겟 디바이스(200)에 대한 플랫폼 정보가 수신되지 않은 경우(달리 말해, 단계 S132가 생략된 경우)에도, 단계 S14에서 분석부(130)는, 타겟 딥러닝 모델이 타겟 디바이스(200)에서 실행되는 경우 수집되는 런타임 데이터를 활용하여 타겟 딥러닝 모델의 각 계층(레이어)의 실행 시간을 예측하고, 예측 결과 및 타겟 딥러닝 모델의 실행에 따라 수집된 런타임 데이터에 반영된 실제 실행 시간 사이의 오차 등에 기초하여 작업 할당 계획을 지속적으로 갱신하는 방식으로 최적화된 작업 할당 계획을 생성할 수 있다.
상술한 설명에서, 단계 S11 내지 S14는 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본원의 일 실시예에 따른 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 전술한 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법은 기록 매체에 저장되는 컴퓨터에 의해 실행되는 컴퓨터 프로그램 또는 애플리케이션의 형태로도 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
10: 인공지능 시스템
100: 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치
110: 수집부
120: 학습부
130: 분석부
1000: 스케줄러
200: 타겟 디바이스

Claims (10)

  1. 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 방법으로서,
    소정의 디바이스에서 구현된 딥러닝 모델에 대한 상기 디바이스의 플랫폼 정보에 따른 실행 데이터를 포함하는 테스트 데이터를 준비하는 단계;
    상기 테스트 데이터에 기초하여, 타겟 딥러닝 모델을 구현하기 위한 최적화된 작업 할당 계획을 제공하는 스케줄러를 학습시키는 단계;
    상기 타겟 딥러닝 모델과 연계된 정보를 수신하는 단계;
    상기 스케줄러에 기반하여 상기 타겟 딥러닝 모델에 대한 최적화된 작업 할당 계획을 생성하는 단계; 및
    상기 타겟 딥러닝 모델이 타겟 디바이스에서 실행될 때의 상기 타겟 딥러닝 모델의 실행 시간을 예측하고, 상기 예측 결과 및 상기 타겟 딥러닝 모델에 대한 런타임 데이터 간의 오차에 기초하여 상기 작업 할당 계획을 갱신하는 단계,
    를 포함하고,
    상기 플랫폼 정보는,
    상기 컴퓨팅 플랫폼이 중앙 처리 장치(Central Processing Unit, CPU) 및 그래픽 처리 장치(Graphics Processing Unit, GPU) 중 적어도 하나를 포함하는지 여부 및 상기 컴퓨팅 플랫폼이 상기 중앙 처리 장치 및 상기 그래픽 처리 장치를 모두 포함하는 경우 상기 컴퓨팅 플랫폼이 중앙 처리 장치 및 그래픽 처리 장치에 의해 공유되는 공유 메모리를 포함하는지 여부를 포함하고,
    상기 스케줄러는,
    상기 공유 메모리를 미포함하는 상기 컴퓨팅 플랫폼에 대하여 메모리와 처리 장치 간의 데이터 전송 및 컴퓨팅 작업 전송으로 인한 오버헤드를 감소시키는 스케줄링 기법을 포함하는 상기 작업 할당 계획을 제공하도록 학습되는 것인, 딥러닝 작업 할당 방법.
  2. 제1항에 있어서,
    상기 플랫폼 정보는,
    상기 딥러닝 모델이 실행되는 컴퓨팅 플랫폼의 유형 정보를 포함하고,
    상기 컴퓨팅 플랫폼은,
    임베디드 환경, 모바일 환경, 서버 환경 또는 데스크탑 환경을 포함하는 것인, 딥러닝 작업 할당 방법.
  3. 제2항에 있어서,
    상기 플랫폼 정보는,
    상기 컴퓨팅 플랫폼에 포함되는 적어도 하나의 상기 중앙 처리 장치 및 상기 그래픽 처리 장치의 기종 정보를 더 포함하는 것인, 딥러닝 작업 할당 방법.
  4. 제1항에 있어서,
    상기 스케줄러를 학습시키는 단계는,
    상기 실행 데이터 각각에 대응하는 보상을 통한 강화 학습(Reinforcement learning)에 기초하여 상기 스케줄러를 학습시키는 것인, 딥러닝 작업 할당 방법.
  5. 제4항에 있어서,
    상기 스케줄러를 학습시키는 단계는,
    상기 실행 데이터 각각에 대응하는 딥러닝 모델의 런타임 데이터를 수집하는 단계; 및
    상기 런타임 데이터에 기초하여 결정되는 상기 보상을 통해 상기 스케줄러를 조정하는 단계,
    를 포함하는 것인, 딥러닝 작업 할당 방법.
  6. 제4항에 있어서,
    상기 타겟 딥러닝 모델과 연계된 정보는,
    상기 타겟 딥러닝 모델의 연산 라이브러리 정보 및 계층 정보를 포함하는 것인, 딥러닝 작업 할당 방법.
  7. 제6항에 있어서,
    상기 수신하는 단계는,
    상기 타겟 디바이스에 대한 상기 플랫폼 정보를 더 수신하고,
    상기 최적화된 작업 할당 계획을 생성하는 단계는,
    상기 수신한 플랫폼 정보를 고려하여 상기 타겟 디바이스에서 상기 타겟 딥러닝 모델이 구현되는 경우에 대한 상기 최적화된 작업 할당 계획을 생성하는 것인, 딥러닝 작업 할당 방법.
  8. 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치에 있어서,
    소정의 디바이스에서 구현된 딥러닝 모델에 대한 상기 디바이스의 플랫폼 정보에 따른 실행 데이터를 포함하는 테스트 데이터를 준비하는 수집부;
    상기 테스트 데이터에 기초하여, 타겟 딥러닝 모델을 구현하기 위한 최적화된 작업 할당 계획을 제공하는 스케줄러를 학습시키는 학습부; 및
    상기 타겟 딥러닝 모델과 연계된 정보를 수신하고, 상기 스케줄러에 기반하여 상기 타겟 딥러닝 모델에 대한 최적화된 작업 할당 계획을 생성하는 분석부,
    를 포함하고,
    상기 분석부는,
    상기 타겟 딥러닝 모델이 타겟 디바이스에서 실행될 때의 상기 타겟 딥러닝 모델의 실행 시간을 예측하고, 상기 예측 결과 및 상기 타겟 딥러닝 모델에 대한 런타임 데이터 간의 오차에 기초하여 상기 작업 할당 계획을 갱신하고,
    상기 플랫폼 정보는,
    상기 컴퓨팅 플랫폼이 중앙 처리 장치(Central Processing Unit, CPU) 및 그래픽 처리 장치(Graphics Processing Unit, GPU) 중 적어도 하나를 포함하는지 여부 및 상기 컴퓨팅 플랫폼이 상기 중앙 처리 장치 및 상기 그래픽 처리 장치를 모두 포함하는 경우 상기 컴퓨팅 플랫폼이 중앙 처리 장치 및 그래픽 처리 장치에 의해 공유되는 공유 메모리를 포함하는지 여부를 포함하고,
    상기 스케줄러는,
    상기 공유 메모리를 미포함하는 상기 컴퓨팅 플랫폼에 대하여 메모리와 처리 장치 간의 데이터 전송 및 컴퓨팅 작업 전송으로 인한 오버헤드를 감소시키는 스케줄링 기법을 포함하는 상기 작업 할당 계획을 제공하도록 학습되는 것인, 딥러닝 작업 할당 장치.
  9. 제8항에 있어서,
    상기 플랫폼 정보는,
    임베디드 환경, 모바일 환경, 서버 환경 또는 데스크탑 환경을 포함하는 상기 딥러닝 모델이 실행되는 컴퓨팅 플랫폼의 유형 정보 및 상기 컴퓨팅 플랫폼에 포함되는 적어도 하나의 상기 중앙 처리 장치 및 상기 그래픽 처리 장치의 기종 정보를 더 포함하는 것인, 딥러닝 작업 할당 장치.
  10. 제9항에 있어서,
    상기 학습부는,
    상기 실행 데이터 각각에 대응하는 보상을 통한 강화 학습(Reinforcement learning)에 기초하여 상기 스케줄러를 학습시키는 것인, 딥러닝 작업 할당 장치.
KR1020200128989A 2020-10-06 2020-10-06 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법 KR102257028B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200128989A KR102257028B1 (ko) 2020-10-06 2020-10-06 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200128989A KR102257028B1 (ko) 2020-10-06 2020-10-06 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102257028B1 true KR102257028B1 (ko) 2021-05-27

Family

ID=76135408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200128989A KR102257028B1 (ko) 2020-10-06 2020-10-06 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102257028B1 (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102381776B1 (ko) * 2021-12-24 2022-04-01 주식회사 코난테크놀로지 인공지능 기능 처리 및 데이터 수집을 동시 수행하는 데이터 처리장치 및 그 방법
KR102393767B1 (ko) * 2021-08-24 2022-05-04 주식회사 에너자이(ENERZAi) 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템
KR102462002B1 (ko) * 2022-02-23 2022-11-03 주식회사 에너자이(ENERZAi) 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
KR102462001B1 (ko) * 2022-02-23 2022-11-03 주식회사 에너자이(ENERZAi) 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
KR20220170428A (ko) * 2021-06-23 2022-12-30 한국과학기술원 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러
WO2023027368A1 (ko) * 2021-08-24 2023-03-02 주식회사 에너자이 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템
CN116304720A (zh) * 2023-05-18 2023-06-23 之江实验室 一种代价模型训练的方法、装置、存储介质及电子设备
KR20230091562A (ko) 2021-12-16 2023-06-23 부경대학교 산학협력단 특징 선택 기반의 딥러닝 프레임워크 추천 시스템 및 방법
KR20230103616A (ko) 2021-12-31 2023-07-07 부경대학교 산학협력단 특징 선택 및 스코어링 알고리즘을 이용한 딥러닝 프레임워크 추천 시스템 및 방법
WO2023163453A1 (ko) * 2022-02-23 2023-08-31 주식회사 에너자이 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
KR20240026554A (ko) 2022-08-22 2024-02-29 한국전자통신연구원 신경망 모델을 이용한 뉴로모픽 컴퓨팅 시스템의 운영체제 구성 방법 및 이를 위한 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012181674A (ja) * 2011-03-01 2012-09-20 Nippon Steel Corp プログラム作成支援装置、プログラム作成支援方法およびコンピュータプログラム
KR20190113928A (ko) * 2017-03-24 2019-10-08 구글 엘엘씨 강화 학습을 통한 디바이스 배치 최적화
KR20200009435A (ko) * 2018-07-19 2020-01-30 삼성전자주식회사 딥 러닝용 데이터 표현 관리 방법, 딥 러닝용 데이터 처리 방법 및 이를 수행하는 딥 러닝 시스템
KR20200024764A (ko) * 2017-04-17 2020-03-09 딥시그 인크. 라디오 신호 프로세싱 데이터플로 연산들의 배치 및 스케줄링
JP2020160622A (ja) * 2019-03-25 2020-10-01 富士通株式会社 ジョブスケジューラ及びジョブスケジュール制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012181674A (ja) * 2011-03-01 2012-09-20 Nippon Steel Corp プログラム作成支援装置、プログラム作成支援方法およびコンピュータプログラム
KR20190113928A (ko) * 2017-03-24 2019-10-08 구글 엘엘씨 강화 학습을 통한 디바이스 배치 최적화
KR20200024764A (ko) * 2017-04-17 2020-03-09 딥시그 인크. 라디오 신호 프로세싱 데이터플로 연산들의 배치 및 스케줄링
KR20200009435A (ko) * 2018-07-19 2020-01-30 삼성전자주식회사 딥 러닝용 데이터 표현 관리 방법, 딥 러닝용 데이터 처리 방법 및 이를 수행하는 딥 러닝 시스템
JP2020160622A (ja) * 2019-03-25 2020-10-01 富士通株式会社 ジョブスケジューラ及びジョブスケジュール制御方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102585591B1 (ko) * 2021-06-23 2023-10-10 한국과학기술원 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러
KR20220170428A (ko) * 2021-06-23 2022-12-30 한국과학기술원 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러
KR102393767B1 (ko) * 2021-08-24 2022-05-04 주식회사 에너자이(ENERZAi) 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템
WO2023027368A1 (ko) * 2021-08-24 2023-03-02 주식회사 에너자이 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템
KR20230091562A (ko) 2021-12-16 2023-06-23 부경대학교 산학협력단 특징 선택 기반의 딥러닝 프레임워크 추천 시스템 및 방법
KR102381776B1 (ko) * 2021-12-24 2022-04-01 주식회사 코난테크놀로지 인공지능 기능 처리 및 데이터 수집을 동시 수행하는 데이터 처리장치 및 그 방법
KR20230103616A (ko) 2021-12-31 2023-07-07 부경대학교 산학협력단 특징 선택 및 스코어링 알고리즘을 이용한 딥러닝 프레임워크 추천 시스템 및 방법
KR102462002B1 (ko) * 2022-02-23 2022-11-03 주식회사 에너자이(ENERZAi) 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
KR102462001B1 (ko) * 2022-02-23 2022-11-03 주식회사 에너자이(ENERZAi) 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
WO2023163453A1 (ko) * 2022-02-23 2023-08-31 주식회사 에너자이 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
KR20240026554A (ko) 2022-08-22 2024-02-29 한국전자통신연구원 신경망 모델을 이용한 뉴로모픽 컴퓨팅 시스템의 운영체제 구성 방법 및 이를 위한 장치
CN116304720A (zh) * 2023-05-18 2023-06-23 之江实验室 一种代价模型训练的方法、装置、存储介质及电子设备
CN116304720B (zh) * 2023-05-18 2023-08-25 之江实验室 一种代价模型训练的方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
KR102257028B1 (ko) 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
CN103858099B (zh) 用于执行应用的方法和系统、具有机器指令的电路
US20220092439A1 (en) Decoupled architecture for artificial intelligence model management
Khalid et al. Troodon: A machine-learning based load-balancing application scheduler for CPU–GPU system
CN103377035A (zh) 针对粗颗粒度流应用的流水并行化方法
CN104636204A (zh) 一种任务调度方法与装置
CN115461763A (zh) 量子电路的有效量子适应性执行方法
CN112148472A (zh) 用于提高执行软件的异构系统的利用率的方法和装置
CN116047934B (zh) 一种无人机集群的实时仿真方法、系统以及电子设备
Cecilia et al. Enhancing GPU parallelism in nature-inspired algorithms
Li et al. An intelligent collaborative inference approach of service partitioning and task offloading for deep learning based service in mobile edge computing networks
CN113127203A (zh) 面向云边计算的深度学习分布式编译器及构造方法
Goudarzi et al. Design of a universal logic block for fault-tolerant realization of any logic operation in trapped-ion quantum circuits
Guo et al. Automated exploration and implementation of distributed cnn inference at the edge
Mohammadzadeh et al. Energy-aware workflow scheduling in fog computing using a hybrid chaotic algorithm
Violos et al. Predicting resource usage in edge computing infrastructures with CNN and a hybrid Bayesian particle swarm hyper-parameter optimization model
Saleem et al. A Survey on Dynamic Application Mapping Approaches for Real-Time Network-on-Chip-Based Platforms
KR102298766B1 (ko) 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법
Bures et al. Towards intelligent ensembles
Huang et al. Learning-aided fine grained offloading for real-time applications in edge-cloud computing
Escobar et al. Time-energy analysis of multilevel parallelism in heterogeneous clusters: the case of EEG classification in BCI tasks
Olmsted et al. FogWeaver: Task allocation optimization strategy across hybrid fog environments
Kumar et al. Overflowing emerging neural network inference tasks from the GPU to the CPU on heterogeneous servers
Wildermann et al. Symbolic system-level design methodology for multi-mode reconfigurable systems
Catthoor et al. Run-Time Exploitation of Application Dynamism for Energy-Efficient Exascale Computing

Legal Events

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