KR102297576B1 - Method of managing automatically a deep learning library and apparatuses performing the same - Google Patents

Method of managing automatically a deep learning library and apparatuses performing the same Download PDF

Info

Publication number
KR102297576B1
KR102297576B1 KR1020200069487A KR20200069487A KR102297576B1 KR 102297576 B1 KR102297576 B1 KR 102297576B1 KR 1020200069487 A KR1020200069487 A KR 1020200069487A KR 20200069487 A KR20200069487 A KR 20200069487A KR 102297576 B1 KR102297576 B1 KR 102297576B1
Authority
KR
South Korea
Prior art keywords
deep learning
version
libraries
library
information
Prior art date
Application number
KR1020200069487A
Other languages
Korean (ko)
Other versions
KR20210057648A (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 건국대학교 산학협력단
Publication of KR20210057648A publication Critical patent/KR20210057648A/en
Application granted granted Critical
Publication of KR102297576B1 publication Critical patent/KR102297576B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

딥러닝 라이브러리를 자동으로 관리하는 방법 및 이를 수행하는 장치들이 개시된다. 일 실시예에 따른 가상 동작 환경별로 동작하는 딥러닝 라이브러리를 자동으로 관리하는 방법은 복수의 딥러닝 라이브러리에 대한 제1 정보에 기초하여 상기 복수의 딥러닝 라이브러리들 중에서 하나 이상의 딥러닝 라이브러리의 버전을 업데이트하는 단계와, 상기 제1 정보 및 상기 하나 이상의 딥러닝 라이브러리가 실행될 딥러닝 서버에 대한 제2 정보에 기초하여 상기 버전에 대응하는 제1 구성을 상기 하나 이상의 딥러닝 라이브러리의 업데이트 버전에 대응하는 제2 구성으로 변경하는 단계를 포함한다.Disclosed are a method for automatically managing a deep learning library and an apparatus for performing the same. A method for automatically managing a deep learning library operating for each virtual operating environment according to an embodiment is based on first information about a plurality of deep learning libraries, the version of one or more deep learning libraries among the plurality of deep learning libraries Updating the first configuration corresponding to the version based on the first information and second information about the deep learning server on which the one or more deep learning libraries will be executed corresponding to the updated version of the one or more deep learning libraries changing to the second configuration.

Description

딥러닝 라이브러리를 자동으로 관리하는 방법 및 이를 수행하는 장치들{METHOD OF MANAGING AUTOMATICALLY A DEEP LEARNING LIBRARY AND APPARATUSES PERFORMING THE SAME}A method for automatically managing a deep learning library and devices for performing the same

아래 실시예들은 딥러닝 라이브러리를 자동으로 관리하는 방법 및 이를 수행하는 장치들에 관한 것이다.The following embodiments relate to a method for automatically managing a deep learning library and apparatuses for performing the same.

최근에는 4차 산업혁명과 함께 인공지능 기술에 대한 많은 관심과 연구가 진행되고 있다. 이러한 추세에 맞춰 다양한 연구단체 및 기업 등에서는 인공지능 기술을 사용할 수 있는 다양한 딥러닝 라이브러리들을 개발 및 배포하고 있다.Recently, along with the 4th industrial revolution, there has been a lot of interest and research on artificial intelligence technology. In line with this trend, various research groups and companies are developing and distributing various deep learning libraries that can use artificial intelligence technology.

딥러닝 라이브러리들은 다양한 사용자들이 많은 관심을 가지고 사용한다. 딥러닝 라이브러리들은 버그이슈 발생 및 수정 등이 매우 활발하게 일어난다. 각 딥러닝 라이브러리 제공 단체들은 많은 이슈들에 대응하며 배포한 라이브러리에 대해 버그픽스 후 재배포, 기능 업데이트를 위한 버전업 등 짧은 기간내에 다양한 이유로 많은 업그레이드를 진행하는 편이다.Deep learning libraries are used with great interest by various users. In deep learning libraries, bug issues occur and fix very actively. Each deep learning library provider responds to many issues, and the distributed library tends to be upgraded for various reasons within a short period of time, such as redistribution after bugfixes, and version upgrades for function updates.

각각의 딥러닝 라이브러리들은 사용을 위해 필요로 요구하는 사양들이 제각각 다르며 같은 딥러닝 라이브러리 내에서도 버전이 달라지면 많은 차이가 발생하고 있다. 사용자들이 매번 딥러닝 라이브러리의 버전에 맞춰 자신들의 개발 환경을 수정하는 것은 매우 불필요하고 불편하고 시간적인 낭비가 심한 상황이다.Each deep learning library has different specifications required for use, and even within the same deep learning library, there are many differences when the version changes. It is very unnecessary, inconvenient, and time-consuming for users to modify their development environment to match the version of the deep learning library every time.

실시예들은 복수의 딥러닝 라이브러리들 중에서 하나 이상의 딥러닝 라이브러리 및 하나 이상의 딥러닝 라이브러리에 대응하는 구성을 자동으로 관리하는 기술을 제공할 수 있다.Embodiments may provide a technique for automatically managing one or more deep learning libraries among a plurality of deep learning libraries and a configuration corresponding to one or more deep learning libraries.

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problems are not limited to the above-described technical problems, and other technical problems may exist.

일 실시예에 따른 가상 동작 환경별로 동작하는 딥러닝 라이브러리를 자동으로 관리하는 장치의 딥러닝 라이브러리 관리 방법은 복수의 딥러닝 라이브러리에 대한 제1 정보에 기초하여 상기 복수의 딥러닝 라이브러리들 중에서 하나 이상의 딥러닝 라이브러리의 버전을 업데이트하는 단계와, 상기 제1 정보 및 상기 하나 이상의 딥러닝 라이브러리가 실행될 딥러닝 서버에 대한 제2 정보에 기초하여 상기 버전에 대응하는 제1 구성을 상기 하나 이상의 딥러닝 라이브러리의 업데이트 버전에 대응하는 제2 구성으로 변경하는 단계를 포함한다.A deep learning library management method of an apparatus for automatically managing a deep learning library operating for each virtual operating environment according to an embodiment is based on first information on a plurality of deep learning libraries, one or more of the plurality of deep learning libraries updating the version of the deep learning library, and configuring the first configuration corresponding to the version based on the first information and second information about the deep learning server on which the one or more deep learning libraries will be executed, the one or more deep learning libraries and changing to a second configuration corresponding to the updated version of .

상기 제1 정보는 각 딥러닝 라이브러리의 명칭, 상기 각 딥러닝 라이브러리의 최신 버전 및 상기 최신 버전에 대응하는 구성에 대한 정보를 포함할 수 있다.The first information may include the name of each deep learning library, the latest version of each deep learning library, and information on a configuration corresponding to the latest version.

상기 제2 정보는 상기 딥러닝 서버의 하드웨어에 대한 정보를 포함할 수 있다.The second information may include information about the hardware of the deep learning server.

상기 업데이트하는 단계는 상기 하나 이상의 딥러닝 라이브러리의 버전과 상기 제1 정보 내 상기 하나 이상의 딥러닝 라이브러리의 최신 버전을 비교하여 상기 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전인지 여부를 판단하는 단계와, 상기 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전이 아닌 경우, 상기 하나 이상의 딥러닝 라이브러리의 버전을 최신 버전으로 업데이트하는 단계를 포함할 수 있다.The updating includes comparing the version of the one or more deep learning libraries with the latest version of the one or more deep learning libraries in the first information to determine whether the version of the one or more deep learning libraries is the latest version; If the version of the one or more deep learning libraries is not the latest version, it may include updating the version of the one or more deep learning libraries to the latest version.

상기 딥러닝 라이브러리 관리 방법은 상기 하나 이상의 딥러닝 라이브러리를 사용할 사용자의 입력 신호에 응답하여 상기 복수의 딥러닝 라이브러리들 중에서 상기 입력 신호에 대응하는 상기 하나 이상의 딥러닝 라이브러리를 검색하는 단계를 더 포함하고, 상기 하나 이상의 딥러닝 라이브러리는 상기 복수의 딥러닝 라이브러리들 중에서 상기 사용자가 사용할 딥러닝 라이브러리일 수 있다.The deep learning library management method further comprises the step of searching for the one or more deep learning libraries corresponding to the input signal from among the plurality of deep learning libraries in response to an input signal of a user who will use the one or more deep learning libraries, and , the one or more deep learning libraries may be a deep learning library to be used by the user among the plurality of deep learning libraries.

상기 사용자의 입력 신호는 상기 사용자가 사용할 가상 동작 환경, 상기 사용자가 사용할 딥러닝 라이브러리 및 상기 사용자가 사용할 딥러닝 라이브러리의 버전에 대한 정보를 포함할 수 있다.The user's input signal may include information about a virtual operating environment to be used by the user, a deep learning library to be used by the user, and a version of the deep learning library to be used by the user.

상기 제1 구성은 상기 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리일 수 있다.The first configuration may be hardware, software, program and library compatible with the version.

상기 제2 구성은 상기 업데이트 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리일 수 있다.The second component may be hardware, software, program and library compatible with the updated version.

상기 변경하는 단계는 상기 제1 구성을 상기 제1 정보 및 상기 제2 정보와 비교하여 상기 제1 구성이 상기 업데이트 버전에 호환 가능한 구성인지 여부를 판단하는 단계와, 상기 제1 구성이 상기 업데이트 버전에 호환 가능하지 않은 경우, 상기 제1 구성을 상기 제2 구성으로 변경하는 단계를 포함할 수 있다.The changing may include comparing the first configuration with the first information and the second information to determine whether the first configuration is a configuration compatible with the updated version, wherein the first configuration is the updated version is not compatible, changing the first configuration to the second configuration.

상기 딥러닝 라이브러리 관리 방법은 상기 업데이트 버전 및 상기 업데이트 버전에 대응하는 구성을 상기 하나 이상의 딥러닝 라이브러리가 실행될 가상 동작 환경에 배포하는 단계를 더 포함할 수 있다.The deep learning library management method may further include distributing the updated version and a configuration corresponding to the updated version to a virtual operating environment in which the one or more deep learning libraries will be executed.

일 실시예에 따른 가상 동작 환경별로 동작하는 딥러닝 라이브러리를 자동으로 관리하는 장치는 인스트럭션들을 포함하는 메모리와, 상기 인스트럭션들을 실행하기 위한 컨트롤러를 포함하고, 상기 컨트롤러는 복수의 딥러닝 라이브러리에 대한 제1 정보에 기초하여 상기 복수의 딥러닝 라이브러리들 중에서 하나 이상의 딥러닝 라이브러리의 버전을 업데이트하고, 상기 제1 정보 및 상기 하나 이상의 딥러닝 라이브러리가 실행될 딥러닝 서버에 대한 제2 정보에 기초하여 상기 버전에 대응하는 제1 구성을 상기 하나 이상의 딥러닝 라이브러리의 업데이트 버전에 대응하는 제2 구성으로 변경한다.An apparatus for automatically managing a deep learning library operating for each virtual operating environment according to an embodiment includes a memory including instructions, and a controller for executing the instructions, wherein the controller is a control unit for a plurality of deep learning libraries. Update the version of one or more deep learning libraries among the plurality of deep learning libraries based on 1 information, and the version based on the first information and second information about the deep learning server on which the one or more deep learning libraries will be executed Change the first configuration corresponding to the second configuration corresponding to the updated version of the one or more deep learning libraries.

상기 제1 정보는 각 딥러닝 라이브러리의 명칭, 상기 각 딥러닝 라이브러리의 최신 버전 및 상기 최신 버전에 대응하는 구성에 대한 정보를 포함할 수 있다.The first information may include the name of each deep learning library, the latest version of each deep learning library, and information on a configuration corresponding to the latest version.

상기 제2 정보는 상기 딥러닝 서버의 하드웨어에 대한 정보를 포함할 수 있다.The second information may include information about the hardware of the deep learning server.

상기 컨트롤러는 상기 하나 이상의 딥러닝 라이브러리의 버전과 상기 제1 정보 내 상기 하나 이상의 딥러닝 라이브러리의 최신 버전을 비교하여 상기 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전인지 여부를 판단하고, 상기 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전이 아닌 경우, 상기 하나 이상의 딥러닝 라이브러리의 버전을 최신 버전으로 업데이트할 수 있다.The controller compares the version of the one or more deep learning libraries with the latest version of the one or more deep learning libraries in the first information to determine whether the version of the one or more deep learning libraries is the latest version, and the one or more deep learning libraries If the version of the learning library is not the latest version, the version of the one or more deep learning libraries may be updated to the latest version.

상기 컨트롤러는 상기 하나 이상의 딥러닝 라이브러리를 사용할 사용자의 입력 신호에 응답하여 상기 복수의 딥러닝 라이브러리들 중에서 상기 입력 신호에 대응하는 상기 하나 이상의 딥러닝 라이브러리를 검색하고, 상기 하나 이상의 딥러닝 라이브러리는 상기 복수의 딥러닝 라이브러리들 중에서 상기 사용자가 사용할 딥러닝 라이브러리일 수 있다.The controller searches for the one or more deep learning libraries corresponding to the input signal from among the plurality of deep learning libraries in response to an input signal of a user who will use the one or more deep learning libraries, wherein the one or more deep learning libraries include It may be a deep learning library to be used by the user among a plurality of deep learning libraries.

상기 사용자의 입력 신호는 상기 사용자가 사용할 가상 동작 환경, 상기 사용자가 사용할 딥러닝 라이브러리 및 상기 사용자가 사용할 딥러닝 라이브러리의 버전에 대한 정보를 포함할 수 있다.The user's input signal may include information about a virtual operating environment to be used by the user, a deep learning library to be used by the user, and a version of the deep learning library to be used by the user.

상기 제1 구성은 상기 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리일 수 있다.The first configuration may be hardware, software, program and library compatible with the version.

상기 제2 구성은 상기 업데이트 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리일 수 있다.The second component may be hardware, software, program and library compatible with the updated version.

상기 컨트롤러는 상기 제1 구성을 상기 제1 정보 및 상기 제2 정보와 비교하여 상기 제1 구성이 상기 업데이트 버전에 호환 가능한 구성인지 여부를 판단하고, 상기 제1 구성이 상기 업데이트 버전에 호환 가능하지 않은 경우, 상기 제1 구성을 상기 제2 구성으로 변경할 수 있다.the controller compares the first configuration with the first information and the second information to determine whether the first configuration is a configuration compatible with the updated version, wherein the first configuration is not compatible with the updated version Otherwise, the first configuration may be changed to the second configuration.

상기 컨트롤러는 상기 업데이트 버전 및 상기 업데이트 버전에 대응하는 구성을 상기 하나 이상의 딥러닝 라이브러리가 실행될 가상 동작 환경에 배포할 수 있다.The controller may distribute the updated version and a configuration corresponding to the updated version to a virtual operating environment in which the one or more deep learning libraries will be executed.

도 1은 일 실시예에 따른 딥러닝 라이브러리 관리 시스템의 개략적인 블록도를 나타낸다.
도 2는 도 1의 딥러닝 라이브러리 관리 장치의 개략적인 블록도를 나타낸다.
도 3은 도 2에 도시된 컨트롤러의 버전 업그레이드 동작 및 구성 변경 동작을 설명하기 위한 일 예를 나타낸다.
도 4a는 버전 체크 모듈의 동작을 설명하기 위한 일 예를 나타낸다.
도 4b는 도 4a에 도시된 Table 1을 설명하기 위한 일 예를 나타낸다.
도 4c는 도 4a에 도시된 Table 1_sub를 설명하기 위한 일 예를 나타낸다.
도 5a는 하드웨어 리소스 상태 체크 모듈의 동작을 설명하기 위한 일 예를 나타낸다.
도 5b는 도 5a에 도시된 Table 2을 설명하기 위한 일 예를 나타낸다.
도 6a는 컨테이너 매니저 모듈의 동작을 설명하기 위한 일 예를 나타낸다.
도 6b는 도 6a에 도시된 Table 3을 설명하기 위한 일 예를 나타낸다.
도 6c는 Table 3 내 컨테이너에 대한 상세 정보를 나타내는 Table 3_sub를 설명하기 위한 일 예를 나타낸다.
도 7은 컨테이너 상태 체크 모듈의 동작을 설명하기 위한 일 예를 나타낸다.
도 8은 배포 모듈의 동작을 설명하기 위한 일 예를 나타낸다.
1 shows a schematic block diagram of a deep learning library management system according to an embodiment.
Figure 2 shows a schematic block diagram of the deep learning library management apparatus of Figure 1.
3 illustrates an example for explaining a version upgrade operation and a configuration change operation of the controller illustrated in FIG. 2 .
4A shows an example for explaining the operation of the version check module.
4B shows an example for explaining Table 1 shown in FIG. 4A.
4C shows an example for explaining Table 1_sub shown in FIG. 4A.
5A shows an example for explaining the operation of the hardware resource status check module.
5B shows an example for explaining Table 2 shown in FIG. 5A.
6A shows an example for explaining the operation of the container manager module.
6B shows an example for explaining Table 3 shown in FIG. 6A.
6C shows an example for explaining Table 3_sub indicating detailed information on containers in Table 3. Referring to FIG.
7 shows an example for explaining the operation of the container status check module.
8 shows an example for explaining the operation of the distribution module.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all modifications, equivalents and substitutes for the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for description purposes only, and should not be construed as limiting. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. In addition, in describing the components of the embodiment, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the components from other components, and the essence, order, or order of the components are not limited by the terms. When it is described that a component is “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to the other component, but another component is between each component. It will be understood that may also be "connected", "coupled" or "connected".

어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components having a common function will be described using the same names in other embodiments. Unless otherwise stated, a description described in one embodiment may be applied to another embodiment, and a detailed description in the overlapping range will be omitted.

도 1은 일 실시예에 따른 딥러닝 라이브러리 관리 시스템의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a deep learning library management system according to an embodiment.

기존에는 하기와 같은 방법을 통해 딥러닝 라이브러리를 사용하였다.In the past, a deep learning library was used through the following method.

1) 사용자는 사용자가 사용할 딥러닝 라이브러리의 버전을 직접 확인하였다. 예를 들어, 사용자는 Tensorflow 공식 홈페이지에 들어가서 사용자가 사용할 딥러닝 라이브러리의 버전을 확인하였다.1) The user directly checked the version of the deep learning library to be used by the user. For example, the user went to the Tensorflow official homepage and checked the version of the deep learning library the user would use.

2) 사용자는 사용자의 작업 환경에서 딥러닝 라이브러리를 사용하기 위해서 사용자가 사용할 딥러닝 라이브러리의 버전에 맞는 하드웨어를 직접 설정하였다. 예를 들어, 사용자는 GPU 사용을 위해서 Graphic Driver, CUDA, cudnn 버전에 맞게 하드웨어를 설치하고, 하드웨어의 환경 변수를 설정하였다.2) In order to use the deep learning library in the user's work environment, the user directly set the hardware suitable for the version of the deep learning library to be used by the user. For example, the user installed the hardware according to the Graphic Driver, CUDA, and cudnn versions to use the GPU, and set the environment variables of the hardware.

3) 사용자는 사용자의 작업 환경에서 등에서 딥러닝 라이브러리를 사용하기 위해서, 사용자가 사용할 딥러닝 라이브러리의 버전이 실행되기 위해 요구되는 소프트웨어, 프로그램 및 라이브러리를 직접 설정하였다. 이때, 사용자는 사용자가 사용할 개발 언어 및 필요 라이브러리의 버전을 확인하여 소프트웨어, 프로그램 및 라이브러리를 설치하고 소프트웨어, 프로그램 및 라이브러리의 환경 변수를 설정하였다. 예를 들어, 사용자는 python = 3.7을 설치하고, oepncv = 4.2.0.32를 설치한 후 환경 변수를 설정하였다.3) In order to use the deep learning library in the user's work environment, etc., the user directly set the software, program and library required to execute the version of the deep learning library to be used by the user. At this time, the user installed the software, program, and library by checking the version of the development language and required library to be used by the user, and set environment variables of the software, program, and library. For example, the user installed python = 3.7, installed oepncv = 4.2.0.32, and then set the environment variable.

4) 사용자는 사용자가 사용하던 딥러닝 라이브러리의 버전이 바뀌는 경우에 직접 1), 2) 및 3)의 과정을 재수행하여 딥러닝 라이브러리를 사용하기 위한 작업 환경을 재설정하였다. 이때, 딥러닝 라이브러리의 버전이 바뀌는(또는 업그레이드되는) 이유는 다양할 수 있다. 예를 들어, 딥러닝 라이브러리는 critical bug issue를 해결한 hotfix update, 전반적인 API 업데이트로 인한 version upgrade, 종속 언어 및 라이브러리 업데이트로 인한 update 등으로 인해 딥러닝 라이브러리의 버전을 업그레이드 해야 한다.4) When the version of the deep learning library used by the user is changed, the user directly re-performs the processes 1), 2) and 3) to reset the working environment for using the deep learning library. At this time, the reasons for changing (or upgrading) the version of the deep learning library may be various. For example, the deep learning library must upgrade the version of the deep learning library due to a hotfix update that solves a critical bug issue, a version upgrade due to an overall API update, and an update due to a dependent language and library update.

