KR20230055271A - 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 - Google Patents
딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 Download PDFInfo
- Publication number
- KR20230055271A KR20230055271A KR1020210138805A KR20210138805A KR20230055271A KR 20230055271 A KR20230055271 A KR 20230055271A KR 1020210138805 A KR1020210138805 A KR 1020210138805A KR 20210138805 A KR20210138805 A KR 20210138805A KR 20230055271 A KR20230055271 A KR 20230055271A
- Authority
- KR
- South Korea
- Prior art keywords
- pod
- edge server
- node
- deep learning
- offloading
- Prior art date
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000010801 machine learning Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 및 그 동작 방법이 제시된다. 본 발명에서 제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버는 클라이언트의 요청을 처리하기 위해 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 수신부 및 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 딥러닝 모듈을 포함한다.
Description
본 발명은 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버의 설계 및 구현에 관한 것이다.
최근 다양한 스마트 디바이스에서 인공지능 서비스가 활성화되고 있다. 그 중에서도 자율주행을 적용한 커넥티드카 서비스의 연구가 활발하게 진행되고 있으며, 이를 구현하기 위해서는 충분한 컴퓨팅성능과 지속적인 데이터 액세스와 더불어 클라이언트와 가까운 엣지에서의 빠른 응답시간이 요구된다[1]. 임베디드 디바이스로 구현된 엣지 노드에서 발생하는 과부화 및 할당 가능한 자원의 제약 문제가 발생할 수 있다.
이를 위해 엣지 서버를 통한 딥러닝 애플리케이션(예를 들어, 물체 인식 또는 운전자 인식) 서비스를 지원하기 위해 복수의 임베디드 디바이스들로 쿠버네티스 클러스터를 구성하였다[2].
클라우드 환경 하의 딥러닝 애플리케이션 서비스의 응답속도를 향상시키기 위해 클라이언트와 근거리에 있는 엣지 환경에서 빠른 응답시간이 요구되고 있다. 하지만 제한된 자원과 전력을 가진 임베디드 디바이스에서 서비스를 안정적으로 제공하기에는 많은 문제점이 존재한다.
본 발명이 이루고자 하는 기술적 과제는 임베디드 디바이스로 구현된 엣지 노드에서 발생하는 과부화 및 할당 가능한 자원의 제약 문제를 해결하기 위해 엣지 서버를 통한 딥러닝 애플리케이션 서비스를 지원하도록 복수의 임베디드 디바이스들로 쿠버네티스 클러스터를 구성하고, 또한 빠른 추론을 위해 서비스를 캐싱하고 엣지 노드의 자원이 부족한 경우 중앙 데이터 센터로 오프로딩하여 서비스를 지원하는 방법 및 장치를 제공하는데 있다.
일 측면에 있어서, 본 발명에서 제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버는 클라이언트의 요청을 처리하기 위해 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 수신부 및 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 딥러닝 모듈을 포함한다.
상기 수신부는 노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용하고, 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Read, Update, Delete)를 수행하도록 한다.
상기 딥러닝 모듈은 스칼라 ML(Machine Learning) 및 이미지 ML을 포함하고, 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송한다.
상기 수신부는 엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버의 동작 방법은 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하는 단계, 딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 단계 및 자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 단계를 포함한다.
본 발명의 실시예들에 따르면 임베디드 디바이스로 구현된 엣지 노드에서 발생하는 과부화 및 할당 가능한 자원의 제약 문제를 해결하기 위해 복수의 임베디드 디바이스들로 쿠버네티스 클러스터를 구성하여 엣지 서버를 통한 딥러닝 애플리케이션 서비스를 지원할 수 있다. 또한 서비스를 캐싱하고 엣지 노드의 자원이 부족한 경우 중앙 데이터 센터로 오프로딩하여 서비스함으로써 빠른 추론이 가능하다.
도 1은 종래기술에 따른 웹소켓의 양방향 통신을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 엣지 서버의 동작 구조를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 엣지 서버의 구조를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 중앙 데이터 센터로의 오프로딩 알고리즘을 나타낸다.
도 5는 본 발명의 일 실시예에 따른 엣지 서버의 동작 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 엣지 서버의 동작 구조를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 엣지 서버의 구조를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 중앙 데이터 센터로의 오프로딩 알고리즘을 나타낸다.
도 5는 본 발명의 일 실시예에 따른 엣지 서버의 동작 방법을 설명하기 위한 흐름도이다.
본 발명에서는 딥러닝 애플리케이션 서비스를 제공하기 위해 임베디드 디바이스들로 클러스터 엣지 서버를 구현하고 서비스 캐싱을 사용한 작업 처리와 엣지 서버의 자원부족으로 인한 서비스 중단에 대비한 데이터 센터로의 태스크 오프로딩을 구현하였다.
본 발명의 실시예에 따른 실험결과 각각의 딥러닝 서비스 모듈인 이미지 ML(Machine Learning)과 스칼라 ML에 대한 엣지 응답시간은 각각 323ms, 228ms이며 엣지의 대역폭 활용은 0.38Mbyte, 0.027Mbyte로 측정되었다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 종래기술에 따른 웹소켓의 양방향 통신을 설명하기 위한 도면이다.
컨테이너는 리눅스 커널수준에서 자원을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술로서 하이퍼바이저를 사용한 기존의 방식보다 빠른 서비스를 구성할 수 있도록 도와준다.
그 중, 컨테이너 오케스트레이션인 쿠버네티스는 컨테이너를 관리하고 효율적인 실행이 가능한 분산 시스템 플랫폼이다. 또한, 독립된 컴퓨터들을 동일한 목적의 작업을 위해 하나로 묶어 쿠버네티스 클러스터를 형성하여 컨테이너를 쉽고 빠르게 배포 및 확장하고 자동으로 관리할 수 있다.
도 1을 참조하면, TCP(Transmission Control Protocol) 접속을 위해 전이 중 통신을 지원하는 웹소켓의 프로토콜을 나타내며 데이터를 실시간으로 교환할 수 있도록 도와준다. 클라이언트(110) 및 서버(120) 간의 핸드쉐이크(Handshake)(131)로 경로를 설정하고, 이후에 양방향 메시지(Bidirectional Messages)(132)로 데이터를 실시간으로 교환한다. 이때, 웹소켓의 채널을 받은 어느 한쪽이 통신을 끊을 수 있다(One side closes channel)(133)[3].
도 2는 본 발명의 일 실시예에 따른 엣지 서버의 동작 구조를 설명하기 위한 도면이다.
제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버는 수신부(210) 및 딥러닝 모듈(220)을 포함한다.
도 2와 같이 쿠버네티스 클러스터를 통해 구성한 엣지 서버의 딥러닝 서비스는 외부 접속을 위한 서비스(다시 말해, 프록시)와 엣지의 수신부(Receive Server)(210), 딥러닝 모듈(모델에 따라 스칼라 ML, 이미지ML로 분류)을 포함한다.
본 발명의 실시예에 따른 수신부(210)는 클라이언트의 요청을 처리하기 위해 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행한다.
본 발명의 실시예에 따른 수신부(210)는 클라이언트(231)로부터 라우터를 거쳐 분리된 서비스들(233, 234, 234)을 수신한다.
본 발명의 실시예에 따른 수신부(210)는 노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용한다. 본 발명의 실시예에 따르면, 컨트롤러로 디플로이먼트를 사용할 수 있다. 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Update, Read, Delete)를 수행하도록 한다.
본 발명의 실시예에 따른 수신부(210)는 엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행할 수 있다.
본 발명의 실시예에 따른 딥러닝 모듈(220)은 수신부(210)에서 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정한다(230).
본 발명의 실시예에 따른 딥러닝 모듈(220)은 스칼라 ML(Machine Learning) 및 이미지 ML을 포함한다. 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송한다.
도 3은 본 발명의 일 실시예에 따른 엣지 서버의 구조를 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명의 실시예에 따른 딥러닝 애플리케이션이 구동되는 엣지 서버의 구조는 엣지 노드를 제어하는 마스터 노드(310)는 NVIDIA Jetson Xavier, 워커노드(320)는 NVIDIA Jetson TX1(321), NVIDIA Jetson Nano(322), NVIDIA Jetson Xavier(323)로 각각 구성될 수 있다. 이러한 구성은 일 실시예일뿐 이에 한정되지 않으며 다양한 노드들로 구성될 수 있다.
쿠버네티스의 프록시 서버는 통신을 아이피테이블 모드(iptables mode)[4]로 구성하며, 서비스 구성을 통해 외부와 접속이 가능하다. 단, 소켓 프로그래밍 만으로는 사용의 연결유지, 추가 동작이나 데이터 유형을 확인하는 오버헤드가 발생한다. 따라서, 본 발명에서는 딥러닝 애플리케이션 구동을 위해 새롭게 작성되는 서버로 이러한 문제점을 해결하고자 한다. 웹서버는 파이썬의 웹 프레임워크인 Flask[5]를 사용하였으며, 클러스터의 구성 요소에 대한 추가/삭제/확인을 클러스터의 API 서버에 직접 요청하여 추가적인 서비스에도 클러스터에 대한 문제가 없도록 웹서버를 구성한다.
도 4는 본 발명의 일 실시예에 따른 중앙 데이터 센터로의 오프로딩 알고리즘을 나타낸다.
본 발명의 실시예에 따른 쿠버네티스 시스템에서는 포드와 노드 할당에 대한 정책들이 존재하여 정책에 맞춘 스케쥴링을 지원한다. 예를 들어, 스케쥴링은 노드 스케쥴링 및 포드 스케쥴링으로 나누어져 포드 실행 순서와 노드의 우선순위를 설정할 수 있다. 이때 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 구동을 위한 애플리케이션 구동 수에 의해 내부에서 동적 조절될 수 있다. 본 발명의 실시예에 따른 오프로딩은 엣지 서버 내의 컴퓨팅 부족 시, 추론 연산을 엣지 서버에서 클라우드에 맡기는 인테그랄 오프로딩(Integral Offloading)을 구현할 수 있다[6].
표 1은 실제 구현된 이미지ML과 스칼라ML을 오프로딩하기 위한 수신부에서의 내부 서비스 처리 알고리즘을 수행하기 위한 구성환경의 상세정보이다.
<표 1>
도 5는 본 발명의 일 실시예에 따른 엣지 서버의 동작 방법을 설명하기 위한 흐름도이다.
제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버의 동작 방법은 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하는 단계(510), 딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 단계(520) 및 자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 단계(530)를 포함한다.
단계(510)에서, 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API를 통해 포드를 생성한다. 본 발명의 실시예에 따른 수신부는 클라이언트의 요청을 처리하기 위해 쿠버네티스 API를 통해 포드를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행한다.
본 발명의 실시예에 따른 수신부는 노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용한다. 본 발명의 실시예에 따르면, 컨트롤러로 디플로이먼트를 사용할 수 있다. 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Update, Read, Delete)를 수행하도록 한다.
단계(520)에서, 딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정한다.
본 발명의 실시예에 따른 딥러닝 모듈은 스칼라 ML(Machine Learning) 및 이미지 ML을 포함한다. 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송한다.
단계(530)에서, 자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행한다. 엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행할 수 있다.
본 발명의 실시예에 따른 딥러닝 애플리케이션을 지원하는 엣지 서버의 구현을 통해 오프로딩을 지원하는 엣지 서버의 성능을 실험하였다.
본 발명의 실시예에서는 Jetson Xavier 2대와 NVIDIA Jetson Nano 1대를 클라이언트로 지정하였으며, 클라이언트에서 각 서비스를 엣지 서버에 요청하여 추론연산을 실시하였다.
표 2는 서비스를 실행하거나 오프로딩이 발생할 때 이동 데이터 량과 전송횟수를 측정하여 딥러닝 서비스를 위한 1개의 서비스에 대한 대역폭 활용 (Bandwidth utilization)을 보여준다.
<표 2>
여기서, 'Bandwidth utilization = 이동 데이터량 / 총 전송횟수' 이다.
표 3은 요청 서비스 별 지연시간(End-to-end latency Time)을 나타낸다.
<표 3>
여기서, '지연시간(End-to-End Latency Time) = (데이터 전송 시작 시간) - (딥러닝 결과 수신 시간)' 이다.
표 4를 참조하면, 엣지 서버에서 추론 연산을 수행하는 것이 중앙 데이터 센터로 오프로딩되어 추론되는 시간보다 ImageML과 ScalarML이 각각 40%, 52% 빠르다는 것을 확인할 수 있으며, 해당 차이는 신경망 동작 시간의 차이를 통해 네트워크 오버헤드로 인한 결과임을 확인 가능하다. 결론적으로 실제 딥러닝 추론 시간을 모두 고려하였을 경우에도 적절한 오프로딩의 구현이 필요함을 확인할 수 있다.
본 발명의 실시예에 따르면, 제한된 자원과 전력을 가진 임베디드 디바이스에서 딥러닝 애플리케이션의 서비스를 지원하기 위해 쿠버네티스 클러스터를 구성하였고, 더욱 빠른 처리를 위해 미리 딥러닝 서비스를 캐싱된 형태로 엣지 서버를 구현하였다. 또한 자원부족이 발생하여 스케줄링이 어려운 경우 중앙 데이터센터로 오프로딩을 지원하는 딥러닝 애플리케이션을 탑재한 엣지 서버를 구현하였다. 실험결과 이미지ML과 스칼라ML의 오프로딩 시 응답시간은 각각 453ms, 435ms이며 대역폭활용은 0.395Mbyte, 0.0270Mbyte로 측정되었다. 사용되는 대역폭은 차이가 크지만, 응답시간은 전송 데이터 량과 관계없이 비슷한 시간을 보여주며, 결론적으로 오프로딩이 필요한 이유와 이점을 확인할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
<참고문헌>
[1] TAREQ, Md Mostofa Kamal, et al. Ultra reliable, low latency vehicle-to-infrastructure wireless communications with edge computing. In: 2018 IEEE Global Communications Conference (GLOBECOM). IEEE, 2018. p. 1-7.
[2] PAHL, Claus, et al. A container-based edge cloud paas architecture based on raspberry pi clusters. In: 2016 IEEE 4th International Conference on Future Internet of Things and Cloud Workshops (FiCloudW). IEEE, 2016. p. 117-124.
[3] PIMENTEL, Victoria; NICKERSON, Bradford G. Communicating and displaying real-time data with websocket. IEEE Internet Computing, 2012, 16.4: 45-53
[4] "서비스|Kubernetes." Kubernetes.io, n.d., https://kube-rnetes.io/ko/docs/concepts/service-networking/service/#proxy-mode-iptables. 2020년 10월 29일 접속.
[5] "Welcome to Flask -Flask Documentation (1.1x)." https://flask.palletsprojects.com/en/1.1.x/,n.d.,https://flask.palletsprojects.com/en/1.1.x/. 2020.11. 2.
[6] WANG, Xiaofei, et al. Convergence of edge computing and deep learning: A comprehensive survey. IEEE Communications Surveys & Tutorials, 2020, 22.2: 869-904.
[7] HAO, Yixue, et al. Energy efficient task caching and offloading for mobile edge computing. IEEE Access, 2018, 6: 11365-11373.
Claims (8)
- 클라이언트의 요청을 처리하기 위해 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 수신부; 및
상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 딥러닝 모듈
을 포함하는 엣지 서버. - 제1항에 있어서,
상기 수신부는,
노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용하고, 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Read, Update, Delete)를 수행하도록 하는
엣지 서버. - 제1항에 있어서,
상기 딥러닝 모듈은,
스칼라 ML(Machine Learning) 및 이미지 ML을 포함하고, 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송하는
엣지 서버. - 제3항에 있어서,
상기 수신부는,
엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행하는
엣지 서버. - 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하는 단계;
딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 단계; 및
자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 단계
를 포함하는 엣지 서버의 동작 방법. - 제5항에 있어서,
상기 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API를 통해 포드를 생성하는 단계는,
노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용하고, 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Read, Update, Delete)를 수행하도록 하는
엣지 서버의 동작 방법. - 제5항에 있어서,
상기 딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 단계는,
스칼라 ML(Machine Learning) 및 이미지 ML을 포함하고, 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송하는
엣지 서버의 동작 방법. - 제7항에 있어서,
상기 자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 단계는,
엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행하는
엣지 서버의 동작 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210138805A KR20230055271A (ko) | 2021-10-18 | 2021-10-18 | 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210138805A KR20230055271A (ko) | 2021-10-18 | 2021-10-18 | 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230055271A true KR20230055271A (ko) | 2023-04-25 |
Family
ID=86101785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210138805A KR20230055271A (ko) | 2021-10-18 | 2021-10-18 | 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230055271A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117528589A (zh) * | 2023-12-29 | 2024-02-06 | 江西师范大学 | 一种基于边缘计算的移动感知层次缓存容错方法 |
-
2021
- 2021-10-18 KR KR1020210138805A patent/KR20230055271A/ko not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117528589A (zh) * | 2023-12-29 | 2024-02-06 | 江西师范大学 | 一种基于边缘计算的移动感知层次缓存容错方法 |
CN117528589B (zh) * | 2023-12-29 | 2024-03-22 | 江西师范大学 | 一种基于边缘计算的移动感知层次缓存容错方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11368385B1 (en) | System and method for deploying, scaling and managing network endpoint groups in cloud computing environments | |
US20200244721A1 (en) | Deploying a workload | |
EP4109257A1 (en) | Methods and apparatus to facilitate service proxying | |
US11616686B1 (en) | Cluster management | |
US10997538B1 (en) | Resource management | |
US8849905B2 (en) | Centralized computing | |
US20210328933A1 (en) | Network flow-based hardware allocation | |
US20200244745A1 (en) | Gateway device allowing multiple infrastructural services to access multiple iot devices | |
US20230376344A1 (en) | An edge-to-datacenter approach to workload migration | |
US20230137879A1 (en) | In-flight incremental processing | |
Chen et al. | A 3.5-tier container-based edge computing architecture | |
Agostinho et al. | A cloud computing environment for supporting networked robotics applications | |
CN114930296A (zh) | 基于不同计算范式内的计算出的计算引力的分布式计算工作负载 | |
US20230018191A1 (en) | Service roaming between edge computing platforms | |
US20230236909A1 (en) | Service mesh architecture for integration with accelerator systems | |
EP3529919B1 (en) | Distributed gateways with centralized data center for high throughput satellite (hts) spot beam network | |
CN115529677A (zh) | 以信息为中心的网络非结构化数据载体 | |
CN115777192A (zh) | 管理微服务间的通信 | |
KR20230055271A (ko) | 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 | |
US20230300073A1 (en) | Managing bandwith in fibre channel over internet protocol communication channels | |
US10853129B1 (en) | Accelerator based inference service | |
US20240155025A1 (en) | Uses of coded data at multi-access edge computing server | |
Mohamed et al. | Automatic generation of distributed run-time infrastructure for internet of things | |
Al-Razgan et al. | [Retracted] A Computational Offloading Method for Edge Server Computing and Resource Allocation Management | |
Julio et al. | A ROS package for dynamic bandwidth management in multi-robot systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal |