KR102140730B1 - Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 - Google Patents

Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 Download PDF

Info

Publication number
KR102140730B1
KR102140730B1 KR1020190168633A KR20190168633A KR102140730B1 KR 102140730 B1 KR102140730 B1 KR 102140730B1 KR 1020190168633 A KR1020190168633 A KR 1020190168633A KR 20190168633 A KR20190168633 A KR 20190168633A KR 102140730 B1 KR102140730 B1 KR 102140730B1
Authority
KR
South Korea
Prior art keywords
gpu
development environment
docker
computing device
providing
Prior art date
Application number
KR1020190168633A
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 KR1020190168633A priority Critical patent/KR102140730B1/ko
Application granted granted Critical
Publication of KR102140730B1 publication Critical patent/KR102140730B1/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/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
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

본 발명은 운영체제 상에서 동작하며, 개발 환경이 구축된 도커 이미지를 기반으로 도커 컨테이너를 생성하는 도커부와, 복수의 노드에 설치된 GPU 자원을 모니터링하는 GPU 모니터링부와, 호스트 컴퓨팅 디바이스의 요청에 따라 상기 모니터링된 GPU 자원을 기반으로 GPU 자원을 할당하는 잡 스케쥴링부와, 상기 할당한 GPU 자원 및 상기 도커부에 저장된 도커 이미지를 기반으로 도커 컨테이너를 생성하여 상기 호스트 컴퓨팅 디바이스에 제공하며, 상기 호스트 컴퓨팅 디바이스에 의해 입력 또는 설정된 정보에 따라 상기 생성한 도커 컨테이너로 딥러닝 트레이닝을 수행할 수 있는 개발 환경을 상기 호스트 컴퓨팅 디바이스에 제공하는 개발 환경 제공부를 포함하는 GPU 기반의 딥러닝 개발 환경 제공 시스템을 제공할 수 있다.

Description

GPU 기반의 딥러닝 개발 환경 제공 시스템 및 방법{METHOD AND SYSTEM FOR PROVIDING DEVELOP ENVIRONMENT OF DEEP LEARNING BASED GPU}
본 발명은 GPU 기반의 딥러닝 개발 환경 제공 시스템 및 방법을 제공한다.
클라우드 컴퓨팅은 사용자가 컴퓨팅 자원, 스토리지 자원 등을 사용한 만큼 요금을 내고 빌려서 쓰는 비즈니스 모델에 기반 한 것으로, 아마존 클라우드 서비스가 시작된 이래로 그 수요는 공공 시장을 중심으로 꾸준히 증가하여 아마존 이외에도 아이비엠, 마이크로소프트, 오라클, 구글 등 대형 정보기술 업체가 클라우드 컴퓨팅 사업에 뛰어 들었다. 특히 구글은 크롬을 앞세워 마이크로소프트의 윈도우 데스크탑 응용을 위협하는 동시에, 안드로이드로 모바일 시장을 적극 공략하고 있다. 국내에서도 KT Cloud가 투자대비 효율의 우월성으로 인해 사용자의 관심을 끌고 있다. 클라우드 컴퓨팅은 자원 관리의 용이성과 경제성을 위해 가상화 기술을 바탕으로 하고 있다.
가상화(virtualization) 기술이란 물리적으로 다른 시스템을 논리적으로 통합하거나 반대로 하나의 시스템을 논리적으로 분할해 자원을 효율적으로 사용케 하는 기술을 말한다. 사용자와 물리적 리소스 사이에 논리적 리소스인 가상화 레이어(virtualization layer)를 구현하여 컴퓨팅 리소스에 대한 접근 및 인프라 관리를 간소화할 수 있는 기술이다. 가상화 기술은 하나의 물리적 머신(physical machine, PM)에 서로 격리된 다수의 가상 머신(virtual machine, VM)을 생성하여 사용자에 특화된 VM을 사용자에게 제공할 수 있다. 이렇게 하여 사용자는 자신의 익숙한 컴퓨팅 환경에서 작업을 할 수 있는 동시에, 클라우드 서비스 제공자는 다수 사용자의 VM을 병합하여 하나의 PM에 할당하여 PM의 자원 낭비를 줄일 수 있다. VM은 파일로 저장되고 관리되기 때문에, 사용자는 자신의 VM을 필요 시 재개시하여 사용할 수 있다. 클라우드 서비스 제공자는 사용자에게 VM을 제공하기 때문에, VM으로부터 해제된 PM 자원의 부가적인 관리(예를 들어, 다른 VM에 해제된 PM 자원을 할당하기 전에 해당 PM 자원에 설치되었을지도 모를 맬웨어(malware)와 같은 오염을 깨끗하게 청소하는 것) 비용을 제거할 수 있다.
클라우드 컴퓨팅이 전파됨에 따라 클라우드 구축의 초기 비용을 줄이고 클라우드 서비스 간의 연동 문제를 해결하기 위해 이들 기능을 제공하는 소프트웨어 스택의 공동 개발을 추구하게 되었다. 이를 위해 NASA, Rackspace, AT&T, IBM, Intel, Ubuntu, RedHat, SUSE, HP 등 150개 이상의 기관을 중심으로 공개소스 클라우드 컴퓨팅 플랫폼으로 OpenStack을 개발하였으며, 400여 기관이 참여 하에 OpenStack 재단이 설립되어 OpenStack을 산업 표준으로 널리 보급되고 있다.
한편, VMware나 VirtualBox같은 가상머신은 호스트 OS위에 게스트 OS 전체를 가상화하여 사용하는 방식입니다. 이 방식은 여러 가지 OS를 가상화(리눅스에서 윈도우를 돌린다던가) 할 수 있고 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수 없는 단점이 있다.
이러한 상황을 개선하기 위해 CPU의 가상화 기술(HVM)을 이용한 KVMKernel-based Virtual Machine과 반가상화 Paravirtualization방식의 Xen이 등장합니다. 이러한 방식은 게스트 OS가 필요하긴 하지만 전체 OS를 가상화하는 방식이 아니기 때문에 호스트형 가상화 방식에 비해 성능이 향상되었다.
그러나, 전가상화든 반가상화든 추가적인 OS를 설치하여 가상화하는 방법은 성능문제가 있었고 이를 개선하기 위해 프로세스를 격리 하는 방식이 등장합니다.
프로세서를 격리하는 방식은 컨테이너라는 개념을 도입하여 프로세스를 격리시키기 때문에 가볍고 빠르게 동작합니다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능 적으로도 거의 손실이 없다.
한편, GPU는 CPU에 비해 저전력 고성능 컴퓨팅이 가능하다. 현재 고성능 컴퓨팅 선진국에서는 GPU를 주계산용 자원으로 채택하고 CPU를 운영체제 및 어플리케이션의 실행 관리용 자원으로 사용하는 이질적 고성능 컴퓨팅(high-performance computing, HPC) 시스템을 개발하고 있다. 이질적 HPC 클라우드는 GPU 가상화를 필수적으로 수반한다. 이를 통해 VM은 자신이 원하는 GPU를 사용할 수 있고, 동일한 PM에서 동작하는 다수의 VM은 GPU를 공유한다.
대한민국등록특허 제10-1765723호(2017.08.01.등록.)
본 발명은 노드의 GPU 자원을 모니터링하고, 모니터링한 GPU 자원을 할당함과 더불어 할당한 GPU 자원과 도커 이미지를 이용하여 도커 컨테이너를 생성하여 개발자에게 딥러닝 트레이닝을 위한 개발 환경을 제공할 수 있는 GPU 기반의 딥러닝 개발 환경 제공 시스템 및 방법을 제공한다.
또한, 본 발명은 복수의 노드 중 적어도 둘 이상의 노드와 GPU를 선택하여 멀티테넨시(multitenancy) 개발 환경을 제공할 수 있는 GPU 기반의 딥러닝 개발 환경 제공 시스템 및 방법을 제공한다.
본 발명이 해결하고자 하는 과제는 상기에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재들로부터 본 발명이 속하는 통상의 지식을 가진 자에 의해 명확하게 이해될 수 있을 것이다.
상술한 해결하고자 하는 과제를 해결하기 위해서 본 발명의 실시예에 따른 GPU 기반의 딥러닝 개발 환경 제공 시스템은 기 설정된 운영체제 상에서 동작하며, 개발 환경이 구축된 도커 이미지를 기반으로 도커 컨테이너를 생성하는 도커부와, 복수의 노드에 설치된 GPU 자원을 모니터링하는 GPU 모니터링부와, 호스트 컴퓨팅 디바이스의 요청에 따라 상기 모니터링된 GPU 자원을 기반으로 GPU 자원을 할당하는 잡 스케쥴링부와, 상기 할당한 GPU 자원 및 상기 도커부에 저장된 도커 이미지를 기반으로 도커 컨테이너를 생성하여 상기 호스트 컴퓨팅 디바이스에 제공하며, 상기 호스트 컴퓨팅 디바이스에 의해 입력 또는 설정된 정보에 따라 상기 생성한 도커 컨테이너로 딥러닝 트레이닝을 수행할 수 있는 개발 환경을 상기 호스트 컴퓨팅 디바이스에 제공하는 개발 환경 제공부를 포함할 수 있다.
본 발명의 실시예에 따르면, 상기 GPU 모니터링부는 상기 복수의 노드의 GPU 상태를 그래프 또는 테이블 형태로 제공하며, 개발자별 GPU 사용 이력 정보를 제공할 수 있다.
본 발명의 실시예에 따르면, 상기 잡 스케쥴링부는 상기 복수의 노드 중 적어도 둘 이상의 노드와 GPU를 선택할 수 있는 인터페이스를 상기 호스트 컴퓨팅 디바이스에 제공할 수 있다.
본 발명의 실시예에 따르면, 상기 개발 환경 제공부는 상기 도커 컨테이너의 상태 및 웹 터미널의 다중 팝업을 상기 호스트 컴퓨팅 디바이스에 제공할 수 있다.
본 발명의 실시예에 따르면, 상기 개발 환경 제공부는 상기 딥러닝 트레이닝의 수행 상태와 이를 검증할 수 있는 인터페이스를 상기 호스트 컴퓨팅 디바이스에 제공할 수 있다.
상술한 해결하고자 하는 과제를 해결하기 위해서 본 발명의 실시예에 따른 GPU 기반의 딥러닝 개발 환경 제공 방법은 기 설정된 운영체제 상에서 동작하며, 개발 환경이 구축된 복수의 도커 이미지를 포함한 시스템을 이용하여 개발 환경을 제공 방법에 있어서, 상기 시스템과 연결된 복수의 노드에 설치된 GPU 자원을 모니터링하는 단계와, 호스트 컴퓨팅 디바이스의 프로젝트 생성 요청 시 개발자에 의해 설정된 사용 GPU 및 사용 기간에 따라 상기 모니터링된 GPU 자원을 기반으로 GPU 자원을 할당하는 단계와, 상기 복수의 도커 이미지 중 적어도 하나 이상을 선택하고, 상기 선택한 도커 이미지와 상기 할당한 GPU 자원을 이용하여 도커 컨테이너를 생성한 후 이를 상기 호스트 컴퓨팅 디바이스에 제공하는 단계와, 상기 호스트 컴퓨팅 디바이스에 의해 입력 또는 설정된 정보에 따라 상기 생성한 도커 컨테이너로 딥러닝 트레이닝을 수행할 수 있는 개발 환경을 상기 호스트 컴퓨팅 디바이스에 제공하는 단계를 포함할 수 있다.
본 발명의 실시예에 따르면, 딥러닝 개발 환경 제공 방법은 상기 도커 컨테이너를 생성한 후 상기 호스트 컴퓨팅 디바이스로부터 소프트웨어의 추가 설치 요청이 있는 경우 상기 추가 설치하고자 하는 소프트웨어가 사용할 포트를 설정할 수 있는 인터페이스를 제공하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 딥러닝 개발 환경 제공 방법은 상기 개발 환경을 상기 호스트 컴퓨팅 디바이스에 제공하는 단계 이후 실행 명령 및 옵션의 설정에 따라 상기 실행 명령을 상기 도커 컨테이너 상에서 자동으로 수행하는 단계와,
상기 자동으로 수행 시 로그와 결과 값을 제공하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 딥러닝 개발 환경 제공 방법은 상기 딥러닝 트레이닝에 사용될 소스 코드가 상기 호스트 컴퓨팅 디바이스 상에 입력됨에 따라 상기 입력된 소스 코드를 상기 도커 컨테이너에 반영하여 딥러닝 트레이닝을 수행하는 단계를 더 포함할 수 있다.
전술한 본 발명의 과제 해결 수단에 따르면, 복수의 노드의 GPU 자원을 모니터링하고, 모니터링한 GPU 자원을 할당함과 더불어 할당한 GPU 자원과 도커 이미지를 이용하여 도커 컨테이너를 생성하여 개발자에게 딥러닝 트레이닝을 위한 개발 환경을 제공함으로써, 개발자가 별도의 개발 환경을 구축하지 않고 딥러닝 수행할 수 있을 뿐만 아니라 GPU 자원을 효율적으로 관리 및 할당할 수 있다.
도 1은 본 발명의 실시예에 따른 GPU 기반의 개발 환경 제공 장치를 포함한 전체 시스템을 도시한 도면이다.
도 2는 본 발명의 실시예에 따른 GPU 기반의 딥러닝 개발 환경 제공 시스템을 통해 프로젝트를 수행하는 과정을 도시한 흐름도이다.
도 3a 내지 도 3c는 본 발명의 실시예에 따른 GPU 기반의 딥러닝 개발 환경 제공 시스템에서 제공되는 인터페이스의 예시도이다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
이하, 첨부된 도면을 참조하여 GPU 기반의 딥러닝 개발 환경 제공 시스템과 이를 이용한 프로젝트 수행 방법에 대해 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 GPU 기반의 개발 환경 제공 장치를 포함한 전체 시스템을 도시한 도면이다.
도 1에 도시된 바와 같이, 전체 시스템은 운영체제(100) 및 도커(Docker)부(110)와 연동되어 동작하는 개발 환경 제공 장치(120), GPU가 설치된 복수의 노드(130) 및 복수의 호스트 컴퓨팅 디바이스(140) 등을 포함할 수 있다.
본 발명의 실시예에 따른 GPU 기반의 개발 환경 제공 시스템은 운영체제(100), 예컨대 리눅스를 기반으로 동작하며 복수의 노드(130) 내 GPU 클러스터에 대한 모니터링을 수행함과 더불어 스케쥴링 기반으로 통해 GPU 자원을 할당하며, 할당한 GPU 자원과 도커부(110)에 의해 관리되는 복수의 도커 이미지들을 이용하여 도커 컨테이너를 생성한 후 이를 기반으로 한 호스트 컴퓨팅 디바이스(140)에 딥러닝을 위한 개발 환경을 제공할 수 있다.
본 발명의 실시예에서 도커부(110)는 딥러닝용 도커 이미지를 기반으로 도커 컨테이너(Docker Container)를 생성할 수 있는다, 도커 컨테이너의 예로는 기계 학습과 딥러닝을 위한 오픈 소스 라이브러리인 "TensorFlow", 표현식, 속도, 모듈화 등을 고려한 딥러닝 프레임워크인"Caffe", "Tensoflow"및 "Theano"를 위한 딥러닝 라이브러리인 "Keras", 딥러닝 모델 트레이닝을 위한 웹 앱인 "DIGITS" 등을 들 수 있으나, 이에 한정하지는 않는다.
도 1의 개발 환경 제공 장치(120)는 GPU 모니터링부(122), 잡 스케쥴링부(124), 개발 환경 제공부(126) 등을 포함할 수 있다.
GPU 모니터링부(122)는 GPU 서버의 상태를 모니터링하기 위한 것으로서, 모니터링한 결과를 그래프와 테이블의 형태로 제공할 수 있다. 구체적으로, GPU 모니터링부(122)는 모니터링 결과로 현재 상태와 작업 이력 등을 포함한 그래프와 테이블을 제공할 수 있다.
또한, GPU 모니터링부(122)는 GPU 클러스터의 정보를 클러스터, 서버, GPU별로 제공할 수 있을 뿐만 아니라 GPU 사용 이력 정보를 제공할 수 있다.
잡 스케쥴링부(124)는 GPU 자원 관리 정책에 따라 GPU 자원을 자동 또는 수동으로 할당할 수 있는 스케쥴링 기능을 제공할 수 있다.
또한, 잡 스케쥴링부(124)는 GPU 자원 관리 정책을 동적으로 변경 가능할 수 있는 인터페이스를 제공할 수 있다.
한편, 본 발명의 실시예에 따른 잡 스케쥴링부(124)는 단일 또는 복수의 GPU 자원 할당을 지원하며, 도커부(110)와 연동하여 GPU 자원이 할당된 도커 컨테이너를 생성할 수 있다.
또한, 잡 스케쥴링부(124)는 멀티테넌시(MultiTenacy) 기능을 제공하여 개발자에게 독립적인 개발 환경을 제공할 수 있다.
잡 스케쥴링부(124)는 멀티 노드 및 멀티 GPU 기능을 제공할 수 있다. 구체적으로, 잡 스케쥴링부(124)는 멀티 노드 및 GPU 설정이 가능한 인터페이스를 제공하며, 인터페이스를 통해 선택된 멀티 노드 및 GPU 설정을 통해 선택된 GPU를 네트워크로 묶어서 딥러닝을 수행할 수 있는 환경, 예컨대 호로보드(Horovod) 플레임워크를 제공할 수 있다.
개발 환경 제공부(126)는 도커부(110)와 연동하여 할당된 GPU 자원에 대한 정보를 도커부(110)에 제공하며, 도커부(110)에 의해 생성된 도커 이미지 기반의 도커 컨테이너를 호스트 컴퓨팅 디바이스(140)에 제공하여 개발자에게 개발 환경을 제공할 수 있다.
또한, 개발 환경 제공부(126)는 도커부(110)와의 연동을 통해 도커 이미지를 동적으로 추가 가능한 인터페이스, 예컨대, 도커 허브(Docker Hub), NGC(Nvidia GPU Cloud) 등을 이용하여 도커 이미지를 동적으로 추가할 수 있다.
한편, 본 발명의 실시예에서 개발 환경 제공부(126)는 도커 컨테이너의 상태 및 웹 터미널의 다중 팝업을 호스트 컴퓨팅 디바이스(140)에 제공할 수 있다.
개발 환경 제공부(126)는 다양한 인터페이스, 예컨대 웹 터미널, TensorBoard, Jupyter notebook, DIGITS 등의 인터페이스를 통해 딥러닝 수행 및 검증 기능을 호스트 컴퓨팅 디바이스(140)에 제공할 수 있다.
상술한 바와 같은 구성을 갖는 GPU 자원 할당과 도커 이미지를 이용하여 개발자가 프로젝트를 수행하는 과정에 대해 도 2를 참조하여 설명한다.
도 2는 본 발명의 실시예에 따른 GPU 기반의 딥러닝 개발 환경 제공 시스템을 통해 프로젝트를 수행하는 과정을 도시한 흐름도이다.
먼저, 도 2에 도시된 바와 같이, 개발 환경 제공 장치(120)는 호스트 컴퓨팅 디바이스(140)에 표시된 사용자 페이지 상에서 컨테이너 요청 버튼이 조작됨에 따라 딥러닝 프로젝트 생성을 위한 페이지를 제공한다(S200). 여기에서, 딥러닝 프로젝트 생성을 위한 페이지에는 프로젝트 명과 멀티노드 선택 여부를 설정할 수 있는 인터페이스가 포함될 수 있다.
프로젝트 명과 멀티노드 선택가 선택됨에 따라 개발 환경 제공 장치(120)는 사용 GPU의 개수 및 사용 기간을 설정할 수 있는 인터페이스를 제공하며(S202), 사용 GPU 개수 및 사용 기간이 설정됨에 따라 GPU 자원 관리 정책에 의거하여 GPU 모니터링부(122)에 의해 모니터링된 GPU 자원을 확인한 후 GPU 자원을 할당한다(S204). 이때, S200에서 멀티노드가 선택된 경우 개발 환경 제공 장치(120)는 멀티 노드를 이용한 GPU 할당을 위한 인터페이스, 즉 복수의 노드 및 각 노드에 관리되는 GPU 정보 등을 포함하는 인터페이스를 호스트 컴퓨팅 디바이스(140)에 제공할 수 있다.
이후, 개발 환경 제공 장치(120)는 도커부(110)와의 연동을 통해 플레임워크가 포함된 도커 이미지를 선택하며, 선택한 도커 이미지를 이용하여 도커 컨테이너를 생성한다(S206).
그런 다음, 호스트 컴퓨팅 디바이스(140)로부터 생성한 도커 컨테이너에 소프트웨어 추가 요청이 있을 경우(S208), 개발 환경 제공 장치(120)는 추가로 설치할 소프트웨어에서 사용할 포트를 설정할 수 있는 인터페이스를 제공한다(S210).
포트 설정이 완료되면, 개발 환경 제공 장치(120)는 딥러닝을 위한 데이터셋을 설정할 수 있는 인터페이스를 제공한다(S212).
인터페이스를 통해 데이터셋이 설정됨에 따라 호스트 컴퓨팅 디바이스(140)는 할당받은 GPU 자원과 데이터셋을 이용하여 딥러닝 트레이닝을 수행한다(S214).
이때, 개발 환경 제공 장치(120)는 호스트 컴퓨팅 디바이스(140)에 실행 명령 및 옵션을 설정할 수 있는 잡 생성 기능, 명령어 입력에 따라 입력된 명령어를 도커 컨테이너를 이용한 자동 수행 기능, 자동 수행 시 로그과 결과 값을 확인할 수 있는 기능, 딥러닝에 사용할 소스 코드를 도커 컨테이너에 반영하여 딥러닝을 수행하는 기능 등을 제공할 수 있다.
이후, 개발 환경 제공 장치(120)는 호스트 컴퓨팅 디바이스(140)의 조작을 통해 개발자의 요청에 따라 개발 환경 제공 장치(120)는 할당된 GPU 정보 확인, 도커 컨테이너의 정보 확인, 도커 컨테이너 내 도커 이미지에 포함된 툴을 시작하거나 접속할 수 있는 기능 등을 제공할 수 있다.
할당된 GPU 정보는, 도 3a에 도시된 바와 같이, GPU 사용률, GPU 메모리 사용률, GPU 온도 및 GPU를 이용한 도커 컨테이너의 정보 등이 그래프 형태로 제공될 수 있다.
도커 컨테이너의 정보는, 도 3b에 도시된 바와 같이, 소정의 버튼 조작 시 제공되며, 도커 이미지에 포함된 툴의 시작 및 접속 가능한 인터페이스를 포함할 수 있다.
본 발명의 실시예에 따른 GPU 모니터링부(122)에 의해 제공되는 GPU 사용 이력 정보는, 도 3c에 도시된 바와 같이, GPU를 할당받아 작업을 수행하는 이력을 확인할 수 있는 테이블 형태로 제공될 수 있다.
한편, 개발 환경 제공 장치(120)는 도커 컨테이너의 접속 기능(커맨드 라인 인터페이스), 도커 컨테이너 상태 확인 기능, 트레이닝 시 생성된 로그 메시지 확인 기능 등을 호스트 컴퓨팅 디바이스(140)에 제공할 수 있다. 이때, 멀티 노드를 선택한 경우, 개발 환경 제공 장치(120)는 마스터(master)와 워커(worker)를 선택하여 도커 컨테이너를 모니터링할 수 있다.
한편, 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체(또는 메모리) 등에 저장되는 것도 가능하므로, 그 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체(또는 메모리)에 저장된 인스트럭션들은 블록도의 각 블록에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
그리고, 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 적어도 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
100 : 운영체제
110 : 도커부
120 : 개발 환경 제공 장치
122 : GPU 모니터링부
124 : 잡 스케쥴링부
126 : 개발 환경 제공부
130 : 노드
140 : 호스트 컴퓨팅 디바이스

Claims (6)

  1. 운영체제에서 동작하며, 개발 환경이 구축된 도커 이미지를 기반으로 도커 컨테이너를 생성하는 도커부;
    복수의 노드에 설치된 GPU 자원을 모니터링하는 GPU 모니터링부;
    호스트 컴퓨팅 디바이스의 요청에 따라 상기 모니터링된 GPU 자원을 기반으로 GPU 자원을 할당하는 잡 스케쥴링부; 및
    상기 할당한 GPU 자원 및 상기 도커부에 저장된 도커 이미지를 기반으로 도커 컨테이너를 생성하여 상기 호스트 컴퓨팅 디바이스에 제공하며, 상기 호스트 컴퓨팅 디바이스에 의해 입력 또는 설정된 정보에 따라 상기 생성한 도커 컨테이너로 딥러닝 트레이닝을 수행할 수 있는 개발 환경을 상기 호스트 컴퓨팅 디바이스에 제공하는 개발 환경 제공부;를 포함하되,
    상기 개발 환경 제공부는,
    상기 도커부와의 연동을 통해 도커 이미지를 동적으로 추가 가능한 인터페이스를 이용하여 도커 이미지를 동적으로 추가하고,
    상기 도커 컨테이너의 상태 및 웹 터미널의 다중 팝업을 상기 호스트 컴퓨팅 디바이스에 제공하며,
    상기 딥러닝 트레이닝의 수행 상태를 검증할 수 있는 인터페이스를 상기 호스트 컴퓨팅 디바이스에 제공하는
    GPU 기반의 딥러닝 개발 환경 제공 시스템.
  2. 제1항에 있어서,
    상기 GPU 모니터링부는,
    상기 복수의 노드의 GPU 상태를 그래프 또는 테이블 형태로 제공하며, 개발자별 GPU 사용 이력 정보를 제공하는
    GPU 기반의 딥러닝 개발 환경 제공 시스템.
  3. 제1항에 있어서,
    상기 잡 스케쥴링부는,
    상기 복수의 노드 중 적어도 둘 이상의 노드와 GPU를 선택할 수 있는 인터페이스를 상기 호스트 컴퓨팅 디바이스에 제공하는
    GPU 기반의 딥러닝 개발 환경 제공 시스템.
  4. 기 설정된 운영체제 상에서 동작하며, 개발 환경이 구축된 복수의 도커 이미지를 구비하는 GPU 기반의 딥러닝 개발 환경 제공 시스템을 이용한 GPU 기반의 딥러닝 개발 환경 제공 방법에 있어서,
    상기 시스템과 연결된 복수의 노드에 설치된 GPU 자원을 모니터링하는 단계;
    호스트 컴퓨팅 디바이스의 프로젝트 생성 요청 시 개발자에 의해 설정된 사용 GPU 및 사용 기간에 따라 상기 모니터링된 GPU 자원을 기반으로 GPU 자원을 할당하는 단계;
    상기 복수의 도커 이미지 중 적어도 하나 이상을 선택하고, 상기 선택한 도커 이미지와 상기 할당한 GPU 자원을 이용하여 도커 컨테이너를 생성한 후 이를 상기 호스트 컴퓨팅 디바이스에 제공하는 단계; 및
    상기 호스트 컴퓨팅 디바이스에 의해 입력 또는 설정된 정보에 따라 상기 생성한 도커 컨테이너로 딥러닝 트레이닝을 수행할 수 있는 개발 환경을 상기 호스트 컴퓨팅 디바이스에 제공하는 단계;를 포함하되,
    상기 도커 컨테이너를 생성한 후 상기 호스트 컴퓨팅 디바이스로부터 소프트웨어의 추가 설치 요청이 있는 경우 상기 추가 설치하고자 하는 소프트웨어가 사용할 포트를 설정할 수 있는 인터페이스를 제공하는 단계를 더 포함하는
    GPU 기반의 딥러닝 개발 환경 제공 방법.
  5. 삭제
  6. 제4항에 있어서,
    상기 개발 환경을 상기 호스트 컴퓨팅 디바이스에 제공하는 단계 이후 실행 명령 및 옵션의 설정에 따라 상기 실행 명령을 상기 도커 컨테이너 상에서 자동으로 수행하는 단계와,
    상기 자동으로 수행 시 로그와 결과 값을 제공하는 단계를 더 포함하는
    GPU 기반의 딥러닝 개발 환경 제공 방법.
KR1020190168633A 2019-12-17 2019-12-17 Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 KR102140730B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190168633A KR102140730B1 (ko) 2019-12-17 2019-12-17 Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190168633A KR102140730B1 (ko) 2019-12-17 2019-12-17 Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102140730B1 true KR102140730B1 (ko) 2020-08-04

Family

ID=72048662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190168633A KR102140730B1 (ko) 2019-12-17 2019-12-17 Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102140730B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416585A (zh) * 2020-11-20 2021-02-26 南京大学 面向深度学习的gpu资源管理与智能化调度方法
CN112540854A (zh) * 2020-12-28 2021-03-23 上海体素信息科技有限公司 在限定硬件资源条件下的深度学习模型调度部署方法及系统
KR20220040065A (ko) * 2020-09-23 2022-03-30 한국전자통신연구원 도커화된 인공지능 라이브러리에 대한 프록시 생성 장치 및 방법, 도커화된 인공지능 라이브러리 기반 ros 분산 시스템
KR102394293B1 (ko) * 2020-11-02 2022-05-04 주식회사 나눔기술 다종 멀티 지능모듈 프로세스 조합 시스템
KR102604126B1 (ko) * 2023-01-02 2023-11-22 (주) 씨이랩 구독형 영상분석 시스템 및 이의 운용 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101765723B1 (ko) 2016-05-09 2017-08-08 한국과학기술정보연구원 과립형 gpu 자원 스케줄러와 gpu 인지형 스케줄러 간의 상호작용 장치 및 방법
KR101794696B1 (ko) * 2016-08-12 2017-11-07 서울시립대학교 산학협력단 이기종 프로세싱 타입을 고려한 태스크 스케쥴링 방법 및 분산 처리 시스템
KR20190076212A (ko) * 2017-12-22 2019-07-02 건국대학교 산학협력단 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치
JP2019121185A (ja) * 2018-01-05 2019-07-22 コニカミノルタ株式会社 Gpu割当プログラム、gpu割当方法、コンピュータ読取可能な記録媒体、および、gpu割当装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101765723B1 (ko) 2016-05-09 2017-08-08 한국과학기술정보연구원 과립형 gpu 자원 스케줄러와 gpu 인지형 스케줄러 간의 상호작용 장치 및 방법
KR101794696B1 (ko) * 2016-08-12 2017-11-07 서울시립대학교 산학협력단 이기종 프로세싱 타입을 고려한 태스크 스케쥴링 방법 및 분산 처리 시스템
KR20190076212A (ko) * 2017-12-22 2019-07-02 건국대학교 산학협력단 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치
JP2019121185A (ja) * 2018-01-05 2019-07-22 コニカミノルタ株式会社 Gpu割当プログラム、gpu割当方法、コンピュータ読取可能な記録媒体、および、gpu割当装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
블로그 게시물. '[Docker] 도커로 딥러닝 환경 구축하기'. 2019.10.15. (출처: https://soyoung-new-challenge.tistory.com/54) *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220040065A (ko) * 2020-09-23 2022-03-30 한국전자통신연구원 도커화된 인공지능 라이브러리에 대한 프록시 생성 장치 및 방법, 도커화된 인공지능 라이브러리 기반 ros 분산 시스템
KR102496687B1 (ko) 2020-09-23 2023-02-07 한국전자통신연구원 도커화된 인공지능 라이브러리에 대한 프록시 생성 장치 및 방법, 도커화된 인공지능 라이브러리 기반 ros 분산 시스템
KR102394293B1 (ko) * 2020-11-02 2022-05-04 주식회사 나눔기술 다종 멀티 지능모듈 프로세스 조합 시스템
CN112416585A (zh) * 2020-11-20 2021-02-26 南京大学 面向深度学习的gpu资源管理与智能化调度方法
CN112416585B (zh) * 2020-11-20 2024-03-15 南京大学 面向深度学习的gpu资源管理与智能化调度方法
CN112540854A (zh) * 2020-12-28 2021-03-23 上海体素信息科技有限公司 在限定硬件资源条件下的深度学习模型调度部署方法及系统
CN112540854B (zh) * 2020-12-28 2021-10-08 上海体素信息科技有限公司 在限定硬件资源条件下的深度学习模型调度部署方法及系统
KR102604126B1 (ko) * 2023-01-02 2023-11-22 (주) 씨이랩 구독형 영상분석 시스템 및 이의 운용 방법

Similar Documents

Publication Publication Date Title
KR102140730B1 (ko) Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법
US11429442B2 (en) Parallel and distributed computing using multiple virtual machines
Akkus et al. {SAND}: Towards {High-Performance} serverless computing
US9569277B1 (en) Rebalancing virtual resources for virtual machines based on multiple resource capacities
US10255095B2 (en) Temporal dynamic virtual machine policies
US9710304B2 (en) Methods and apparatus to select virtualization environments for migration
US8301746B2 (en) Method and system for abstracting non-functional requirements based deployment of virtual machines
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US8904384B2 (en) Reducing data transfer overhead during live migration of a virtual machine
US10678581B2 (en) Methods and apparatus to select virtualization environments during deployment
US8484639B2 (en) Fine-grained cloud management control using nested virtualization
WO2018106968A1 (en) Methods and apparatus to automate deployments of software defined data centers
US20180167275A1 (en) Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
CN107479943B (zh) 基于工业互联网操作系统的多操作系统运行方法及装置
US10162656B2 (en) Minimizing guest operating system licensing costs in a processor based licensing model in a virtual datacenter
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
JP2010521034A (ja) オペレーティングシステムからオペレーティング環境を抽象化する方法
WO2021018267A1 (zh) 虚拟机热迁移方法和通信设备
US9164805B2 (en) Managing workload distribution to reduce acoustic levels
CN112286633A (zh) 基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质
WO2016141309A1 (en) Methods and apparatus to select virtualization environments during deployment
WO2016141305A1 (en) Methods and apparatus to select virtualization environments for migration
Sugumar et al. mDesk: a scalable and reliable hypervisor framework for effective provisioning of resource and downtime reduction
Chen et al. TopCluster: A hybrid cluster model to support dynamic deployment in Grid
Jannarm et al. Framework of Dynamic Resource Allocation System for Virtual Machine in Virtualization System

Legal Events

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