사용자의 서버 또는 PC에서 딥러닝 사용에 쓰이는 GPU가 변경된 경우에도, 기존에는 딥러닝 라이브러리를 사용하기 위해서 변경된 GPU를 사용자의 기존 작업 환경에서 사용이 가능한지 여부(또는 호환이 가능한지 여부)확인해야 했다. 변경된 GPU가 기존 작업 환경에 호환이 되지 않는 경우, 사용자는 1), 2) 및 3)의 과정을 재수행하여 딥러닝 라이브러리를 사용하기 위한 작업 환경을 재설정 해야 했다. 예를 들어, Nvidia 1080 Ti GPU 에서 Nvidia 2080 Ti GPU 로 변경할 경우에는 하드웨어 설정을 바꾸고 그에 맞는 딥러닝 라이브러리 버전으로 딥러닝 라이브러리의 버전을 업그레이드해야 한다. 버전 업그래이드 및 작업 환경 재설정을 수행하지 않는 경우에는 하드웨어 설정과 딥러닝 라이브러리의 버전이 호환되지 않아 딥러닝 라이브러리를 사용할 수 없는 문제점이 있다.Even if the GPU used for deep learning in the user's server or PC is changed, in the past, to use the deep learning library, it was necessary to check whether the changed GPU can be used in the user's existing work environment (or whether it is compatible). If the changed GPU is not compatible with the existing working environment, the user had to re-perform the steps 1), 2) and 3) to reset the working environment to use the deep learning library. For example, when changing from Nvidia 1080 Ti GPU to Nvidia 2080 Ti GPU, you need to change the hardware settings and upgrade the deep learning library version to the corresponding deep learning library version. If the version upgrade and work environment reset are not performed, there is a problem that the deep learning library cannot be used because the hardware settings and the version of the deep learning library are not compatible.

즉, 다양한 딥러닝 라이브러리의 등장은 딥러닝 연구에 많은 도움을 주고 있지만, 사용자가 직접 각각 라이브러리마다 요구하는 프로그램 및 소프트웨어 설치, 하드웨어 설정 등 사용을 위한 세부작업을 해야만 하는 상황이다. 또한, 딥러닝 라이브러리의 빠른 발전으로 인해, 사용자는 딥러닝 라이브러리의 버전을 자주 업그레이드해야 하며 그에 맞는 세부작업 또한 매번 해야 하는 불편함이 있다.In other words, the emergence of various deep learning libraries helps a lot in deep learning research, but the user has to do detailed work for each library, such as installing programs and software, and setting up hardware. In addition, due to the rapid development of the deep learning library, the user has to frequently upgrade the version of the deep learning library, and there is an inconvenience of having to do detailed work for it every time.

이하에서는 상술한 문제점을 극복하기 위해 가상 동작 환경별로 동작하는 딥러닝 라이브러리를 자동으로 관리할 수 있는 딥러닝 라이브러리 관리 시스템(10)에 관해 설명하도록 한다. 가상 동작 환경은 독립적인 딥러닝 개발 환경을 보정하기 위한 가상의 동작 환경으로, 컨테이너(container), 콘다(conda), 도커(docker) 및 버추얼엔비(virtualenv) 등 다양한 딥러닝 개발 환경일 수 있다. 이하에서는 설명의 편의를 위해서, 가상 동작 환경을 컨테이너로 가정하도록 한다.Hereinafter, a deep learning library management system 10 capable of automatically managing a deep learning library operating for each virtual operating environment in order to overcome the above-described problems will be described. The virtual operating environment is a virtual operating environment for calibrating the independent deep learning development environment, and may be various deep learning development environments such as containers, conda, docker, and virtualenv. Hereinafter, for convenience of description, it is assumed that the virtual operating environment is a container.

딥러닝 라이브러리 관리 시스템(10)은 사용자 장치(100), 딥러닝 라이브러리 정보 제공 장치(300) 및 딥러닝 라이브러리 관리 장치(500)를 포함한다.The deep learning library management system 10 includes a user device 100 , a deep learning library information providing device 300 , and a deep learning library management device 500 .

사용자 장치(100)는 사용자가 사용하는 장치일 수 있다. 예를 들어, 사용자 장치(100)는 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치 등 다양한 장치일 수 있다. 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 스마트 디바이스(smart device)으로 구현될 수 있다. 이때, 스마트 디바이스는 스마트 워치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.The user device 100 may be a device used by a user. For example, the user device 100 may be various devices such as a personal computer (PC), a data server, or a portable electronic device. Portable electronic devices include a laptop computer, a mobile phone, a smart phone, a tablet PC, a mobile internet device (MID), a personal digital assistant (PDA), and an enterprise digital assistant (EDA). ), digital still camera, digital video camera, PMP (portable multimedia player), PND (personal navigation device or portable navigation device), handheld game console, e-book (e-book) may be implemented as a smart device. In this case, the smart device may be implemented as a smart watch or a smart band.

사용자 장치(100)는 컨테이너 별로 동작하는 딥러닝 라이브러리를 사용하기 위한 사용자의 입력에 기초하여 사용자의 입력 신호를 생성하고, 사용자의 입력 신호를 딥러닝 라이브러리 관리 장치(500)에 전송할 수 있다.The user device 100 may generate a user's input signal based on the user's input for using the deep learning library operating for each container, and transmit the user's input signal to the deep learning library management apparatus 500 .

딥러닝 라이브러리 정보 제공 장치(300)는 딥러닝 라이브러리 에코 시스템으로, 복수의 딥러닝 라이브러리들 각각에 대한 다양한 정보를 딥러닝 라이브러리 관리 장치(500)에 제공할 수 있다. 예를 들어, 딥러닝 라이브러리 에코 시스템은 딥러닝 라이브러리에 대한 정보를 제공하는 다양한 업체의 사이트일 수 있다. 딥러닝 라이브러리는 TensorFlow, Theano, Keras, Caffe, Torch, DL4j(deep learning 4J), MxNet, CNTK(Microsoft Cognitive Toolkit), Lasagne, Big DL 등 다양할 수 있다.The deep learning library information providing apparatus 300 is a deep learning library ecosystem, and may provide various information about each of a plurality of deep learning libraries to the deep learning library management apparatus 500 . For example, the deep learning library ecosystem could be sites of various vendors providing information about deep learning libraries. Deep learning libraries can be as diverse as TensorFlow, Theano, Keras, Caffe, Torch, DL4j (deep learning 4J), MxNet, CNTK (Microsoft Cognitive Toolkit), Lasagne, Big DL, etc.

딥러닝 라이브러리 관리 장치(500)는 딥러닝 라이브러리 정보 제공 장치(300)로부터 전송된 정보 및 딥러닝 서버에 대한 정보에 기초하여 복수의 딥러닝 라이브러리들 중에서 하나 이상의 딥러닝 라이브러리 및 하나 이상의 딥러닝 라이브러리에 대응하는 구성을 자동으로 관리할 수 있다. 딥러닝 서버는 딥러닝 라이브러리가 실행되고, 딥러닝 라이브러리 관리 장치(500)가 적용되는 서버일 수 있다.The deep learning library management device 500 is based on the information transmitted from the deep learning library information providing device 300 and the information on the deep learning server, one or more deep learning libraries and one or more deep learning libraries among a plurality of deep learning libraries. You can automatically manage the corresponding configuration. The deep learning server may be a server in which the deep learning library is executed and the deep learning library management apparatus 500 is applied.

이에, 딥러닝 라이브러리 관리 장치(500)는 사용자가 직접 딥러닝 라이브러리 관리를 수동으로 수행해야 하는 기존의 딥러닝 라이브러리 사용 방법의 불편함을 해결할 수 있다. 딥러닝 라이브러리 관리 장치(500)는 사용자가 직접 딥러닝 라이브러리에 대해 버전을 확인하여 설치할 필요가 없이 자동적으로 사용자의 개발 환경이 최신 상태로 유지되게 할 수 있다. 딥러닝 라이브러리 관리 장치(500)는 기존의 불편함을 해결함에 따라 사용자가 딥러닝 라이브러리를 편리하게 사용 가능하게 하여 사용자가 딥러닝 라이브러리를 관리하지 않고 연구에만 전념할 수 있도록 도움을 줄 수 있다. 딥러닝 라이브러리 관리 장치(500)는 사용자가 딥러닝 라이브러리 관리에 필요한 작업 비용 및 시간을 소모하지 않고 쉽고 편리하게 딥러닝 라이브러리를 사용하게 할 수 있다. 따라서, 사용자는 사용할 딥러닝 서비스에 필요한 세부 작업(하드웨어, 소프트웨어, 프로그램 및 라이브러리 관리)을 직접 수행할 필요 없이 편리하고 유용하게 사용할 수 있다.Accordingly, the deep learning library management apparatus 500 may solve the inconvenience of the existing deep learning library use method in which the user has to manually perform the deep learning library management. The deep learning library management apparatus 500 can automatically keep the user's development environment up to date without the need for the user to directly check the version for the deep learning library and install it. The deep learning library management device 500 can help the user to focus on research without managing the deep learning library by making the deep learning library convenient for the user as it solves the existing inconvenience. The deep learning library management device 500 allows the user to use the deep learning library easily and conveniently without consuming the work cost and time required for managing the deep learning library. Therefore, users can use it conveniently and usefully without the need to directly perform detailed tasks (hardware, software, program and library management) required for the deep learning service to be used.

딥러닝 라이브러리 관리 장치(500)가 딥러닝 서버와 독립적으로 구현 가능하지만, 이에 한정하는 것은 아니다. 예를 들어, 딥러닝 라이브러리 관리 장치(500)는 딥러닝 서버에 포함되어 구현되거나 딥러닝 서버일 수 있다.The deep learning library management apparatus 500 may be implemented independently of the deep learning server, but is not limited thereto. For example, the deep learning library management apparatus 500 may be implemented by being included in a deep learning server or a deep learning server.

이하에서는 설명의 편의를 위해서 복수의 딥러닝 라이브러리들 각각에 대한 다양한 정보를 제1 정보로 명명하고, 딥러닝 서버(500)에 대한 정보를 제2 정보로 명명하도록 한다.Hereinafter, for convenience of explanation, various information on each of the plurality of deep learning libraries is named as first information, and information on the deep learning server 500 is named as second information.

도 2는 도 1의 딥러닝 라이브러리 관리 장치의 개략적인 블록도를 나타낸다.Figure 2 shows a schematic block diagram of the deep learning library management apparatus of Figure 1.

딥러닝 라이브러리 관리 장치(500)는 메모리(510) 및 컨트롤러(530)를 포함할 수 있다.The deep learning library management apparatus 500 may include a memory 510 and a controller 530 .

메모리(510)는 컨트롤러(330)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 컨트롤러(530)의 동작 및/또는 컨트롤러(330)의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The memory 510 may store instructions (or programs) executable by the controller 330 . For example, the instructions may include instructions for executing an operation of the controller 530 and/or an operation of each component of the controller 330 .

컨트롤러(530)는 메모리(510)에 저장된 데이터를 처리할 수 있다. 컨트롤러(530)는 메모리(510)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 컨트롤러(530)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The controller 530 may process data stored in the memory 510 . The controller 530 may execute computer readable codes (eg, software) stored in the memory 510 and instructions induced by the controller 530 .

컨트롤러(530)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The controller 530 may be a hardware-implemented data processing device having a circuit having a physical structure for executing desired operations. For example, desired operations may include code or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

컨트롤러(530)는 딥러닝 라이브러리 관리 장치(500)의 전반적인 동작을 제어할 수 있다. 예를 들어, 컨트롤러(530)는 메모리(510)의 동작을 제어할 수 있다.The controller 530 may control the overall operation of the deep learning library management apparatus 500 . For example, the controller 530 may control the operation of the memory 510 .

컨트롤러(530)는 제1 정보에 기초하여 복수의 딥러닝 라이브러리들 중에서 하나 이상의 딥러닝 라이브러리의 버전을 업데이트할 수 있다.The controller 530 may update a version of one or more deep learning libraries among a plurality of deep learning libraries based on the first information.

예를 들어, 컨트롤러(530)는 사용자의 입력 신호에 응답하여 복수의 딥러닝 라이브러리들 중에서 사용자의 입력 신호에 대응하는 하나 이상의 딥러닝 라이브러리를 검색할 수 있다. 사용자의 입력 신호는 사용자가 사용할 컨테이너 및 딥러닝 라이브러리에 대한 정보를 포함할 수 있다. 예를 들어, 입력 신호는 사용자가 사용할 딥러닝 라이브러리, 사용자가 사용할 딥러닝 라이브러리의 버전, 개발에 사용할 개발 언어 및 사용자가 사용할 컨테이너에 대한 정보를 포함할 수 있다. 사용자가 사용할 컨테이너에 대한 정보는 ID 및/또는 명칭(ID and/or names)일 수 있다. 예를 들어, 사용자의 입력 신호는 "DLLM <컨테이너 ID or Names> <lang=python> <tensorflow=2.1> <pytorch=1.4> <etc>"일 수 있다. 이때, 개발 언어는 python이고, 딥러닝 라이브러리는 tensorflow 및 pytorch이고, tensorflow의 버전은 2.1 버전이고, pytorch의 버전은 1.4 버전일 수 있다.For example, the controller 530 may search for one or more deep learning libraries corresponding to the user's input signal from among a plurality of deep learning libraries in response to the user's input signal. The user's input signal may include information about the container and deep learning library to be used by the user. For example, the input signal may include information about the deep learning library to be used by the user, the version of the deep learning library to be used by the user, the development language to be used for development, and the container to be used by the user. Information on the container to be used by the user may be ID and/or names. For example, the user's input signal may be "DLLM <container ID or Names> <lang=python> <tensorflow=2.1> <pytorch=1.4> <etc>". At this time, the development language may be python, the deep learning library may be tensorflow and pytorch, the version of tensorflow may be version 2.1, and the version of pytorch may be version 1.4.

컨트롤러(530)는 하나 이상의 딥러닝 라이브러리의 버전과 제1 정보 내 하나 이상의 딥러닝 라이브러리의 최신 버전을 비교하여 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전인지 여부를 판단할 수 있다. 하나 이상의 딥러닝 라이브러리는 복수의 딥러닝 라이브러리들 중에서 사용자의 입력 신호에 대응하는 딥러닝 라이브러리로, 사용자가 사용할 딥러닝 라이브러리일 수 있다. 하나 이상의 딥러닝 라이브러리에 대응하는 구성은 하나 이상의 딥러닝 라이브러리가 실행되기 위해 필요한 구성으로, 하나 이상의 딥러닝 라이브러리에 호환 가능한 구성일 수 있다. 제1 정보는 각 딥러닝 라이브러리의 명칭, 각 딥러닝 라이브러리의 버전 및 버전에 대응하는 구성에 대한 정보일 수 있다. 각 딥러닝 라이브러리의 버전에 대한 정보는 각 딥러닝 라이브러리에 대한 모든 버전 정보일 수 있다. 모든 버전 정보는 최신 버전 및 구형 버전에 대한 정보일 수 있다. 각 딥러닝 라이브러리의 버전에 대응하는 구성에 대한 정보는 각 딥러닝 라이브러리의 복수의 버전들 각각에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리 등에 대한 정보일 수 있다.The controller 530 may determine whether the version of the one or more deep learning libraries is the latest version by comparing the version of the one or more deep learning libraries with the latest version of the one or more deep learning libraries in the first information. The at least one deep learning library is a deep learning library corresponding to a user's input signal among a plurality of deep learning libraries, and may be a deep learning library to be used by the user. A configuration corresponding to one or more deep learning libraries is a configuration necessary for the one or more deep learning libraries to run, and may be a configuration compatible with one or more deep learning libraries. The first information may be a name of each deep learning library, a version of each deep learning library, and information about a configuration corresponding to the version. The information about the version of each deep learning library may be all version information for each deep learning library. All version information may be information about the latest version and the old version. The information on the configuration corresponding to the version of each deep learning library may be information about hardware, software, programs and libraries compatible with each of a plurality of versions of each deep learning library.

하나 이상의 딥러닝 라이브러리의 버전이 최신 버전이 아닌 경우, 컨트롤러(530)는 하나 이상의 딥러닝 라이브러리의 버전을 제1 정보 내 하나 이상의 딥러닝 라이브러리의 최신 버전으로 업데이트할 수 있다.If the version of the one or more deep learning libraries is not the latest version, the controller 530 may update the version of the one or more deep learning libraries to the latest version of the one or more deep learning libraries in the first information.

컨트롤러(530)는 제1 정보 및 제2 정보에 기초하여 업데이트 전 하나 이상의 딥러닝 라이브러리의 버전에 대응하는 제1 구성을 하나 이상의 딥러닝 라이브러리의 업데이트 버전(또는 최신 버전)에 대응하는 제2 구성으로 변경할 수 있다. 제2 정보는 하나 이상의 딥러닝 라이브러리의 업데이트 버전이 실행될 딥러닝 서버의 하드웨어에 대한 정보를 포함할 수 있다.The controller 530 configures a first configuration corresponding to the version of the one or more deep learning libraries before updating based on the first information and the second information, and a second configuration corresponding to the updated version (or the latest version) of the one or more deep learning libraries. can be changed to The second information may include information about hardware of a deep learning server on which an updated version of one or more deep learning libraries will be executed.

예를 들어, 컨트롤러(530)는 제1 구성을 제1 정보 및 제2 정보와 비교하여 제1 구성이 하나 이상의 딥러닝 라이브러리의 업데이트 버전에 호환 가능한 구성인지 여부를 판단할 수 있다. 제1 구성은 업데이트 전 하나 이상의 딥러닝 라이브러리의 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리(또는 업데이트 전 하나 이상의 딥러닝 라이브러리의 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리에 대한 정보)일 수 있다. 제2 구성은 하나 이상의 딥러닝 라이브러리의 업데이트 버전(또는 최신 버전)에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리(또는 하나 이상의 딥러닝 라이브러리의 업데이트 버전(또는 최신 버전)에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리에 대한 정보)일 수 있다.For example, the controller 530 may compare the first configuration with the first information and the second information to determine whether the first configuration is a configuration compatible with an updated version of one or more deep learning libraries. The first configuration may be hardware, software, programs and libraries compatible with the version of the one or more deep learning libraries prior to the update (or information about the hardware, software, programs and libraries compatible with the version of the one or more deep learning libraries prior to the update). have. The second component comprises hardware, software, programs and libraries compatible with an updated version (or newer version) of one or more deep learning libraries (or hardware, software, programs compatible with an updated version (or newer version) of one or more deep learning libraries). and information about the library).

제1 구성이 하나 이상의 딥러닝 라이브러리의 업데이트 버전에 호환 가능하지 않은 경우, 컨트롤러(530)는 판단 결과에 기초하여 제1 구성을 제2 구성으로 변경할 수 있다.If the first configuration is not compatible with the updated version of one or more deep learning libraries, the controller 530 may change the first configuration to the second configuration based on the determination result.

컨트롤러(530)는 하나 이상의 딥러닝 라이브러리의 업데이트 버전 및 업데이트 버전에 대응하는 구성을 업데이트된 하나 이상의 딥러닝 라이브러리가 실행될 컨테이너에 배포할 수 있다.The controller 530 may distribute an updated version of one or more deep learning libraries and a configuration corresponding to the updated version to a container in which the updated one or more deep learning libraries will be executed.

컨트롤러(530)가 사용자가 사용할 딥러닝 라이브러리를 업데이트하고, 업데이트된 딥러닝 라이브러리에 대응하는 구성을 업데이트 버전에 대응하는 구성으로 변경하지만, 이에 한정하는 것은 아니다. 예를 들어, 컨트롤러(530)는 딥러닝 서버 내 구축된 컨테이너들 내 모든 딥러닝 라이브러리들의 버전을 주기적으로 업데이트하고, 업데이트되기 각 딥러닝 라이브러리에 대응하는 구성을 각 딥러닝 라이브러리의 업데이트 버전에 대응하는 구성으로 변경할 수 있다.The controller 530 updates the deep learning library to be used by the user, and changes the configuration corresponding to the updated deep learning library to the configuration corresponding to the updated version, but is not limited thereto. For example, the controller 530 periodically updates the versions of all deep learning libraries in containers built in the deep learning server, and corresponds to the updated version of each deep learning library with a configuration corresponding to each deep learning library to be updated. configuration can be changed.

이하에서는 설명의 편의를 위해서 딥러닝 라이브러리 관리 장치(500)를 딥러닝 서버로 가정하고, 딥러닝 서버에 구축된 컨테이너 내 모든 딥러닝 라이브러리가 버전 관리 및 구성 변경이 수행된다고 가정하도록 한다.Hereinafter, for convenience of explanation, it is assumed that the deep learning library management device 500 is a deep learning server, and it is assumed that version management and configuration changes are performed for all deep learning libraries in containers built on the deep learning server.

도 3은 도 2에 도시된 컨트롤러의 버전 업그레이드 동작 및 구성 변경 동작을 설명하기 위한 일 예를 나타낸다.3 illustrates an example for explaining a version upgrade operation and a configuration change operation of the controller illustrated in FIG. 2 .

도 2에 설명된 컨트롤러(530)의 동작은 딥러닝 서버의 모듈화된 세부 구성이 동일하게 수행하고, 하기에 설명되는 딥러닝 서버의 세부 구성의 동작은 컨트롤러(530)가 수행할 수 있다. 예를 들어, 딥러닝 서버는 버전 체크 모듈(version check module; 531), 컨테이너 상태 체크 모듈(all container state check module; 533), 하드웨어 리소스 상태 체크 모듈(hardware resource state check module; 535), 컨테이너 매니저 모듈(container manager module; 537), 배포 모듈(deployment module; 539)로 구성될 수 있다.The operation of the controller 530 described in FIG. 2 may be performed by the modularized detailed configuration of the deep learning server, and the operation of the detailed configuration of the deep learning server described below may be performed by the controller 530 . For example, the deep learning server is a version check module (version check module; 531), container state check module (all container state check module; 533), hardware resource state check module (hardware resource state check module; 535), container manager It may be composed of a module (container manager module; 537) and a deployment module (539).

딥러닝 서버는 버전 체크 모듈(531) 및 컨테이너 상태 체크 모듈(533)을 통해 기 설정된 시간에 따라 주기별로 딥러닝 라이브러리의 버전을 확인하여 버전 업그레이드(또는 버전 관리)를 자동적으로 수행할 수 있다. 이에, 사용자는 직접 딥러닝 라이브러리에 대해 버전을 확인하여 설치할 필요가 없다.The deep learning server may automatically perform version upgrade (or version management) by checking the version of the deep learning library for each cycle according to a preset time through the version check module 531 and the container state check module 533 . Therefore, the user does not need to directly check the version for the deep learning library and install it.

예를 들어, 딥러닝 서버는 버전 체크 모듈(version check module; 531)을 통해 딥러닝 라이브러리 정보 제공 장치(300)로부터 주기적으로 제1 정보를 수신 및 저장하여 각 딥러닝 라이브러리에 대한 제1 정보를 최신으로 유지할 수 있다. 딥러닝 서버는 컨테이너 상태 체크 모듈(533)을 통해 컨테이너 별로 사용하는 딥러닝 라이브러리 버전을 확인할 수 있다. 컨테이너의 딥러닝 라이브러리 버전이 최신 버전이 아닌 경우, 딥러닝 서버는 컨테이너의 딥러닝 라이브러리 버전을 최신 버전으로 업그레이드를 해주며, 업그레이드된 버전에 맞는(또는 업그레이드된 버전에 호환 가능한) 하드웨어, 소프트웨어, 프로그램 및/또는 라이브러리 설정과 배포를 자동으로 수행할 수 있다.For example, the deep learning server periodically receives and stores the first information from the deep learning library information providing apparatus 300 through a version check module (531) to receive the first information for each deep learning library. can be kept up to date. The deep learning server may check the deep learning library version used for each container through the container state check module 533 . If the container's deep learning library version is not the latest version, the deep learning server upgrades the container's deep learning library version to the latest version, and includes hardware, software, and Program and/or library setup and deployment can be performed automatically.

딥러닝 라이브러리의 버전이 업그레이드되거나 딥러닝 서버(500)의 하드웨어가 변경되는 경우, 딥러닝 서버는 버전 체크 모듈(531), 하드웨어 리소스 상태 체크 모듈(535) 및 컨테이너 상태 체크 모듈(533)을 통해 주기별로 하드웨어 설정(또는 버전)을 확인하고 업그레이드된 딥러닝 라이브러리와의 호환성을 확인하여 개발 환경을 최신 상태로 유지시켜 줄 수 있다. 이에, 사용자 또는 서버 관리자는 직접 하드웨어 설정을 확인하여 설정 변경할 필요가 없다.When the version of the deep learning library is upgraded or the hardware of the deep learning server 500 is changed, the deep learning server is configured through the version check module 531, the hardware resource status check module 535 and the container status check module 533. You can keep the development environment up to date by checking the hardware settings (or version) every cycle and checking the compatibility with the upgraded deep learning library. Accordingly, the user or the server administrator does not need to directly check the hardware setting and change the setting.

예를 들어, 딥러닝 서버는 버전 체크 모듈(531)을 통해 주기적으로 각 딥러닝 라이브러리에 호환 가능한 하드웨어에 대한 최신 정보를 유지할 수 있다.For example, the deep learning server may periodically maintain the latest information on compatible hardware for each deep learning library through the version check module 531 .

딥러닝 서버는 하드웨어 리소스 상태 체크 모듈(535)을 통해 주기적으로 현재 딥러닝 서버(500)의 하드웨어에 대한 최신 정보를 유지할 수 있다.The deep learning server may periodically maintain the latest information on the hardware of the current deep learning server 500 through the hardware resource state check module 535 .

딥러닝 서버는 컨테이너 상태 체크 모듈(533)을 통해 딥러닝 라이브러리가 업그레이드 되거나 딥러닝 서버의 하드웨어가 변경된 경우에 업그레이드된 딥러닝 라이브러리와 딥러닝 서버의 하드웨어 간의 호환성을 확인하여 그에 맞는 하드웨어 설정 변경을 자동으로 수행할 수 있다.When the deep learning library is upgraded or the hardware of the deep learning server is changed through the container status check module 533, the deep learning server checks the compatibility between the upgraded deep learning library and the hardware of the deep learning server and changes the hardware settings accordingly. This can be done automatically.

딥러닝 라이브러리의 버전이 바뀌거나 딥러닝 라이브러리에 호화 가능한 소프트웨어, 프로그램 및 라이브러리의 버전이 바뀐 경우, 딥러닝 서버는 버전 체크 모듈(531) 및 컨테이너 상태 체크 모듈(533)을 통해 주기별로 소프트웨어, 프로그램 및 라이브러리 설정의 버전을 확인하여 개발 환경을 최신 상태로 유지시켜 줄 수 있다. 이에, 사용자는 직접 소프트웨어, 프로그램 및 라이브러리 설정을 확인하여 설치 및 변경할 필요가 없다.When the version of the deep learning library is changed or the versions of software, programs and libraries compatible with the deep learning library are changed, the deep learning server performs the software, program by cycle through the version check module 531 and the container status check module 533. You can keep the development environment up to date by checking the version of and library settings. Accordingly, there is no need for the user to directly check the software, program and library settings to install and change.

예를 들어, 딥러닝 서버는 버전 체크 모듈(531)을 통해 주기적으로 각 딥러닝 라이브러리에 호환 가능한 소프트웨어, 프로그램 및 라이브러리에 대한 최신 정보를 유지할 수 있다.For example, the deep learning server may periodically maintain the latest information on software, programs and libraries compatible with each deep learning library through the version check module 531 .

딥러닝 라이브러리가 업그레이드 되거나 딥러닝 라이브러리에 맞는 소프트웨어, 프로그램 및 라이브러리의 버전이 변경된 경우, 딥러닝 서버는 컨테이너 상태 체크 모듈(533)을 통해 딥러닝 라이브러리와 소프트웨어, 프로그램 및 라이브러리 간의 호환성을 확인하여 그에 맞는 소프트웨어, 프로그램 및 라이브러리의 설치 및 설정 변경을 자동으로 수행할 수 있다.When the deep learning library is upgraded or the version of the software, program, and library that fits the deep learning library is changed, the deep learning server checks the compatibility between the deep learning library and the software, program and library through the container status check module 533. It can automatically install and change settings for the right software, programs and libraries.

딥러닝 서버는 딥러닝 라이브러리 매니지먼트(Deep Learning Library Management) 및 컨테이너 상태 체크 모듈(533)을 통해 업데이트된 딥러닝 라이브러리 및 업데이트된 딥러닝 라이브러리에 호환 가능한 구성으로 변경된 구성에 대한 정보를 배포할 수 있다.The deep learning server can distribute information about the changed configuration to a compatible configuration to the updated deep learning library and the updated deep learning library through the deep learning library management and container health check module 533. .

예를 들어, 딥러닝 서버는 딥러닝 라이브러리 매니지먼트에서 각 딥러닝 라이브러리의 버전, 각 딥러닝 라이브러리에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리의 버전을 확인하고 딥러닝 라이브러리 정보 제공 장치(300)로부터 딥러닝 개발에 필요한 파일들에 대하여 배포를 받아 딥러닝 라이브러리 매니지먼트에 저장하여 관리할 수 있다.For example, the deep learning server checks the version of each deep learning library in the deep learning library management, the versions of hardware, software, programs and libraries compatible with each deep learning library, and performs the deep learning from the deep learning library information providing device 300 . Files necessary for learning development can be distributed and stored in deep learning library management for management.

딥러닝 서버는 컨테이너 상태 체크 모듈(533)을 통해 버전 관리 자동화, 하드웨어 설정 자동화, 소프트웨어, 프로그램 및 라이브러리 설정 자동화를 수행하고, 각 컨테이너에 필요한 파일들을 배포할 수 있다. 이때, 컨테이너 상태 체크 모듈(533)은 먼저 하드웨어 설정에 필요한 정보를 배포한 후 소프트웨어, 프로그램 및 라이브러리 설정에 필요한 정보를 배포할 수 있다. 컨테이너 상태 체크 모듈(533)은 마지막으로 딥러닝 라이브러리 설정에 필요한 정보를 배포할 수 있다.The deep learning server may perform version control automation, hardware configuration automation, software, program, and library configuration automation through the container status check module 533, and may distribute files necessary for each container. In this case, the container state check module 533 may distribute information necessary for hardware setting first, and then distribute information necessary for software, program, and library setting. Finally, the container state check module 533 may distribute information necessary for setting up the deep learning library.

도 4a는 버전 체크 모듈의 동작을 설명하기 위한 일 예를 나타내고, 도 4b는 도 4a에 도시된 Table 1을 설명하기 위한 일 예를 나타내고, 도 4c는 도 4a에 도시된 Table 1_sub를 설명하기 위한 일 예를 나타낸다.4A shows an example for explaining the operation of the version check module, FIG. 4B shows an example for explaining Table 1 shown in FIG. 4A, and FIG. 4C shows an example for explaining Table 1_sub shown in FIG. 4A An example is shown.

도 4a 내지 도 4c를 참조하면, 버전 체크 모듈(531)은 주기적으로 딥러닝 라이브러리 정보 제공 장치(300)에 접근하여 각 딥러닝 라이브러리에 대한 version, install url, version-state에 대한 정보를 포함하는 제1 정보를 확인 및 수신할 수 있다.4A to 4C, the version check module 531 periodically accesses the deep learning library information providing device 300 and includes information about the version, install url, and version-state for each deep learning library. It is possible to confirm and receive the first information.

버전 체크 모듈(531)은 딥러닝 라이브러리 정보 제공 장치(300)로부터 전송된 제1 정보 내 각 딥러닝 라이브러리에 대한 정보에 기초하여 Table 1을 생성 및 갱신(업데이트)함으로써, 각 딥러닝 라이브러리에 대한 정보를 최신으로 유지할 수 있다. Table 1은 도 4b와 같이 각 딥러닝 라이브러리와 각 딥러닝 라이브러리와 각 딥러닝 라이브러리에 대응하는 복수의 버전들에 대한 정보가 매칭되어 리스트화된 정보를 포함할 수 있다.The version check module 531 generates and updates (updates) Table 1 based on the information on each deep learning library in the first information transmitted from the deep learning library information providing device 300, so that for each deep learning library Information can be kept up to date. Table 1 may include information listed by matching information about each deep learning library, each deep learning library, and a plurality of versions corresponding to each deep learning library, as shown in FIG. 4B .

버전 체크 모듈(531)은 제1 정보 내 각 딥러닝 라이브러리에 대응하는 구성에 대한 정보에 기초하여 각 딥러닝 라이브러리의 복수의 버전들 각각에 맞는 하드웨어, 소프트웨어, 프로그램 및 라이브러리에 대한 version, install url을 확인하여 Table 1_Sub를 생성 및 갱신할 수 있다. 예를 들어, Table 1_sub은 도 4c와 같이 각 딥러닝 라이브러리의 복수의 버전들 각각과 각 버전에 맞는 하드웨어, 소프트웨어, 프로그램 및 라이브러리에 대한 정보가 매칭되어 리스트화된 정보를 포함할 수 있다.The version check module 531 is based on the information on the configuration corresponding to each deep learning library in the first information, the version, install url for hardware, software, program and library suitable for each of a plurality of versions of each deep learning library can be checked to create and update Table 1_Sub. For example, Table 1_sub may include information listed by matching information about a plurality of versions of each deep learning library and hardware, software, programs, and libraries suitable for each version, as shown in FIG. 4C .

딥러닝 서버의 딥러닝 라이브러리 매니지먼트는 딥러닝 라이브러리 정보 제공 장치(300), 제1 정보, Table 1 및 Table 1_sub를 관리할 수 있다.The deep learning library management of the deep learning server may manage the deep learning library information providing device 300 , the first information, Table 1 and Table 1_sub.

도 5a는 하드웨어 리소스 상태 체크 모듈의 동작을 설명하기 위한 일 예를 나타내고, 도 5b는 도 5a에 도시된 Table 2을 설명하기 위한 일 예를 나타낸다.5A shows an example for explaining the operation of the hardware resource status check module, and FIG. 5B shows an example for explaining Table 2 shown in FIG. 5A.

도 5a 및 도 5b를 참조하면, 하드웨어 리소스 상태 체크 모듈(535)은 주기적으로 딥러닝 서버의 딥러닝 서버 하드웨어 리소스(deep learning server hardware resource)로부터 전송된 딥러닝 서버의 하드웨어 정보를 확인 및 수신할 수 있다. 하드웨어 리소스 상태 체크 모듈(535)이 딥러닝 서버의 GPU, CPU, Storage, RAM 등 다양한 하드웨어 정보를 확인 및 수신하지만, 딥러닝 라이브러리에 가장 큰 영향을 미치는 하드웨어는 딥러닝 서버의 GPU일 수 있다.5A and 5B, the hardware resource status check module 535 periodically checks and receives the hardware information of the deep learning server transmitted from the deep learning server hardware resource of the deep learning server. can Although the hardware resource status check module 535 checks and receives various hardware information such as GPU, CPU, Storage, and RAM of the deep learning server, the hardware that has the greatest influence on the deep learning library may be the GPU of the deep learning server.

하드웨어 리소스 상태 체크 모듈(535)은 수신된 딥러닝 서버의 하드웨어 정보에 기초하여 Table 2를 생성 및 갱신하여 딥러닝 서버의 하드웨어에 대한 정보를 최신으로 유지할 수 있다. Table 2는 도 5b와 같이 딥러닝 서버의 각 하드웨어의 이름, 타입 등이 매칭되어 리스트화된 정보를 포함할 수 있다.The hardware resource status check module 535 may generate and update Table 2 based on the received hardware information of the deep learning server to keep the information on the hardware of the deep learning server up to date. Table 2 may include information listed by matching the name and type of each hardware of the deep learning server as shown in FIG. 5B.

도 6a는 컨테이너 매니저 모듈의 동작을 설명하기 위한 일 예를 나타내고, 도 6b는 도 6a에 도시된 Table 3을 설명하기 위한 일 예를 나타내고, 도 6c는 Table 3 내 컨테이너에 대한 상세 정보를 나타내는 Table 3_sub를 설명하기 위한 일 예를 나타낸다.6A shows an example for explaining the operation of the container manager module, FIG. 6B shows an example for explaining Table 3 shown in FIG. 6A, and FIG. 6C shows a table showing detailed information about containers in Table 3 An example for describing 3_sub is shown.

도 6a 내지 도 6b를 참조하면, 컨테이너 매니저 모듈(537)은 딥러닝 서버에 구축된 컨테이너에 대한 환경 정보에 기초하여 Table 3을 생성 및 갱신할 수 있다. 컨테이너 매니저 모듈(537)은 주기적으로 Table 3에 포함된 컨테이너 공간이 딥러닝 서버에 존재하는지 확인하고, 컨테이너가 딥러닝 서버에서 확인되지 않는 경우에 확인되지 않는 컨테이너를 Table 3에서 삭제할 수 있다. 이에, 컨테이너 매니저 모듈(537)은 Table 3의 컨테이너 목록을 최신 상태로 유지할 수 있다. 컨테이너에 대한 환경 정보는 컨테이너의 ID 및 명칭(name)이고, Table 3은 도 6b와 같이 컨테이너 ID, 명칭 및 인덱스 번호가 매칭되어 리스트화된 정보를 포함할 수 있다.6A to 6B , the container manager module 537 may generate and update Table 3 based on environment information on containers built in the deep learning server. The container manager module 537 periodically checks whether the container space included in Table 3 exists in the deep learning server, and when the container is not checked in the deep learning server, the unverified container may be deleted from Table 3. Accordingly, the container manager module 537 may keep the container list of Table 3 up to date. The environment information on the container is the ID and name of the container, and Table 3 may include information listed by matching the container ID, name, and index number as shown in FIG. 6B .

도 6c 내지 도 6d를 참조하면, 컨테이너 매니저 모듈(537)은 각 컨테이너 내부에서 백그라운드로 동작하며 주기적으로 각 컨테이너 내부의 딥러닝 라이브러리, 소프트웨어, 프로그램 및 라이브러리 정보를 확인하여 Table 3_sub를 생성 및 갱신할 수 있다. 이때, 컨테이너 매니저 모듈(537)은 컨테이너 상태 매니저 모듈(container state manager module)일 수 있다. Table 3_sub는 도 6d와 같이 각 딥러닝 라이브러리의 명칭, 버전, 및 타입이 매칭되어 리스트화된 정보를 포함할 수 있다. 이에, 사용자가 컨테이너 내부에서 임의로 또는 실수로 딥러닝 라이브러리, 소프트웨어, 프로그램 및 라이브러리의 버전을 업그레이드하거나 변경한 경우, 컨테이너 매니저 모듈(537)은 각 컨테이너 내부의 딥러닝 라이브러리, 소프트웨어, 프로그램 및 라이브러리 정보를 관리할 수 있다.6C to 6D , the container manager module 537 operates in the background inside each container and periodically checks the deep learning library, software, program and library information inside each container to generate and update Table 3_sub. can In this case, the container manager module 537 may be a container state manager module. Table 3_sub may include information listed by matching the name, version, and type of each deep learning library as shown in FIG. 6D . Accordingly, if the user arbitrarily or accidentally upgrades or changes the version of the deep learning library, software, program and library inside the container, the container manager module 537 provides information on the deep learning library, software, program and library inside each container. can manage

딥러닝 서버와 딥러닝 라이브러리의 stable 한 버전이 맞지 않는 경우, 컨테이너 매니저 모듈(537)은 딥러닝 라이브러리 기준으로 실행될 딥러닝 라이브러리에 대한 다양한 정보를 재배포할 수 있다.If the deep learning server and the stable version of the deep learning library do not match, the container manager module 537 may redistribute various information about the deep learning library to be executed based on the deep learning library.

도 7은 컨테이너 상태 체크 모듈의 동작을 설명하기 위한 일 예를 나타낸다.7 shows an example for explaining the operation of the container status check module.

컨테이너 상태 체크 모듈(533)은 Table 3 내(또는 딥러닝 서버에 구축된) 각 컨테이너에 대한 Table 3_sub를 이용하여 주기적으로 컨테이너들에 대한 정보가 변경되었는지 여부를 판단하고, 그에 맞는 배포를 수행할 수 있다. 이때, 컨테이너 상태 체크 모듈(533)은 Table 1, Table 1_sub 및 Table 2에 기초하여 정보 변경 여부를 판단할 수 있다.The container status check module 533 uses Table 3_sub for each container in Table 3 (or built in a deep learning server) to periodically determine whether information on containers has changed, and to perform distribution accordingly. can In this case, the container state check module 533 may determine whether information is changed based on Table 1, Table 1_sub, and Table 2.

예를 들어, 컨테이너 상태 체크 모듈(533)은 갱신된 Table 1과 각 컨테이너 내 모든 딥러닝 라이브러리의 버전 정보를 비교하여 딥러닝 라이브러리가 최신 stable한 버전으로 변경되었는지 여부를 판단할 수 있다. 딥러닝 라이브러리의 버전이 변경된 경우, 컨테이너 상태 체크 모듈(533)은 Table 1에 기초하여 버전 업그레이드를 위한 딥러닝 라이브러리 배포를 수행할 수 있다.For example, the container state check module 533 may compare the updated Table 1 with version information of all deep learning libraries in each container to determine whether the deep learning library has been changed to the latest stable version. When the version of the deep learning library is changed, the container state check module 533 may perform distribution of the deep learning library for version upgrade based on Table 1.

컨테이너 상태 체크 모듈(533)은 갱신된 Table 2와 각 컨테이너 내 딥러닝 서버의 하드웨어 정보를 비교하여 딥러닝 서버의 하드웨어가 변경되었는지 여부를 판단할 수 있다. 딥러닝 서버의 하드웨어가 변경된 경우, 컨테이너 상태 체크 모듈(533)은 Table 2에 기초하여 하드웨어 호환성 확인 및 설정 변경을 위한 하드웨어 설정 배포를 수행할 수 있다.The container state check module 533 may compare the updated Table 2 with hardware information of the deep learning server in each container to determine whether the hardware of the deep learning server has been changed. When the hardware of the deep learning server is changed, the container state check module 533 may perform hardware configuration distribution for hardware compatibility check and configuration change based on Table 2 .

컨테이너 상태 체크 모듈(533)은 갱신된 Table 1_sub와 각 컨테이너 내 모든 딥러닝 라이브러리에 대응하는 구성을 비교하여 딥러닝 라이브러리에 대응하는 구성이 변경되었는지 여부를 판단할 수 있다. 딥러닝 라이브러리에 대응하는 구성이 변경된 경우, 컨테이너 상태 체크 모듈(533)은 Table 1_sub에 기초하여 구성 호환 확인 및 설정 변경을 위한 구성 설정 배포를 수행할 수 있다.The container state check module 533 may compare the updated Table 1_sub with the configuration corresponding to all deep learning libraries in each container to determine whether the configuration corresponding to the deep learning library has been changed. When the configuration corresponding to the deep learning library is changed, the container state check module 533 may perform configuration configuration distribution for configuration compatibility check and configuration change based on Table 1_sub.

도 8은 배포 모듈의 동작을 설명하기 위한 일 예를 나타낸다.8 shows an example for explaining the operation of the distribution module.

배포 모듈(539)은 딥러닝 서버의 하드웨어 변경 및/또는 딥러닝 라이브러리 업그레이드로 인해 딥러닝 서버에 적합한 딥러닝 라이브러리를 설치 및 실행하기 위한 배포 동작을 수행할 수 있다.The distribution module 539 may perform a distribution operation for installing and running a deep learning library suitable for the deep learning server due to a hardware change and/or a deep learning library upgrade of the deep learning server.

먼저, 배포 모듈(539)은 딥러닝 서버에 적합한 딥러닝 라이브러리에 대응하는(또는 매칭되는) 하드웨어 배포 동작을 수행할 수 있다. 예를 들어, 배포 모듈(539)은 Table 2를 통해 현재 딥러닝 서버의 하드웨어 정보를 확인하여 딥러닝 서버의 하드웨어에 적합한 딥러닝 라이브러리를 확인할 수 있다. 배포 모듈(539)은 딥러닝 서버에 적합한 딥러닝 라이브러리의 Table 1_sub의 LOC를 통해 딥러닝 서버에 적합한 딥러닝 라이브러리에 대응하는 하드웨어 배포 파일(Type==HW)을 확인할 수 있다. 배포 모듈(539)은 확인된 하드웨어 배포 파일에 대한 설치 및 설정 값 세팅을 수행하여 하드웨어 배포 파일을 배포(또는 설치)할 수 있다. LOC의 하드웨어 배포 파일을 사용할 수 없는 경우, 배포 모듈(539)은 Table 1_sub의 url을 이용하여 하드웨어 배포 파일을 직접 배포할 수 있다.First, the distribution module 539 may perform a hardware distribution operation corresponding to (or matching) a deep learning library suitable for a deep learning server. For example, the distribution module 539 may check the hardware information of the current deep learning server through Table 2 to identify a deep learning library suitable for the hardware of the deep learning server. The distribution module 539 may check the hardware distribution file (Type==HW) corresponding to the deep learning library suitable for the deep learning server through the LOC of Table 1_sub of the deep learning library suitable for the deep learning server. The distribution module 539 may distribute (or install) the hardware distribution file by performing installation and setting value setting for the identified hardware distribution file. When the hardware distribution file of the LOC cannot be used, the distribution module 539 may directly distribute the hardware distribution file using the url of Table 1_sub.

이후에, 배포 모듈(539)은 딥러닝 서버에 적합한 딥러닝 라이브러리에 대응하는 소프트웨어, 프로그램 및 라이브러리 배포 동작을 수행할 수 있다. 예를 들어, 배포 모듈(539)은 하드웨어 설정 배포가 완료된 후 현재 딥러닝 서버에 적합한 딥러닝 라이브러리의 Table 1_sub의 LOC를 통해 딥러닝 서버에 적합한 딥러닝 라이브러리에 대응하는 소프트웨어, 프로그램 및 라이브러리 배포 파일(Type==SW)을 확인할 수 있다. 배포 모듈(539)은 확인된 소프트웨어, 프로그램 및 라이브러리 배포 파일에 대한 설치 및 설정 값 세팅을 수행하여 소프트웨어, 프로그램 및 라이브러리 배포 파일을 배포(또는 설치)할 수 있다. LOC의 소프트웨어, 프로그램 및 라이브러리 배포 파일을 사용할 수 없는 경우, 배포 모듈(539)은 Table 1_sub의 url을 이용하여 소프트웨어, 프로그램 및 라이브러리 배포 파일을 직접 배포할 수 있다.Thereafter, the distribution module 539 may perform a software, program and library distribution operation corresponding to the deep learning library suitable for the deep learning server. For example, the distribution module 539 provides software, programs and library distribution files corresponding to the deep learning library suitable for the deep learning server through the LOC of Table 1_sub of the deep learning library suitable for the current deep learning server after the hardware configuration distribution is completed. (Type==SW) can be checked. The distribution module 539 may distribute (or install) the software, program, and library distribution files by performing installation and setting value setting for the identified software, program, and library distribution files. When the software, program, and library distribution file of the LOC cannot be used, the distribution module 539 may directly distribute the software, program, and library distribution file using the url of Table 1_sub.

마지막으로, 배포 모듈(539)은 딥러닝 서버에 적합한 딥러닝 라이브러리 배포 동작을 수행할 수 있다. 예를 들어, 배포 모듈(539)은 하드웨어, 소프트웨어, 프로그램 및 라이브러리 설정 배포가 완료된 후 Table 2를 통해 딥러닝 라이브러리에 적합한 딥러닝 라이브러리를 확인할 수 있다. 배포 모듈(539)은 딥러닝 서버에 적합한 딥러닝 라이브러리의 Table 1_sub의 LOC를 통해 딥러닝 서버에 적합한 딥러닝 라이브러리 배포 파일을 확인할 수 있다. 배포 모듈(539)은 확인된 딥러닝 라이브러리 배포 파일을 배포(또는 설치)할 수 있다. LOC의 딥러닝 라이브러리 배포 파일을 사용할 수 없는 경우, 배포 모듈(539)은 Table 1_sub의 url을 이용하여 딥러닝 라이브러리 배포 파일을 직접 배포할 수 있다.Finally, the distribution module 539 may perform a deep learning library distribution operation suitable for the deep learning server. For example, the distribution module 539 may check a deep learning library suitable for the deep learning library through Table 2 after distribution of hardware, software, program, and library settings is completed. The distribution module 539 may check the deep learning library distribution file suitable for the deep learning server through the LOC of Table 1_sub of the deep learning library suitable for the deep learning server. The distribution module 539 may distribute (or install) the identified deep learning library distribution file. When the deep learning library distribution file of the LOC cannot be used, the distribution module 539 may directly distribute the deep learning library distribution file using the url of Table 1_sub.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (20)

가상 동작 환경별로 동작하는 딥러닝 라이브러리를 자동으로 관리하는 방법에 있어서,
복수의 딥러닝 라이브러리에 대한 제1 정보에 기초하여 상기 복수의 딥러닝 라이브러리들 중에서 하나 이상의 딥러닝 라이브러리의 버전을 업데이트하는 단계; 및
상기 제1 정보 및 상기 하나 이상의 딥러닝 라이브러리가 실행될 딥러닝 서버에 대한 제2 정보에 기초하여 상기 버전에 대응하는 제1 구성을 상기 하나 이상의 딥러닝 라이브러리의 업데이트 버전에 대응하는 제2 구성으로 변경하는 단계
를 포함하는, 방법.
In a method for automatically managing a deep learning library operating for each virtual operating environment,
updating a version of one or more deep learning libraries among the plurality of deep learning libraries based on first information about the plurality of deep learning libraries; and
Change the first configuration corresponding to the version to a second configuration corresponding to the updated version of the one or more deep learning libraries based on the first information and second information about the deep learning server on which the one or more deep learning libraries are to be executed step to do
A method comprising
제1항에 있어서,
상기 제1 정보는,
각 딥러닝 라이브러리의 명칭, 상기 각 딥러닝 라이브러리의 최신 버전 및 상기 최신 버전에 대응하는 구성에 대한 정보를 포함하는, 방법.
According to claim 1,
The first information is
A method, including the name of each deep learning library, the latest version of each deep learning library, and information about a configuration corresponding to the latest version.
제2항에 있어서,
상기 제2 정보는 상기 딥러닝 서버의 하드웨어에 대한 정보를 포함하는, 방법.
3. The method of claim 2,
The second information includes information about the hardware of the deep learning server, the method.
제3항에 있어서,
상기 업데이트하는 단계는,
상기 하나 이상의 딥러닝 라이브러리의 버전과 상기 제1 정보 내 상기 하나 이상의 딥러닝 라이브러리의 최신 버전을 비교하여 상기 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전인지 여부를 판단하는 단계; 및
상기 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전이 아닌 경우, 상기 하나 이상의 딥러닝 라이브러리의 버전을 최신 버전으로 업데이트하는 단계
를 포함하는, 방법.
4. The method of claim 3,
The updating step is
comparing the version of the one or more deep learning libraries with the latest version of the one or more deep learning libraries in the first information to determine whether the version of the one or more deep learning libraries is the latest version; and
If the version of the one or more deep learning libraries is not the latest version, updating the version of the one or more deep learning libraries to the latest version
A method comprising
제4항에 있어서,
상기 하나 이상의 딥러닝 라이브러리를 사용할 사용자의 입력 신호에 응답하여 상기 복수의 딥러닝 라이브러리들 중에서 상기 입력 신호에 대응하는 상기 하나 이상의 딥러닝 라이브러리를 검색하는 단계
를 더 포함하고,
상기 하나 이상의 딥러닝 라이브러리는,
상기 복수의 딥러닝 라이브러리들 중에서 상기 사용자가 사용할 딥러닝 라이브러리인, 방법.
5. The method of claim 4,
Searching for the one or more deep learning libraries corresponding to the input signal from among the plurality of deep learning libraries in response to an input signal of a user who will use the one or more deep learning libraries
further comprising,
The one or more deep learning libraries,
A method, which is a deep learning library to be used by the user from among the plurality of deep learning libraries.
제5항에 있어서,
상기 사용자의 입력 신호는,
상기 사용자가 사용할 가상 동작 환경, 상기 사용자가 사용할 딥러닝 라이브러리 및 상기 사용자가 사용할 딥러닝 라이브러리의 버전에 대한 정보를 포함하는, 방법.
6. The method of claim 5,
The user's input signal is
A method comprising information about a virtual operating environment to be used by the user, a deep learning library to be used by the user, and a version of the deep learning library to be used by the user.
제1항에 있어서,
상기 제1 구성은 상기 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리인, 방법.
According to claim 1,
wherein the first configuration is hardware, software, programs and libraries compatible with the version.
제7항에서,
상기 제2 구성은 상기 업데이트 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리인, 방법.
In claim 7,
wherein the second component is hardware, software, program and library compatible with the updated version.
제8항에 있어서,
상기 변경하는 단계는,
상기 제1 구성을 상기 제1 정보 및 상기 제2 정보와 비교하여 상기 제1 구성이 상기 업데이트 버전에 호환 가능한 구성인지 여부를 판단하는 단계; 및
상기 제1 구성이 상기 업데이트 버전에 호환 가능하지 않은 경우, 상기 제1 구성을 상기 제2 구성으로 변경하는 단계
를 포함하는, 방법.
9. The method of claim 8,
The changing step is
comparing the first configuration with the first information and the second information to determine whether the first configuration is a configuration compatible with the updated version; and
if the first configuration is not compatible with the updated version, changing the first configuration to the second configuration;
A method comprising
제1항에 있어서,
상기 업데이트 버전 및 상기 업데이트 버전에 대응하는 구성을 상기 하나 이상의 딥러닝 라이브러리가 실행될 가상 동작 환경에 배포하는 단계
를 더 포함하는, 방법.
According to claim 1,
Distributing the updated version and a configuration corresponding to the updated version to a virtual operating environment in which the one or more deep learning libraries will be executed
A method further comprising:
가상 동작 환경별로 동작하는 딥러닝 라이브러리를 자동으로 관리하는 장치에 있어서,
인스트럭션들을 포함하는 메모리; 및
상기 인스트럭션들을 실행하기 위한 컨트롤러
를 포함하고,
상기 컨트롤러는,
복수의 딥러닝 라이브러리에 대한 제1 정보에 기초하여 상기 복수의 딥러닝 라이브러리들 중에서 하나 이상의 딥러닝 라이브러리의 버전을 업데이트하고, 상기 제1 정보 및 상기 하나 이상의 딥러닝 라이브러리가 실행될 딥러닝 서버에 대한 제2 정보에 기초하여 상기 버전에 대응하는 제1 구성을 상기 하나 이상의 딥러닝 라이브러리의 업데이트 버전에 대응하는 제2 구성으로 변경하는, 장치.
In a device for automatically managing a deep learning library operating for each virtual operating environment,
a memory containing instructions; and
a controller for executing the instructions
including,
The controller is
Update the version of one or more deep learning libraries among the plurality of deep learning libraries based on the first information about the plurality of deep learning libraries, and the first information and the one or more deep learning libraries for a deep learning server to be executed changing the first configuration corresponding to the version to a second configuration corresponding to the updated version of the one or more deep learning libraries based on the second information.
제11항에 있어서,
상기 제1 정보는,
각 딥러닝 라이브러리의 명칭, 상기 각 딥러닝 라이브러리의 최신 버전 및 상기 최신 버전에 대응하는 구성에 대한 정보를 포함하는, 장치.
12. The method of claim 11,
The first information is
The device, including the name of each deep learning library, the latest version of each deep learning library, and information about the configuration corresponding to the latest version.
제12항에 있어서,
상기 제2 정보는 상기 딥러닝 서버의 하드웨어에 대한 정보를 포함하는, 장치.
13. The method of claim 12,
The second information includes information about the hardware of the deep learning server, the device.
제13항에 있어서,
상기 컨트롤러는,
상기 하나 이상의 딥러닝 라이브러리의 버전과 상기 제1 정보 내 상기 하나 이상의 딥러닝 라이브러리의 최신 버전을 비교하여 상기 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전인지 여부를 판단하고, 상기 하나 이상의 딥러닝 라이브러리의 버전이 최신 버전이 아닌 경우, 상기 하나 이상의 딥러닝 라이브러리의 버전을 최신 버전으로 업데이트하는, 장치.
14. The method of claim 13,
The controller is
Compare the version of the one or more deep learning libraries with the latest version of the one or more deep learning libraries in the first information to determine whether the version of the one or more deep learning libraries is the latest version, and of the one or more deep learning libraries If the version is not the latest version, updating the version of the one or more deep learning libraries to the latest version.
제14항에 있어서,
상기 컨트롤러는,
상기 하나 이상의 딥러닝 라이브러리를 사용할 사용자의 입력 신호에 응답하여 상기 복수의 딥러닝 라이브러리들 중에서 상기 입력 신호에 대응하는 상기 하나 이상의 딥러닝 라이브러리를 검색하고,
상기 하나 이상의 딥러닝 라이브러리는,
상기 복수의 딥러닝 라이브러리들 중에서 상기 사용자가 사용할 딥러닝 라이브러리인, 장치.
15. The method of claim 14,
The controller is
Searching for the one or more deep learning libraries corresponding to the input signal from among the plurality of deep learning libraries in response to an input signal of a user who will use the one or more deep learning libraries,
The one or more deep learning libraries,
The device, which is a deep learning library to be used by the user among the plurality of deep learning libraries.
제15항에 있어서,
상기 사용자의 입력 신호는,
상기 사용자가 사용할 가상 동작 환경, 상기 사용자가 사용할 딥러닝 라이브러리 및 상기 사용자가 사용할 딥러닝 라이브러리의 버전에 대한 정보를 포함하는, 장치.
16. The method of claim 15,
The user's input signal is
The device comprising information about the virtual operating environment to be used by the user, the deep learning library to be used by the user, and the version of the deep learning library to be used by the user.
제11항에 있어서,
상기 제1 구성은 상기 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리인, 장치.
12. The method of claim 11,
wherein the first configuration is hardware, software, programs and libraries compatible with the version.
제17항에서,
상기 제2 구성은 상기 업데이트 버전에 호환 가능한 하드웨어, 소프트웨어, 프로그램 및 라이브러리인, 장치.
In claim 17,
and the second configuration is hardware, software, programs and libraries compatible with the updated version.
제18항에 있어서,
상기 컨트롤러는,
상기 제1 구성을 상기 제1 정보 및 상기 제2 정보와 비교하여 상기 제1 구성이 상기 업데이트 버전에 호환 가능한 구성인지 여부를 판단하고, 상기 제1 구성이 상기 업데이트 버전에 호환 가능하지 않은 경우, 상기 제1 구성을 상기 제2 구성으로 변경하는, 장치.
19. The method of claim 18,
The controller is
comparing the first configuration with the first information and the second information to determine whether the first configuration is a configuration compatible with the updated version, and if the first configuration is not compatible with the updated version, changing the first configuration to the second configuration.
제11항에 있어서,
상기 컨트롤러는,
상기 업데이트 버전 및 상기 업데이트 버전에 대응하는 구성을 상기 하나 이상의 딥러닝 라이브러리가 실행될 가상 동작 환경에 배포하는, 장치.
12. The method of claim 11,
The controller is
Distributing the updated version and a configuration corresponding to the updated version to a virtual operating environment in which the one or more deep learning libraries will be executed.
KR1020200069487A 2019-11-12 2020-06-09 Method of managing automatically a deep learning library and apparatuses performing the same KR102297576B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190144419 2019-11-12
KR20190144419 2019-11-12

Publications (2)

Publication Number Publication Date
KR20210057648A KR20210057648A (en) 2021-05-21
KR102297576B1 true KR102297576B1 (en) 2021-09-03

Family

ID=76157738

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200069487A KR102297576B1 (en) 2019-11-12 2020-06-09 Method of managing automatically a deep learning library and apparatuses performing the same

Country Status (1)

Country Link
KR (1) KR102297576B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109460827A (en) 2018-11-01 2019-03-12 郑州云海信息技术有限公司 A kind of deep learning environment is built and optimization method and system
KR102032521B1 (en) 2018-12-26 2019-10-15 래블업(주) Method and system for GPU virtualization based on container

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102098897B1 (en) * 2017-01-03 2020-04-09 한국전자통신연구원 Self-learning system and method based on machine learning knowledge and automated workflow
KR102146602B1 (en) * 2017-12-22 2020-08-20 건국대학교 산학협력단 Method and apparatus of providing deep learning development platform based on container using docker

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109460827A (en) 2018-11-01 2019-03-12 郑州云海信息技术有限公司 A kind of deep learning environment is built and optimization method and system
KR102032521B1 (en) 2018-12-26 2019-10-15 래블업(주) Method and system for GPU virtualization based on container

Also Published As

Publication number Publication date
KR20210057648A (en) 2021-05-21

Similar Documents

Publication Publication Date Title
US9678740B2 (en) Migration mechanism
RU2421785C2 (en) Automated control of device drivers
EP2955627B1 (en) Managing versions of components of a software suite
US20080082976A1 (en) Usage of virtualization software for shipment of software products
US20150347093A1 (en) Provisioning Tools for Application Development
US9378013B2 (en) Incremental source code analysis
US20150067668A1 (en) Installation engine and package format
KR20150131535A (en) Method for updating of library, apparatus and system for the same
US8769521B2 (en) Calendar aware adaptive patching of a computer program
CN112486552A (en) Server hot update method, device, equipment and storage medium
US20020032758A1 (en) Method and system for dynamically loading program logic into an application
US10514940B2 (en) Virtual application package reconstruction
AU2014200140B2 (en) User initiated data rollback using operating system partitions
KR102297576B1 (en) Method of managing automatically a deep learning library and apparatuses performing the same
US20150355997A1 (en) Server-Platform Simulation Service
CN111796851A (en) Client base library updating method and device, electronic equipment and storage medium
US20220197633A1 (en) Software defined build infrastructure for hybrid, virtualized and native build environments
CN116991355B (en) Method, system and device for supporting LED driving chip by modifying and iterating script
US11442710B2 (en) Repository dependency management
Ansari Prerequisites and Software Installation
CN117472458B (en) System function optimal configuration method and device, electronic equipment and storage medium
US11989551B2 (en) Modular firmware composition
CN115878197A (en) Starting optimization method, system, chip, device and medium based on device tree
CN113608773A (en) Method and device for upgrading and updating component and electronic equipment
KR20070059840A (en) Network system running by os of download and running method

Legal Events

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