KR20220058844A - 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품 - Google Patents

리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품 Download PDF

Info

Publication number
KR20220058844A
KR20220058844A KR1020217037982A KR20217037982A KR20220058844A KR 20220058844 A KR20220058844 A KR 20220058844A KR 1020217037982 A KR1020217037982 A KR 1020217037982A KR 20217037982 A KR20217037982 A KR 20217037982A KR 20220058844 A KR20220058844 A KR 20220058844A
Authority
KR
South Korea
Prior art keywords
gpu
resource scheduling
scheduling request
virtual gpu
virtual
Prior art date
Application number
KR1020217037982A
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 베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드
Publication of KR20220058844A publication Critical patent/KR20220058844A/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 실시예는 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품을 제공한다. 상기 방법은, 그래픽 처리장치(GPU) 클러스터 중 GPU에 대한 리소스 스케줄링 요청을 수신하는 단계 - 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 요청할 GPU의 그룹화 정보는 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정됨 - ; 요청할 GPU의 그룹화 정보에 따라, GPU 클러스터의 모든 GPU에서 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하여, 매칭 결과를 획득하는 단계 - 매칭 결과는 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함함 - ; 및 매칭 결과를 반환하는 단계를 포함한다.

Description

리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품
관련 출원의 상호 참조
본 발명은 출원번호가 202011158231.7이고, 출원일이 2020년 10월 26일이며, 출원 명칭이 "리소스 스케줄링 방법 및 장치, 전자 기기 및 저장 매체"인 중국 특허 출원을 기반으로 제출되고, 해당 중국 특허 출원의 우선권을 주장하는 바, 상기 중국 특허 출원의 모든 내용은 참조로서 본 발명에 인용된다.
본 발명은 인공 지능 기술 분야에 관한 것으로, 특히 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품에 관한 것이다.
인공 지능은 현재 상대적으로 주류적인 방향으로서, 기계를 보다 지능적으로 만들어 인간의 지능이 필요한 일부 복작한 작업을 수행함으로써, 인간의 생활 및 생산이 편리해지도록 한다. 예를 들면, 스마트폰은 더이상 비밀번호를 수동으로 입력할 필요없이 안면을 인식하기만 하면 화면 잠금을 해제할 수 있다. 기계를 보다 스마트화되게 하는 한 가지 중요한 방식은 바로 기계 학습이다. 현재, 기계 학습은 두 개의 유형으로 나뉠 수 있는데, 그 중 하나의 유형은 컴퓨터로 하여금 인간의 학습 행동을 시뮬레이션하여, 새로운 지식이나 기능을 획득하고, 기존의 지식 구조를 재구성하여 자체의 성능을 지속적으로 개선하도록 하는 것이며, 다른 하나의 유형은 대량의 데이터에서 은닉된 효과적이고 이해 가능한 지식을 획득하는 것이다.
상기 두 번째 유형의 기계 학습은 데이터, 알고리즘 및 컴퓨팅 파워로 구현되어야 한다. 여기서, 컴퓨팅 파워는 그래픽 처리장치(Graphics Processing Unit, GPU) 등 일부 컴퓨터 하드웨어 리소스의 지원을 필요로 함으로써, 컴퓨팅 파워가 알고리즘 및 데이터의 작용을 더욱 잘 수행할 수 있다. 대규모의 클러스터에는 흔히 다수의 물리적 기계가 포함되며, 각 물리적 기계는 다수의 GPU를 포함하고, 스케줄링 장치에 의해 리소스 스케줄링 요청이 수신될 때, 이러한 모든 물리적 기계의 GPU에서 리소스 스케줄링이 수행되지만, 현재의 스케줄링 방식은 모두 랜덤 스케줄링이기에, 리소스의 사용을 정밀하게 제어할 수 없다.
본 발명의 실시예는 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품을 제공하여, 리소스의 사용을 정밀하게 제어하고, 리소스 스케줄링 효율 및 리소스 이용률을 향상시킨다.
제1 측면에서, 본 발명의 실시예는, 그래픽 처리장치(GPU) 클러스터 중 GPU에 대한 리소스 스케줄링 요청을 수신하는 단계 - 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 상기 요청할 GPU의 그룹화 정보는 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정됨 - ; 상기 요청할 GPU의 그룹화 정보에 따라, 상기 GPU 클러스터의 모든 GPU에서 상기 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하여, 매칭 결과를 획득하는 단계 - 상기 매칭 결과는 상기 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함함 - ; 및 상기 매칭 결과를 반환하는 단계를 포함하는 리소스 스케줄링 방법을 제공한다.
일 선택 가능한 실시형태에서, 상기 각각의 GPU는 적어도 하나의 가상 GPU(Virtual Graphics Processing Unit, vGPU)를 포함하고, 상기 리소스 스케줄링 요청은 vGPU의 산출 파라미터 및 vGPU의 수량을 더 포함하며; 상기 요청할 GPU의 그룹화 정보에 따라, 상기 GPU 클러스터의 모든 GPU에서 상기 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하는 단계 후에, 상기 방법은, 상기 vGPU의 산출 파라미터 및 vGPU의 수량에 따라, 상기 매칭 결과에서 상기 vGPU의 산출 파라미터 및 vGPU의 수량을 만족하는 vGPU를 선별하는 단계; 및 상기 vGPU의 산출 파라미터 및 vGPU의 수량을 만족하는 vGPU를 반환하는 단계를 더 포함한다.
일 선택 가능한 실시형태에서, 상기 vGPU의 산출 파라미터 및 vGPU의 수량에 따라, 상기 매칭 결과에서 상기 리소스 스케줄링 요청을 만족하는 vGPU를 선별하는 단계는, 상기 매칭 결과에서 상기 산출 파라미터를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득하는 단계; 및 상기 제1 선별 결과에서, 상기 vGPU의 수량 요구를 만족하는 vGPU 리소스를 선별하는 단계를 포함한다.
일 선택 가능한 실시형태에서, 상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 매칭 결과에서 상기 산출 파라미터를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득하는 단계는, 각각의 상기 타깃 GPU 중 각각의 상기 vGPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하는 단계; 상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 높을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 vGPU의 컴퓨팅 파워 요구를 만족하는 vGPU를 선별하여, 제2 선별 결과를 획득하는 단계; 및 상기 제2 선별 결과에서 상기 리소스 스케줄링 요청의 vGPU의 비디오 메모리 요구를 만족하는 vGPU를 선별하여, 상기 제1 선별 결과를 획득하는 단계를 포함한다.
일 선택 가능한 실시형태에서, 상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 매칭 결과에서 상기 산출 파라미터를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득하는 단계는, 각각의 상기 타깃 GPU 중 각각의 상기 vGPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하는 단계; 상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 낮을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 vGPU의 비디오 메모리 요구를 만족하는 vGPU를 선별하여, 제3 선별 결과를 획득하는 단계; 및 상기 제3 선별 결과에서 상기 리소스 스케줄링 요청의 vGPU의 컴퓨팅 파워 요구를 만족하는 vGPU를 선별하여, 상기 제1 선별 결과를 획득하는 단계를 포함한다.
일 선택 가능한 실시형태에서, 상기 제1 선별 결과에서, 상기 vGPU의 수량 요구를 만족하는 vGPU 리소스를 선별하는 단계는, 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량보다 많을 경우, 상기 제1 선별 결과에서 산출 파라미터가 오름차순으로 상기 리소스 스케줄링 요청이 요구하는 vGPU 리소스의 수량에 대응되는 수량의 vGPU 리소스를 선택하는 단계; 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량과 같을 경우, 상기 제1 선별 결과를 반환하는 단계; 및 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량보다 적을 경우, 선별 결과가 비어 있음을 나타내는 프롬프트 정보를 반환하는 단계를 포함한다.
일 선택 가능한 실시형태에서, 상기 리소스 스케줄링 요청은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형을 포함하고; 상이한 GPU 중의 vGPU에는 대응되는 라벨이 있으며, 상기 vGPU에 대응되는 라벨은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되고; 상기 방법은, 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 따라, 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 대응되는 적어도 하나의 라벨을 매칭하는 단계; 및 상기 적어도 하나의 라벨에 대응되는 vGPU를 상기 매칭 결과로 하는 단계를 더 포함한다.
제2 측면에서, 본 발명의 실시예는, 그래픽 처리장치(GPU) 클러스터 중 GPU에 대한 리소스 스케줄링 요청을 수신하도록 구성되는 수신 모듈 - 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 상기 요청할 GPU의 그룹화 정보는 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정됨 - ; 상기 요청할 GPU의 그룹화 정보에 따라, 상기 GPU 클러스터의 모든 GPU에서 상기 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하여, 매칭 결과를 획득하도록 구성되는 제1 매칭 모듈 - 상기 매칭 결과는 상기 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함함 - ; 및 상기 매칭 결과를 반환하도록 구성되는 제1 반환 모듈을 포함하는 리소스 스케줄링 장치를 제공한다.
일 선택 가능한 실시형태에서, 각각의 상기 GPU는 적어도 하나의 vGPU를 포함하고, 상기 리소스 스케줄링 요청은 상기 vGPU의 산출 파라미터 및 vGPU의 수량을 더 포함하며; 상기 장치는, 상기 vGPU의 산출 파라미터 및 vGPU의 수량에 따라, 상기 매칭 결과에서 상기 vGPU의 산출 파라미터 및 vGPU의 수량을 만족하는 vGPU를 선별하도록 구성되는 선별 모듈; 및 상기 vGPU의 산출 파라미터 및 vGPU의 수량을 만족하는 vGPU를 반환하도록 구성되는 제2 반환 모듈을 더 포함한다.
일 선택 가능한 실시형태에서, 상기 선별 모듈은, 상기 매칭 결과에서 상기 산출 파라미터를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득하도록 구성되는 제1 선별 유닛; 및 상기 제1 선별 결과에서, vGPU의 수량 요구를 만족하는 vGPU 리소스를 선별하도록 구성되는 제2 선별 유닛을 포함한다.
일 선택 가능한 실시형태에서, 상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 제1 선별 유닛은, 각각의 상기 타깃 GPU 중 각각의 상기 vGPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하고; 상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 높을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 vGPU의 컴퓨팅 파워 요구를 만족하는 vGPU를 선별하여, 제2 선별 결과 단계를 획득하며; 상기 제2 선별 결과에서 상기 리소스 스케줄링 요청의 vGPU의 비디오 메모리 요구를 만족하는 vGPU를 선별하여, 상기 제1 선별 결과 단계를 획득하도록 구성된다.
일 선택 가능한 실시형태에서, 상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 제1 선별 유닛은, 각각의 상기 타깃 GPU 중 각각의 상기 vGPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하고; 상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 낮을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 vGPU의 비디오 메모리 요구를 만족하는 vGPU를 선별하여, 제3 선별 결과를 획득하며; 상기 제3 선별 결과에서 상기 리소스 스케줄링 요청의 vGPU의 컴퓨팅 파워 요구를 만족하는 vGPU를 선별하여, 상기 제1 선별 결과를 획득하도록 구성된다.
일 선택 가능한 실시형태에서, 상기 제2 선별 유닛은, 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량보다 많을 경우, 상기 제1 선별 결과에서 산출 파라미터가 오름차순으로 상기 리소스 스케줄링 요청이 요구하는 vGPU 리소스의 수량에 대응되는 수량의 vGPU 리소스를 선택하도록 구성된다.
일 선택 가능한 실시형태에서, 상기 제2 선별 유닛은, 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량과 같을 경우, 상기 제1 선별 결과를 반환하도록 구성된다.
일 선택 가능한 실시형태에서, 상기 제2 선별 유닛은, 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량보다 적을 경우, 선별 결과가 비어 있음을 나타내는 프롬프트 정보를 반환하도록 구성된다.
일 선택 가능한 실시형태에서, 상기 리소스 스케줄링 요청은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형을 포함하고; 상이한 GPU 중의 vGPU에는 대응되는 라벨이 있으며, 상기 vGPU에 대응되는 라벨은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되고; 상기 장치는, 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 따라, 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 대응되는 적어도 하나의 라벨을 매칭하고; 상기 적어도 하나의 라벨에 대응되는 vGPU를 상기 매칭 결과로 하도록 구성되는 제2 매칭 모듈을 더 포함한다.
제3 측면에서, 본 발명의 실시예는,
컴퓨터 프로그램;
상기 컴퓨터 프로그램을 저장하는 메모리; 및
상기 컴퓨터 프로그램을 실행하여, 제1 측면에 따른 방법을 구현하는 프로세서; 를 포함하는 전자기기를 제공한다.
제4 측면에서, 본 발명의 실시예는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체를 제공하고, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 상기 프로세서로 하여금 제1 측면에 따른 방법을 실행하도록 한다.
제5 측면에서, 본 발명의 실시예는 컴퓨터 판독 가능 코드를 포함하는 컴퓨터 프로그램 제품을 제공하고, 상기 컴퓨터 판독 가능 코드가 전자 기기에서 실행될 경우, 상기 전자 기기의 프로세서로 하여금 제1 측면에 따른 방법을 수행하도록 한다.
본 발명의 실시예에서 제공되는 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품은, 그래픽 처리장치(GPU) 클러스터 중 GPU에 대한 리소스 스케줄링 요청을 수신하며, 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 요청할 GPU의 그룹화 정보는 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되며, 이 후, 요청할 GPU의 그룹화 정보에 따라, GPU 클러스터의 모든 GPU에서 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하고, 마지막으로, 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함하는 매칭 결과를 반환한다. 리소스 스케줄링 요청에 요청할 GPU의 그룹화 정보가 포함되고, 요청할 GPU의 그룹화 정보는 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되므로, GPU 리소스 스케줄링을 수행할 경우, 상기 그룹화 정보에 따라, 대응되는 GPU를 매칭할 수 있어, 더 세분화된 리소스 스케줄링을 구현하고, GPU의 사용을 정밀하게 제어한다.
도 1은 본 발명의 실시예에서 제공되는 응용 시나리오의 도면이다.
도 2는 본 발명의 실시예에서 제공되는 리소스 스케줄링 방법의 흐름도이다.
도 3은 본 발명의 실시예에서 제공되는 하나의 물리적 기계의 GPU를 그룹화하는 모식도이다.
도 4a는 본 발명의 실시예에서 제공되는 단일 온라인 예측 태스크의 모식도이다.
도 4b는 본 발명의 실시예에서 제공되는 다수의 온라인 예측 태스크의 모식도이다.
도 5는 본 발명의 다른 실시예에서 제공되는 리소스 스케줄링 방법의 흐름도이다.
도 6은 본 발명의 실시예에서 제공되는 하나의 물리적 기계 중 vGPU의 모식도이다.
도 7는 본 발명의 실시예에서 제공되는 리소스 스케줄링 장치의 구조 모식도이다.
도 8은 본 발명의 실시예에서 제공되는 전자 기기의 블록도이다.
상기 도면을 통해 본 발명의 명확한 실시예를 도시하였으며, 후술되는 내용에서 더욱 상세히 설명하기로 한다. 이러한 도면 및 문자는 임의의 방식으로 본 발명의 구상의 범위를 제한하려는 것이 아니라, 특정 실시예를 참조하여 본 기술분야의 통상의 기술자에게 본 발명의 개념을 설명하기 위한 것이다.
여기서 예시적인 실시예를 상세하게 설명하고, 그 예시는 도면에 도시된다. 아래 도면에 관한 설명에서, 다르게 설명하지 않는 한, 상이한 도면에서의 동일한 숫자는 동일하거나 유사한 요소를 나타낸다. 아래 예시적인 실시예에서 설명되는 실시형태는 본 발명과 일치한 모든 실시형태를 대표하지 않는다. 반대로, 이들은 단지 첨부된 특허청구범위에서 상세하게 설명된 본 발명의 일부 양태와 일치한 장치와 방법의 예이다.
도 1은 본 발명의 실시예에서 제공되는 응용 시나리오의 도면이다. 도 1에 도시된 바와 같이, 상기 응용 시나리오는 사용자 단말기(11), AI 알고리즘 장치(12), 스케줄링 장치(13) 및 GPU 클러스터(14)를 포함한다. 여기서, 사용자 단말기(11)는 스마트폰, Ipad, 개인용 컴퓨터 등 전자 기기를 적어도 포함할 수 있다. GPU 클러스터(14)는 하나의 컴퓨터 클러스터로서, 다수의 컴퓨터 노드가 포함되며, 각각의 컴퓨터 노드에는 하나 또는 다수의 GPU가 구성된다.
일부 선택 가능한 시나리오에서, 사용자는 사용자 단말기(11)를 통해 AI 시나리오에서의 모델 트레이닝 태스크, 온라인 예측 태스크 등과 같은 태스크 처리 요청을 제출할 수 있고, 사용자가 제출한 태스크 처리 요청은 AI 알고리즘 장치(12)로 송신되며, AI 알고리즘 장치(12)는 상기 태스크 처리 요청에 따라 리소스 스케줄링 요청을 생성하고, 상기 리소스 스케줄링 요청을 스케줄링 장치(13)에 송신하며, 스케줄링 장치(13)는 리소스 스케줄링 요청에 따라 GPU 클러스터(14)에서 리소스 스케줄링을 수행하고, 리소스 스케줄링 결과를 AI 알고리즘 장치(12)에 반환한다. 다음, 스케줄링 장치(13)는 리소스 스케줄링 요청에 따라 GPU 클러스터(14)에서 리소스 스케줄링을 수행한다. 즉 태스크 처리 요청에 필요한 리소스를 GPU 클러스터(14) 중의 각각의 GPU에 할당함으로써, 각각의 GPU가 할당된 태스크를 완료하도록 하여, 사용자가 제출한 태스크 처리 요청에 대한 처리를 최종적으로 구현한다.
상기 리소스 스케줄링 과정에서, 종래 기술에서 리소스에 대한 최소 스케줄링 유닛은 물리적 기계이며, 예를 들면, GPU 클러스터(14)에 4개의 물리적 기계가 포함된다고 가정하면, 종래 기술은 물리적 기계에 대한 스케줄링만 구현할 수 있다.
상기 기술적 과제에 대해, 본 발명의 실시예는 하기와 같은 기술적 해결수단을 사용한다. GPU 클러스터(14)의 최소 스케줄링 유닛(물리적 기계)을 더 세분화되게 구획하고, GPU 클러스터(14)에 의해 처리되어야 하는 태스크의 유형에 따라, GPU 클러스터(14) 중 모든 GPU에 라벨을 미리 지정함으로써, 후속적으로 사용자가 보낸 태스크 처리 요청이 수신될 경우, 태스크 처리 요청에 대응되는 태스크 유형에 따라, 대응되는 라벨의 GPU를 선별할 수 있어, 더 세분화된 리소스 스케줄링을 구현하고, GPU의 사용을 정밀하게 제어한다.
설명해야 할 것은, AI 알고리즘 장치(12)는 독립적인 하나의 장치 또는 기기일 수 있고, 사용자 단말기(11)에 집적된 하나의 모듈 또는 부재일 수도 있으며, 본 실시예는 이에 대해 구체적으로 제한하지 않는다.
본 발명의 실시예는 스마트 비디오 분석 분야와 같은 모든 인공 지능 시나리오에 응용될 수 있다.
이하, 구체적인 실시예를 통해 본 발명의 기술적 해결수단 및 본 발명의 기술적 해결수단이 상기 기술적 과제를 해결하는 방법을 상세하게 설명한다. 이하, 몇 개의 구체적인 실시예는 서로 결합될 수 있고, 동일하거나 유사한 개념 또는 과정은 일부 실시예에서 반복 설명되지 않을 수 있다. 이하, 도면과 결합하여 본 발명의 실시예를 상세하게 설명한다.
도 2는 본 발명의 실시예에서 제공되는 리소스 스케줄링 방법의 흐름도이다. 도 2에 도시된 바와 같이, 상기 리소스 스케줄링 방법은 하기와 같은 단계 S201 내지 단계 S203을 포함한다.
단계 S201에서, 그래픽 처리장치(GPU) 클러스터(14) 중 GPU에 대한 리소스 스케줄링 요청을 수신한다.
본 실시예의 수행 주체는 도 1에 도시된 스케줄링 장치(13)이다. 스케줄링 장치(13)는 AI 알고리즘 장치(12)로부터 리소스 스케줄링 요청을 수신하며, 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 요청할 GPU의 그룹화 정보는 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정된다. 여기서, 태스크 유형은 태스크의 용도에 따라 구획될 수 있다. 예를 들어, AI 시나리오에서, 태스크 유형은 모델 트레이닝 및 온라인 예측을 포함하고, 이에 상응하게, 요청할 GPU의 그룹화 정보는 모델 트레이닝 그룹화 정보 및 온라인 예측 그룹화 정보를 포함한다.
예를 들면, 사용자에 의해, 하나의 태스크 유형이 모델 트레이닝인 태스크 처리 요청이 AI 알고리즘 장치(12)로 제출되면, AI 알고리즘 장치(12)는 상기 태스크 처리 요청에 따라 리소스 스케줄링 요청을 생성하고, 상기 태스크 처리 요청에 대응되는 태스크 유형에 따라, 요청할 GPU의 그룹화 정보를 모델 트레이닝 그룹화 정보로 결정한다.
일 선택 가능한 실시형태에서, 요청할 GPU의 그룹화 정보는 AI 알고리즘 장치(12)에 의해 지정될 수 있고, AI 알고리즘 장치(12)가 요청할 GPU의 그룹화 정보를 지정하지 않으면, GPU 클러스터(14) 중의 모든 GPU가 모두 사용 가능한 것으로 기본 설정된다.
단계 S202에서, 요청할 GPU의 그룹화 정보에 따라, GPU 클러스터(14)의 모든 GPU에서 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하여, 매칭 결과를 획득한다.
여기서, 매칭 결과는 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함한다.
여기서, GPU 클러스터(14)는 다수의 물리적 기계를 포함하고, 각 물리적 기계는 다수의 GPU를 포함하며, 본 실시예는 단계 S201전에, GPU 클러스터(14) 중의 모든 GPU를 그룹화하여야 하고, 그룹화 과정에서 GPU의 용도에 따라 그룹화할 수 있으며, GPU의 용도는 GPU 클러스터(14)에 의해 수행되어야 하는 태스크 처리 요청에 대응되는 태스크 유형에 의해 결정된다. 이하, 하나의 물리적 기계를 예로서 GPU 그룹화 과정에 대해 상세하게 설명한다.
도 3은 본 발명의 실시예에서 제공되는 하나의 물리적 기계의 GPU를 그룹화하는 모식도이다. 하나의 물리적 기계를 예로 들면, 도 3에 도시된 바와 같이, 상기 물리적 기계는 하나의 9-카드 물리적 기계(31)(9개의 GPU카드를 포함하는 물리적 기계)이고, 각각 카드 0 내지 카드 8로 번호를 부여하며, 사용자가 상기 물리적 기계에서 모델 트레이닝과 온라인 예측 태스크를 동시에 수행할 계획이고, 카드 0 내지 카드 3을 모델 트레이닝에 사용하며, 카드 4 내지 카드 8을 온라인 예측에 사용할 계획이라고 가정하면, 카드 0 내지 카드 3의 그룹화 정보를 모델 트레이닝 그룹화 정보로 설정하고, 카드 4 내지 카드 8의 그룹화 정보를 온라인 예측 그룹화 정보로 설정할 수 있다. 예를 들어, 모델 트레이닝 그룹화 정보를 라벨 A(Label-A)로 표기하고, 온라인 예측 그룹화 정보를 라벨 B(Label-B)로 표기할 수 있다.
일 선택 가능한 실시형태에서, GPU 클러스터(14)의 모든 GPU는 리스트로 표시될 수 있고, 각각의 GPU에는 대응되는 그룹화 정보가 있으며, 9개의 GPU 카드를 포함하는 하나의 물리적 기계를 예로 들면, 그 모든 GPU의 리스트 형식은 하기 표 1과 같다.
GPU 카드 번호 그룹화 정보
카드 0 모델 트레이닝
카드 1 모델 트레이닝
카드 2 모델 트레이닝
카드 3 모델 트레이닝
카드 4 온라인 예측
카드 5 온라인 예측
카드 6 온라인 예측
카드 7 온라인 예측
카드 8 온라인 예측
표 1 하나의 물리적 기계 중 모든 GPU 그룹화 정보의 리스트
표 1에 나타난 바와 같이, 이후 리소스 스케줄링 요청이 수신될 경우, 리소스 스케줄링 요청에 휴대된 GPU 그룹화 정보가 모델 트레이닝 그룹화 정보라고 가정하면, 카드 0 내지 카드 3의 GPU가 매칭되고, 리소스 스케줄링 요청에 휴대된 GPU 그룹화 정보가 온라인 예측 그룹화 정보라고 가정하면, 카드 4 내지 카드 8의 GPU가 매칭된다.
물론, 상이한 물리적 기계 중의 GPU를 하나의 그룹으로 구획할 수도 있다. 예를 들면, GPU 클러스터(14)가 물리적 기계 1, 물리적 기계 2 및 물리적 기계 3을 포함하고, 여기서, 물리적 기계 1은 GPU0, GPU1, GPU2을 포함하며, 물리적 기계 2는 GPU3, GPU4, GPU5를 포함하고, 물리적 기계 3은 GPU6, GPU7, GPU8을 포함하면, 물리적 기계 1 중의 GPU1와 GPU2, 물리적 기계 2 중의 GPU5, 및 물리적 기계 3 중의 GPU8을 동일한 그룹으로 구획할 수 있다.
GPU 클러스터(14) 중의 모든 GPU를 그룹화하고, 각각의 그룹화는 하나의 리소스 풀로 간주될 수 있으며, 리소스(GPU)와 리소스(GPU) 사이의 논리적 격리를 구현할 수 있다.
단계 S203에서, 매칭 결과를 반환한다.
여기서, 매칭 결과는 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함한다.
일 선택 가능한 실시형태에서, 매칭 결과는 리스트의 형식으로 표시될 수 있고, 스케줄링 장치(13)는 상기 매칭 결과를 획득한 후, 상기 매칭 결과에 따라 GPU 리스트를 생성하고, 상기 GPU 리스트를 AI 알고리즘 장치(12)에 반환한다. 일 예시에서, 매칭 결과가 카드 0 내지 카드 3이라고 가정하면, GPU 리스트의 형식은 하기 표 2를 참조할 수 있다.
카드 0
카드 1
카드 2
카드 3
표 2 GPU 리스트
본 실시예는 그래픽 처리장치(GPU) 클러스터(14) 중 GPU에 대한 리소스 스케줄링 요청을 수신하며, 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 요청할 GPU의 그룹화 정보는 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되며, 이 후, 요청할 GPU의 그룹화 정보에 따라, GPU 클러스터(14)의 모든 GPU에서 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하며, 마지막으로, 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함하는 매칭 결과를 반환한다. 리소스 스케줄링 요청에 요청할 GPU의 그룹화 정보가 포함되고, 요청할 GPU의 그룹화 정보는 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되므로, GPU 리소스 스케줄링을 수행할 경우, 상기 그룹화 정보에 따라, 대응되는 GPU를 매칭할 수 있어, 더 세분화된 리소스 스케줄링을 구현하고, GPU의 사용을 정밀하게 제어한다.
본 발명은 vGPU 모드에서 AI 알고리즘에 의해 응용되는 리소스 스케줄링의 제어 가능성을 개선시킬 수 있다. 예를 들면, 1개의 8-카드의 GPU 기계일 경우, 카드 0 내지 카드 3은 vGPU 모드를 이용하여 리소스 할당을 수행하고, 카드 4 내지 카드 7은 비vGPU 모드를 이용하여 리소스 할당을 수행한다. 종래 기술에서 GPU의 선택은 랜덤적이며, 카드 0 내지 카드 3으로 스케줄링되는 vGPU 모드의 신청을 제어할 수 없다. 본 발명의 실시예의 리소스 스케줄링 방법을 사용하여, 카드 0 내지 카드 3에 vGPU의 라벨을 지정하면, 리소스를 신청할 때, 스케줄링 장치(13)는 vGPU 라벨이 지정된 GPU에서 리소스 할당을 수행함으로써, 리소스의 사용을 매우 정밀하게 제어할 수 있다.
이 밖에, 본 발명의 리소스 스케줄링 방법은 또한 단일 GPU 기계에서의 GPU 리소스의 격리 및 분류 사용을 만족하고, 상이한 요구의 리소스 극대화 이용을 만족할 수 있다. 예를 들면, 사용자 리소스가 부족하고, 1개의 8-카드의 GPU 기계뿐이지만 이 1개의 8-카드의 GPU 기계에서 모델 트레이닝 태스크와 온라인 예측 태스크를 동시에 수행하고자 하고, 서로 영향주지 않으며 양호하게 격리될 수 있기를 원한다. 이 시나리오에서는 일반적으로 정적 지정 방식을 통해 사용되지만, 정적 지정 방식은 시간과 인력이 많이 수요된다. 그러나 본 발명의 리소스 스케줄링 방법을 사용하면, 일부 GPU 카드에 모델 트레이닝의 라벨을 지정하고, 다른 일부 GPU 카드에 온라인 예측의 라벨을 지정하며, 후속적으로 두 개 유형의 태스크(모델 트레이닝 태스크와 온라인 예측 태스크)에 의한 리소스 신청이 수신될 경우, AI 알고리즘 장치(12)가 스케줄링 장치(13)에 통지하여 대응되는 라벨의 GPU 카드 리소스를 사용하도록 하면 되고, 어느 GPU 카드를 선택할지 여부는 스케줄링 장치(13)에 의해 구현됨으로써, 사용자의 참여를 필요로 하지 않으며, 이는 사용성을 어느 정도 향상시킨다.
상기 실시예는 GPU 수준의 리소스 스케줄링 과정을 소개하였고, 단일 태스크의 리소스 스케줄링 시나리오에서는 하나의 태스크를 구현하기 위해 하나의 GPU 카드가 필요하지만, 멀티 태스크가 병렬되는 리소스 스케줄링 시나리오에서는 많은 GPU 카드로 멀티 태스크의 동시성 요구를 만족하여야 한다. 예를 들면, 특정 도시에서 자동차의 통행을 제한할 경우, 상기 도시 도로에는 많은 카메라가 설치되어 상기 도시 도로에서의 차량의 주행을 모니터링하며, 통행 제한 규칙을 위반한 차량이 모니터링될 때, 카메라는 상기 차량을 촬영한 다음, 차량 주인에게 알림 정보를 송신하여, 차량 주인에게 과태료를 납부하도록 리마인드한다. 이 과정에서 카메라가 이미지를 촬영하여 획득한 후, 이미지 중의 차량을 식별하고 이미지 중의 차량을 직사각형 박스로 표시한 다음, 차량 번호판 정보를 식별해야 한다. 차량 번호판 정보 식별 과정에서 온라인 예측 태스크를 사용해야 하며, 도 4a에 도시된 바와 같이, 카메라에 의해 촬영된 이미지에 하나의 차량이 포함되면, 온라인 예측 태스크는 1개이고, 이때, 하나의 GPU 카드만 수요된다. 그러나 실제 응용 과정에서는, 도 4b에 도시된 바와 같이, 카메라에 의해 촬영된 이미지에는 다수의 차량이 포함되는 경우가 많으며, 이때 온라인 예측 태스크도 대응되게 복수 개이다. GPU 수준의 리소스 스케줄링을 사용하면, 이 다수의 온라인 예측 태스크는 다수의 GPU에 할당됨으로써, GPU의 리소스가 충분히 이용되지 않도록 하여 값비싼 GPU 리소스가 낭비된다. 따라서, 각각의 GPU를 더 작은 스케줄링 유닛으로 구획할 수도 있고, 즉 가상 머신 기술을 사용하여 도 1의 각각의 GPU를 가상화하여, 다수의 vGPU를 획득한 다음, 다수의 병렬되는 온라인 예측 태스크를 상이한 vGPU에 할당하여, 다수의 태스크가 동일한 GPU를 공유하도록 함으로써, 단일 GPU의 리소스 이용률을 향상시킨다. 상기 실시예를 토대로, 본 발명은 GPU 공유 시나리오에서 리소스 스케줄링을 구현할 수도 있으며, 실시형태는 하기와 같다.
도 5는 본 발명의 다른 실시예에서 제공되는 리소스 스케줄링 방법 흐름도이다. 상기 실시예를 토대로, 리소스 스케줄링 요청은 vGPU의 산출 파라미터 및 vGPU의 수량을 더 포함할 수 있고, 여기서, vGPU의 수량은 N이며, N은 0보다 큰 양의 정수이다. 도 5에 도시된 바와 같이, 본 실시예에서 제공되는 리소스 스케줄링 방법은 하기와 같은 단계를 포함한다.
단계 S501에서, vGPU의 산출 파라미터 및 vGPU의 수량에 따라, 매칭 결과에서 리소스 스케줄링 요청을 만족하는 vGPU를 선별한다.
일 선택 가능한 실시형태에서, 본 단계는 매칭 결과에서 리소스 스케줄링 요청에 대응되는 vGPU의 산출 파라미터 및 vGPU의 수량 요구를 만족하는 vGPU를 선별하는 것일 수 있다.
도 6은 본 발명의 실시예에서 제공되는 하나의 물리적 기계 중 vGPU의 모식도이다. 도 6에 도시된 바와 같이, 각각의 GPU는 또한 다수의 vGPU(도 6에서 원으로 표시된 바와 같음)로 구획될 수 있다. 설명해야 할 것은, 도 6에서 각각의 GPU가 3개의 vGPU를 포함하는 것은 예시적인 설명일 뿐이고, vGPU의 수량에 대해 제한하지 않는다.
여기서, 단계 S501은 단계 S202에서 매칭 결과가 획득된 후 수행된다. 본 실시예의 매칭 결과는 GPU 리스트로 표시될 수 있고, 매칭 결과는 각각의 타깃 GPU의 각각의 vGPU의 컴퓨팅 파워(vcore) 및/또는 비디오 메모리(vmemory) 등 산출 파라미터를 더 포함할 수 있으며, 여기서, vGPU의 컴퓨팅 파워는 vGPU의 컴퓨팅 능력을 가리킨다.
GPU 리스트가 카드 0 내지 카드 3을 포함한다고 가정하면, GPU 리스트의 다른 형식은 하기 표 3을 참조할 수 있다.
GPU 카드 번호 컴퓨팅 파워 비디오 메모리

카드 0
vGPU-1 3.7 24GB
vGPU-2 3.5 24GB
vGPU-3 2.0 8GB

카드 1
vGPU-4 5.2 11GB
vGPU-5 7.5 24GB
vGPU-6 7.0 8GB
vGPU-7 6.0 6GB
카드 2 vGPU-8 6.1 8GB
vGPU-9 3.0 11GB

카드 3
vGPU-10 6.1 6GB
vGPU-11 5.2 8GB
vGPU-12 3.0 11GB
표 3 GPU 리스트
일 선택 가능한 실시형태에서, 단계 S501은 또한 하기와 같은 단계를 포함할 수 있다.
단계 S501a에서, 매칭 결과에서 산출 파라미터를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득한다.
일 선택 가능한 실시형태에서, 산출 파라미터를 만족하는 vGPU는 리스트의 형식으로 도시될 수 있고, 상기 vGPU 리스트는 산출 파라미터를 만족하는 적어도 하나의 vGPU를 포함한다. 사용자가 제출한 태스크 처리 요청에 필요한 산출 파라미터가 컴퓨팅 파워를 포함하고, 리소스 스케줄링 요청에 의해 요청된 각각의 vGPU의 컴퓨팅 파워가 각각 3.5, 3.0, 5.2, 6.1이면, 표 3에서 리소스 스케줄링 요청의 컴퓨팅 파워 요구를 만족하는 vGPU(제1 선별 결과)는 vGPU-2, vGPU-4, vGPU-8, vGPU-9, vGPU-10, vGPU-11 및 vGPU-12를 포함한다. 제1 선별 결과도 마찬가지로 리스트의 형식으로 주어질 수 있고, 그 형식은 하기 표 4와 같다.
GPU 카드 번호 컴퓨팅 파워 비디오 메모리
카드 0 vGPU-2 3.5 24GB
카드 1 vGPU-4 5.2 11GB
카드 2 vGPU-8 6.1 8GB
vGPU-9 3.0 11GB

카드 3
vGPU-10 6.1 6GB
vGPU-11 5.2 8GB
vGPU-12 3.0 11GB
표 4 제1 선별 결과
사용자가 제출한 태스크 처리 요청에 필요한 산출 파라미터가 비디오 메모리를 포함하고, 리소스 스케줄링 요청에 의해 요청된 각각의 vGPU의 비디오 메모리가 각각 6GB, 8GB, 8GB, 6GB이면, 리소스 스케줄링 요청을 만족하는 vGPU는 vGPU-3, vGPU-6, vGPU-7, vGPU-8, vGPU-10, vGPU-11 및 vGPU-12를 포함한다.
사용자가 제출한 태스크 처리 요청에 필요한 산출 파라미터가 컴퓨팅 파워 및 비디오 메모리를 포함하며, 리소스 스케줄링 요청에 의해 요청된 각각의 vGPU의 컴퓨팅 파워가 각각 3.5, 3.0, 5.2, 6.1이고, 비디오 메모리가 각각 6GB, 8GB, 8GB, 6GB이면, 리소스 스케줄링 요청을 만족하는 vGPU는 vGPU-2, vGPU-3, vGPU-4, vGPU-6, vGPU-7, vGPU-8, vGPU-9, vGPU-10, vGPU-11 및 vGPU-12를 포함한다.
단계 S501b에서, 제1 선별 결과에서, 리소스 스케줄링 요청 중 vGPU의 수량 요구를 만족하는 vGPU 리소스를 선별한다.
여기서, 본 단계는 제1 선별 결과에서 N개의 vGPU를 선별해내는 것이다.
사용자가 제출한 태스크 처리 요청에 필요한 vGPU의 수량이 4개라고 가정하면, 표 4에서 4개의 vGPU를 더 선택해야 한다. 일 선택 가능한 실시형태에서, 표 4에서 4개의 vGPU를 랜덤으로 선택할 수 있다. 다른 선택 가능한 실시형태에서, 표 4에서 컴퓨팅 파워 또는 비디오 메모리가 오름차순으로 앞의 4개의 vGPU를 선택할 수도 있다. 사용자가 제출한 태스크 처리 요청에 필요한 산출 파라미터가 컴퓨팅 파워를 포함하는 것을 예로 들면, 컴퓨팅 파워를 만족하는 vGPU는 vGPU-2, vGPU-4, vGPU-8, vGPU-9, vGPU-10, vGPU-11, vGPU-12를 포함하고, 또한, 이 7개의 vGPU에서 4개의 vGPU, 즉 vGPU의 산출 파라미터 및 vGPU의 수량을 만족하는 vGPU를 랜덤으로 선택할 수도 있다.
단계 S502에서, 리소스 스케줄링 요청을 만족하는 vGPU를 반환한다.
일 선택 가능한 실시형태에서, 단계 S502는 vGPU의 산출 파라미터 요구 및 vGPU의 수량 요구를 만족하는 vGPU를 AI 알고리즘 장치(12)에 반환하는 것일 수 있다.
본 실시예에서는 매칠 결과에 대해 2차 필터링 및 선별을 더 수행한다. 그 중 제1 차는 그룹화 정보에 따라 필터링을 수행하고, GPU 클러스터(14) 규모가 특별히 클 경우, 그룹화 정보를 통해 선별 범위에 속하지 않는 많은 GPU를 필터링할 수 있고, 이로써 제2 차 선별 과정에서 제2 차 선별 범위를 축소시킬 수 있으며, 이로부터 리소스 스케줄링 효율을 대폭 향상시킬 수 있다. 예를 들면, 종래 기술에서 스케줄링 장치(13)는 리소스 스케줄링 요청에 따라 GPU 클러스터(14)의 모든 GPU에서 산출 파라미터 및 수량 요구를 만족할 수 있는 GPU 리소스를 하나씩 선별해야 하므로, GPU 클러스터(14)의 규모가 크면 선별 범위가 커지고 선별 시간도 매우 길어지게 되어, 리소스 스케줄링 효율이 저하된다.
상기 실시예는 산출 파라미터 및 수량 N에 따라 vGPU를 공동으로 결정하는 실시형태를 소개하였고, 산출 파라미터가 컴퓨팅 파워 및 비디오 메모리를 포함하면, 컴퓨팅 파워 및 비디오 메모리에 따라 vGPU를 공동 결정 시 하기와 같은 두 가지 실시 형태를 더 포함할 수 있다.
일 선택 가능한 실시형태에서, 우선, 리소스 스케줄링 요청에 의해 요청된 컴퓨팅 파워에 따라 매칭 결과에서 제1 차 선별을 수행하고, 다음, 리소스 스케줄링 요청이 요구하는 비디오 메모리에 따라 제1 차 선별 결과에서 제2 차 선별을 수행한다. 일 선택 가능한 실시형태에서, 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고, 단계 S501a에서 설명된 매칭 결과에서 산출 파라미터를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득하는 단계는 하기와 같은 단계를 포함한다.
단계 a1에서, 각각의 타깃 GPU 중 각각의 vGPU의 컴퓨팅 파워 및 비디오 메모리에 대응되는 우선 순위를 획득한다.
단계 a2에서, 컴퓨팅 파워의 우선 순위가 비디오 메모리의 우선 순위보다 높을 경우, 각각의 상기 타깃 GPU에서 리소스 스케줄링 요청의 vGPU의 컴퓨팅 파워 요구를 만족하는 vGPU를 선별하여, 제2 선별 결과를 획득한다.
단계 a3에서, 제2 선별 결과에서 리소스 스케줄링 요청의 vGPU의 비디오 메모리 요구를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득한다.
다른 선택 가능한 실시형태에서, 우선, 리소스 스케줄링 요청에 의해 요청된 비디오 메모리에 따라 매칭 결과에서 제1 차 선별을 수행하고, 다음, 리소스 스케줄링 요청이 요구하는 컴퓨팅 파워에 따라 제1 차 선별 결과에서 제2 차 선별을 수행한다. 일 선택 가능한 실시형태에서, 상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고, 단계 S501a에서 설명된 매칭 결과에서 컴퓨팅 파워 및 비디오 메모리를 만족하는 vGPU를 결정하는 단계는 하기와 같은 단계를 포함한다.
단계 b1에서, 각각의 상기 타깃 GPU 중 각각의 상기 vGPU의 컴퓨팅 파워 및 비디오 메모리에 대응되는 우선 순위를 획득한다.
단계 b2에서, 컴퓨팅 파워의 우선 순위가 비디오 메모리의 우선 순위보다 낮을 경우, 각각의 상기 타깃 GPU에서 리소스 스케줄링 요청의 vGPU의 비디오 메모리 요구를 만족하는 vGPU를 선별하여, 제3 선별 결과를 획득한다.
단계 b3에서, 제3 선별 결과에서 리소스 스케줄링 요청의 vGPU의 컴퓨팅 파워 요구를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득한다.
상기 실시예를 토대로, 컴퓨팅 파워 및/또는 비디오 메모리에 따라 매칭 결과에서 컴퓨팅 파워 및/또는 비디오 메모리에 부합되는 vGPU를 선별해낸 후, 하기와 같은 몇 가지 상황이 존재할 수 있다.
첫 번째 선택 가능한 실시형태에서, 제1 선별 결과 중 vGPU의 수량이 리소스 스케줄링 요청에 의해 요청된 vGPU의 수량보다 크고, 이 경우, 제1 선별 결과에서 리소스 스케줄링 요청에 의해 요청된 vGPU의 수량에 대응되는 수량의 vGPU(제1 선별 결과에서 N개의 vGPU를 선별해냄)를 더 선별해내야 한다. 예를 들면, 제1 선별 결과에 5개의 vGPU가 포함되고, 리소스 스케줄링 요청에 의해 요청된 vGPU의 수량이 4개이면, 이 5개의 vGPU에서 4개의 vGPU를 더 선별해내야 하고, 스케줄링 장치(13)는 이 4개의 vGPU를 AI 알고리즘 장치(12)에 반환한다.
두 번째 선택 가능한 실시형태에서, 제1 선별 결과 중 vGPU의 수량이 리소스 스케줄링 요청에 의해 요청된 vGPU의 수량과 같을 경우, 직접 제1 선별 결과 중의 vGPU를 타깃 vGPU로서 스케줄링 장치(13)에 반환한다. 예를 들면, 제1 선별 결과에 5개의 vGPU가 포함되고, 리소스 스케줄링 요청에 의해 요청된 vGPU의 수량이 5개이면, 이 5개의 vGPU를 직접 AI 알고리즘 장치(12)에 반환한다.
세 번째 선택 가능한 실시형태에서, 제1 선별 결과 중 vGPU의 수량이 리소스 스케줄링 요청에 의해 요청된 vGPU의 수량보다 적을 경우, 결과가 비어 있음을 나타내는 메시지를 스케줄링 장치(13)에 반환한다. 예를 들면, 제1 선별 결과에 5개의 vGPU가 포함되고, 리소스 스케줄링 요청에 의해 요청된 vGPU의 수량이 7개이면, 이때 제1 선별 결과는 리소스 스케줄링 요청에 의해 요청된 vGPU의 수량 요구를 만족할 수 없으며, 이는 상기 GPU 클러스터(14)가 상기 리소스 스케줄링 요청을 만족할 수 없다는 것을 나타내고, 스케줄링 장치(13)는 결과가 비어 있음을 나타내는 메시지를 AI 알고리즘 장치(12)에 반환하여, AI 알고리즘 장치(12)에 GPU 클러스터(14)가 상기 리소스 스케줄링 요청을 만족할 수 없음을 통지한다.
상기 첫 번째 선택 가능한 실시형태에서, 제1 선별 결과에서 N개의 vGPU를 선별할 경우, 제1 선별 결과를 산출 파라미터가 오름차순으로 정렬함으로써, 산출 파라미터가 오름차순으로 리소스 스케줄링 요청이 요구하는 vGPU 리소스의 수량에 대응되는 수량의 vGPU 리소스를 선택할 수 있고, 즉 정렬 결과에서 앞의 N개의 vGPU를 선택한다.
예를 들면, 산출 파라미터가 컴퓨팅 파워를 포함하는 실시형태에서는, 제1 선별 결과를 컴퓨팅 파워가 오름차순으로 정렬한 다음, 그 중에서 앞의 N개의 vGPU를 선택할 수 있다. 제1 선별 결과가 하기 표 5와 같다고 가정한다.
vGPU 번호 컴퓨팅 파워
카드 0: vGPU-2 3.5
카드 1: vGPU-4 5.2
카드 2: vGPU-8 6.1
카드 2: vGPU-9 3.0
카드 3: vGPU-10 6.1
카드 3: vGPU-11 5.2
카드 3: vGPU-12 3.0
표 5 제1 선별 결과
제1 선별 결과를 컴퓨팅 파워가 오름차순으로 정렬한 후, 하기 표 6을 획득할 수 있다.
vGPU 번호 컴퓨팅 파워
카드 3: vGPU-12 3.0
카드 2: vGPU-9 3.0
카드 0: vGPU-2 3.5
카드 1: vGPU-4 5.2
카드 3: vGPU-11 5.2
카드 2: vGPU-8 6.1
카드 3: vGPU-10 6.1
표 6 배열된 제1 선별 결과
표 6으로부터 컴퓨팅 파워 요구에 부합되는 vGPU가 7개임을 보아낼 수 있고, 리소스 스케줄링 요청에 의해 요청된 vGPU 수량이 5개라고 가정하면, 표 5에서 앞의 5개의 vGPU를 선택하여 AI 알고리즘 장치(12)에 반환할 수 있다.
일 선택 가능한 실시형태에서, 산출 파라미터가 비디오 메모리를 포함하면, 제1 선별 결과에서 비디오 메모리가 오름차순으로 리소스 스케줄링 요청이 요구하는 vGPU 리소스의 수량에 대응되는 수량의 vGPU 리소스를 선택한다. 산출 파라미터가 비디오 메모리를 포함되는 실시형태의 경우, 산출 파라미터가 컴퓨팅 파워를 포함하는 실시형태와 유사하므로, 제1 선별 결과에서 컴퓨팅 파워가 오름차순으로 리소스 스케줄링 요청이 요구하는 vGPU 리소스의 수량에 대응되는 수량의 vGPU 리소스를 선택하는 실시형태를 참조할 수 있으며, 여기서 상세한 설명을 생략한다.
일 선택 가능한 실시형태에서, 산출 파라미터가 컴퓨팅 파워 및 비디오 메모리를 포함하면, 미리 설정된 컴퓨팅 파워 및 비디오 메모리의 우선 순위에 따라, 제1 선별 결과에서 컴퓨팅 파워가 오름차순으로 N개의 vGPU 리소스를 선택하였는지 아니면 비디오 메모리가 오름차순으로 N개의 vGPU 리소스를 선택하였는지 결정할 수도 있다.
본 실시예는 산출 파라미터 및 수량에 따라 2차 선별을 수행하는 과정에서, 제1 차 선별을 거쳐 획득된 사용 가능 vGPU를 산출 파라미터가 낮은 것부터 높은 것 순으로 정렬하고, 선별 시 리소스 수요를 만족시킬 수 있는 가장 작은 GPU 카드(small Work)를 우선적으로 선택함으로써, 기존의 리소스의 사용을 극대화하여 프래그먼트의 생성을 줄일 수 있고, 나머지 리소스가 긴 작업의 요구를 최대한 만족할 수 있어, 리소스 이용률을 향상시킨다.
상기 실시예를 토대로, 리소스 스케줄링 요청은 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형을 더 포함하고, 상이한 GPU 중의 vGPU에는 대응되는 라벨이 있으며, vGPU에 대응되는 라벨은 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되고, 본 발명의 실시예의 방법은,
리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 따라, 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 대응되는 적어도 하나의 라벨을 매칭하는 단계; 및 적어도 하나의 라벨에 대응되는 vGPU를 매칭 결과로 하는 단계를 더 포함한다.
본 실시예에서는 상이한 GPU 중의 vGPU에 대응되는 라벨이 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형이라고 이해할 수 있다. 예를 들면, 계속하여 도 6을 참조하면, 도 6의 카드 0 내지 카드 8 상의 27개의 vGPU에서, 예를 들어, 일부 즉 13개의 vGPU에 대응되는 라벨이 모델 트레이닝 태스크이고, 이 13개의 vGPU가 카드 0 내지 카드 8 중 임의의 적어도 두 개의 카드에 분포될 수 있으며, 나머지 14개의 vGPU에 대응되는 라벨이 온라인 예측 태스크라고 가정하면, 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형이 모델 트레이닝 태스크이면, 매칭 결과는 카드 0 내지 카드 8 중 임의의 적어도 두 개의 카드 상에 분포된 13개의 vGPU 중 일부 또는 전체 vGPU이다.
도 7은 본 발명의 실시예에서 제공되는 리소스 스케줄링 장치의 구조 모식도이다. 본 발명의 실시예에서 제공되는 리소스 스케줄링 장치는 리소스 스케줄링 방법 실시예에서 제공되는 처리 프로세스를 수행할 수 있고, 도 7에 도시된 바와 같이, 리소스 스케줄링 장치(70)는 수신 모듈(71), 제1 매칭 모듈(72) 및 제1 반환 모듈(73)을 포함한다. 여기서, 수신 모듈(71)은 그래픽 처리장치(GPU) 클러스터(14) 중 GPU에 대한 리소스 스케줄링 요청을 수신하도록 구성되며, 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 상기 요청할 GPU의 그룹화 정보는 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정된다. 제1 매칭 모듈(72)은 상기 요청할 GPU의 그룹화 정보에 따라, 상기 GPU 클러스터(14)의 모든 GPU에서 상기 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하여, 매칭 결과를 획득하도록 구성되고, 상기 매칭 결과는 상기 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함한다. 제1 반환 모듈(73)은 상기 매칭 결과를 반환하도록 구성된다.
일 선택 가능한 실시형태에서, 각각의 GPU는 적어도 하나의 vGPU를 포함하고, 상기 리소스 스케줄링 요청은 vGPU의 산출 파라미터 및 vGPU의 수량을 더 포함하며; 상기 장치는, 상기 vGPU의 산출 파라미터 및 vGPU의 수량에 따라, 상기 매칭 결과에서 상기 vGPU의 산출 파라미터 및 vGPU의 수량을 만족하는 vGPU를 선별하도록 구성되는 선별 모듈(74); 및 상기 vGPU의 산출 파라미터 및 vGPU의 수량을 만족하는 vGPU를 반환하도록 구성되는 제2 반환 모듈(75)을 더 포함한다.
일 선택 가능한 실시형태에서, 상기 선별 모듈(74)은, 상기 매칭 결과에서 상기 산출 파라미터를 만족하는 vGPU를 선별하여, 제1 선별 결과를 획득하도록 구성되는 제1 선별 유닛(741); 및 상기 제1 선별 결과에서, 상기 vGPU의 수량 요구를 만족하는 vGPU 리소스를 선별하도록 구성되는 제2 선별 유닛(742)을 포함한다.
일 선택 가능한 실시형태에서, 상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 제1 선별 유닛(741)은, 각각의 상기 타깃 GPU 중 각각의 상기 vGPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하고; 상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 높을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 vGPU의 컴퓨팅 파워 요구를 만족하는 vGPU를 선별하여, 제2 선별 결과 단계를 획득하며; 상기 제2 선별 결과에서 상기 리소스 스케줄링 요청의 vGPU의 비디오 메모리 요구를 만족하는 vGPU를 선별하여, 상기 제1 선별 결과 단계를 획득하도록 구성된다.
일 선택 가능한 실시형태에서, 상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 제1 선별 유닛(741)은, 각각의 상기 타깃 GPU 중 각각의 상기 vGPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하고; 상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 낮을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 vGPU의 비디오 메모리 요구를 만족하는 vGPU를 선별하여, 제3 선별 결과를 획득하며; 상기 제3 선별 결과에서 상기 리소스 스케줄링 요청의 vGPU의 컴퓨팅 파워 요구를 만족하는 vGPU를 선별하여, 상기 제1 선별 결과를 획득하도록 구성된다.
일 선택 가능한 실시형태에서, 상기 제2 선별 유닛(742)은, 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량보다 많을 경우, 상기 제1 선별 결과에서 산출 파라미터가 오름차순으로 상기 리소스 스케줄링 요청이 요구하는 vGPU 리소스의 수량에 대응되는 수량의 vGPU 리소스를 선택하고; 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량과 같을 경우, 상기 제1 선별 결과를 반환하며; 상기 제1 선별 결과 중 상기 vGPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 vGPU 리소스의 수량보다 적을 경우, 선별 결과가 비어 있음을 나타내는 프롬프트 정보를 반환하도록 구성된다.
일 선택 가능한 실시형태에서, 상기 리소스 스케줄링 요청은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형을 포함하고; 상이한 GPU 중의 vGPU에는 대응되는 라벨이 있으며, 상기 vGPU에 대응되는 라벨은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되고; 제2 매칭 모듈(76)은, 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 따라, 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 대응되는 적어도 하나의 라벨을 매칭하고; 상기 적어도 하나의 라벨에 대응되는 vGPU를 상기 매칭 결과로 하도록 구성된다.
도 7에 도시된 실시예의 리소스 스케줄링 장치는 상기 방법 실시예의 기술적 해결수단을 수행하는데 사용될 수 있고, 그 구현 원리 및 기술 효과는 유사하므로, 여기서 상세한 설명을 생략한다.
도 8은 본 발명의 실시예에서 제공되는 전자 기기의 구조 모식도이다. 본 발명의 실시예에서 제공되는 전자 기기는 리소스 스케줄링 방법 실시예에서 제공되는 처리 프로세스를 수행할 수 있고, 도 8에 도시된 바와 같이, 전자 기기(80)는 메모리(81), 프로세서(82), 컴퓨터 프로그램 및 통신 인터페이스(83)를 포함하며, 여기서, 컴퓨터 프로그램은 메모리(81)에 저장되고, 프로세서(82)에 의해 상기 방법 실시예의 방법 단계가 수행되도록 구성된다.
도 8에 도시된 실시예의 전자 기기는 상기 방법 실시예의 기술적 해결수단을 수행하는데 사용될 수 있고, 그 구현 원리 및 기술 효과는 유사하므로, 여기서 상세한 설명을 생략한다.
이 밖에, 본 발명의 실시예는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체를 더 제공하고, 상기 컴퓨터 프로그램은 프로세서에 의해 실행되어, 상기 실시예에 따른 리소스 스케줄링 방법을 구현한다.
본 발명에서 제공된 몇 개의 실시예에서, 개시된 장치 및 방법은 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 이상에서 설명된 장치 실시예는 예시적인 것일 뿐, 예를 들어, 상기 유닛의 구획은 논리적 기능 구획일 뿐이고, 실제 구현 시 다른 구획 방식이 있을 수 있으며, 예를 들어, 다수의 유닛 또는 컴포넌트가 결합될 수 있거나 다른 시스템에 집적될 수 있거나, 또는 일부 특징이 생략되거나, 또는 수행되지 않는다. 한편으로, 표시되거나 토론되는 상호간의 커플링 또는 직접 커플링 또는 통신 연결은 일부 인터페이스를 사용할 수 있고, 장치 또는 유닛의 간접적 커플링 또는 통신 연결은 전기적, 기계적 또는 다른 형식일 수 있다.
상기 분리 부재로 설명된 유닛은 물리적으로 분리되어 있거나 분리되어 있지 않을 수 있고, 유닛으로 표시된 부재는 물리적 유닛일 수도 있고 아닐 수도 있다. 즉 한 곳에 위치하거나 다수의 네트워크 유닛에 분포될 수도 있다. 실제 수요에 따라 그 중 일부분 또는 전부 유닛을 선택하여 본 실시예의 수단의 목적을 달성할 수 있다.
이 밖에, 본 발명의 각 실시예에서 각 기능 유닛은 모두 하나의 처리 유닛에 집적되거나 또는 각각의 유닛이 단독으로 존재할 수도 있고 2개 또는 2개 이상의 유닛이 하나의 유닛에 집적될 수도 있다. 상기 집적된 유닛은 하드웨어 형식으로 구현될 수 있고, 하드웨어에 소프트웨어 기능 유닛을 조합한 형식으로 구현될 수도 있다.
상기 소프트웨어 기능 유닛의 형식으로 구현되는 집적된 유닛은 하나의 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다. 상기 소프트웨어 기능 유닛은, 하나의 컴퓨터 기기(개인 컴퓨터, 서버 또는 네트워크 기기 등일 수 있음) 또는 프로세서(processor)가 본 발명의 각각의 실시예에 따른 방법의 일부 단계를 수행하도록 하는 다수의 명령을 포함하는 하나의 저장 매체에 저장된다. 전술한 저장 매체는, USB 디스크, 이동식 하드디스크, 판독 전용 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 자기 디스크 또는 광 디스크 등 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.
본 기술분야의 통상의 기술자는 설명의 편의 및 간결함을 위해, 상기 각 기능 모듈의 구획으로만 예를 들어 설명하고, 실제 응용에서는 수요에 따라 상기 기능 할당이 상이한 기능 모듈에 의해 완성될 수 있음을 명확하게 이해할 수 있으며, 즉 장치의 내부 구조를 상이한 기능 모듈로 구획하여, 위에서 설명된 기능의 전부 또는 일부를 완성한다. 상기 설명된 장치의 작업 과정은 전술한 방법 실시예의 대응되는 과정을 참조할 수 있으며, 여기서 상세한 설명을 생략한다.
마지막으로 설명해야 할 것은, 상기 각 실시예는 본 발명의 기술적 해결수단을 설명하기 위한 것일 뿐, 이를 제한하기 위함이 아니다. 본 발명은 전술한 각 실시예를 참조하여 상세히 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면, 전술한 각 실시예에 기재된 기술적 해결수단을 수정하거나, 또는 기술특징의 일부 또는 전부를 동등하게 대체할 수 있으며, 이러한 수정 또는 대체가 대응되는 기술적 해결수단이 본 발명의 각 실시예의 기술적 해결수단의 범위를 본질적으로 벗어나게 하지 않음을 이해해야 한다.
본 발명의 실시예에서는 그래픽 처리장치(GPU) 클러스터 중 GPU에 대한 리소스 스케줄링 요청을 수신하며, 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 요청할 GPU의 그룹화 정보는 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되며, 이후, 요청할 GPU의 그룹화 정보에 따라, GPU 클러스터의 모든 GPU에서 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하고, 마지막으로, 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함하는 매칭 결과를 반환한다. 리소스 스케줄링 요청에 요청할 GPU의 그룹화 정보가 포함되고, 요청할 GPU의 그룹화 정보는 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되므로, GPU 리소스 스케줄링을 수행할 경우, 상기 그룹화 정보에 따라 대응되는 GPU를 매칭할 수 있어, 더 세분화된 리소스 스케줄링을 구현하고, GPU의 사용을 정밀하게 제어한다.

Claims (21)

  1. 리소스 스케줄링 방법으로서,
    그래픽 처리장치(GPU) 클러스터 중 GPU에 대한 리소스 스케줄링 요청을 수신하는 단계 - 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 상기 요청할 GPU의 그룹화 정보는 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정됨 - ; 및
    상기 요청할 GPU의 그룹화 정보에 따라, 상기 GPU 클러스터의 모든 GPU에서 상기 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하여, 매칭 결과를 획득하는 단계 - 상기 매칭 결과는 상기 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함함 - ;
    상기 매칭 결과를 반환하는 단계를 포함하는 리소스 스케줄링 방법.
  2. 제1항에 있어서,
    각각의 상기 GPU는 적어도 하나의 가상 GPU를 포함하고, 상기 리소스 스케줄링 요청은 가상 GPU의 산출 파라미터 및 가상 GPU의 수량을 더 포함하며;
    상기 요청할 GPU의 그룹화 정보에 따라, 상기 GPU 클러스터의 모든 GPU에서 상기 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하는 단계 후에, 상기 방법은,
    상기 가상 GPU의 산출 파라미터 및 가상 GPU의 수량에 따라, 상기 매칭 결과에서 상기 가상 GPU의 산출 파라미터 및 가상 GPU의 수량을 만족하는 가상 GPU를 선별하는 단계; 및
    상기 가상 GPU의 산출 파라미터 및 가상 GPU의 수량을 만족하는 가상 GPU를 반환하는 단계를 더 포함하는 리소스 스케줄링 방법.
  3. 제2항에 있어서,
    상기 가상 GPU의 산출 파라미터 및 가상 GPU의 수량에 따라, 상기 매칭 결과에서 상기 리소스 스케줄링 요청을 만족하는 가상 GPU를 선별하는 단계는,
    상기 매칭 결과에서 상기 산출 파라미터를 만족하는 가상 GPU를 선별하여, 제1 선별 결과를 획득하는 단계; 및
    상기 제1 선별 결과에서, 상기 가상 GPU의 수량 요구를 만족하는 가상 GPU 리소스를 선별하는 단계를 포함하는 리소스 스케줄링 방법.
  4. 제3항에 있어서,
    상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 매칭 결과에서 상기 산출 파라미터를 만족하는 가상 GPU를 선별하여, 제1 선별 결과를 획득하는 단계는,
    각각의 상기 타깃 GPU 중 각각의 상기 가상 GPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하는 단계;
    상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 높을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 가상 GPU의 컴퓨팅 파워 요구를 만족하는 가상 GPU를 선별하여, 제2 선별 결과를 획득하는 단계; 및
    상기 제2 선별 결과에서 상기 리소스 스케줄링 요청의 가상 GPU의 비디오 메모리 요구를 만족하는 가상 GPU를 선별하여, 상기 제1 선별 결과를 획득하는 단계를 포함하는 리소스 스케줄링 방법.
  5. 제3항에 있어서,
    상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 매칭 결과에서 상기 산출 파라미터를 만족하는 가상 GPU를 선별하여, 제1 선별 결과를 획득하는 단계는,
    각각의 상기 타깃 GPU 중 각각의 상기 가상 GPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하는 단계;
    상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 낮을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 가상 GPU의 비디오 메모리 요구를 만족하는 가상 GPU를 선별하여, 제3 선별 결과를 획득하는 단계; 및
    상기 제3 선별 결과에서 상기 리소스 스케줄링 요청의 가상 GPU의 컴퓨팅 파워 요구를 만족하는 가상 GPU를 선별하여, 상기 제1 선별 결과를 획득하는 단계를 포함하는 리소스 스케줄링 방법.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 선별 결과에서, 상기 가상 GPU의 수량 요구를 만족하는 가상 GPU 리소스를 선별하는 단계는,
    상기 제1 선별 결과 중 상기 가상 GPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 가상 GPU 리소스의 수량보다 많을 경우, 상기 제1 선별 결과에서 산출 파라미터가 오름차순으로 상기 리소스 스케줄링 요청이 요구하는 가상 GPU 리소스의 수량에 대응되는 수량의 가상 GPU 리소스를 선택하는 단계를 포함하는 리소스 스케줄링 방법.
  7. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 선별 결과에서, 상기 가상 GPU의 수량 요구를 만족하는 가상 GPU 리소스를 선별하는 단계는,
    상기 제1 선별 결과 중 상기 가상 GPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 가상 GPU 리소스의 수량과 같을 경우, 상기 제1 선별 결과를 반환하는 단계를 포함하는 리소스 스케줄링 방법.
  8. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 선별 결과에서, 상기 가상 GPU의 수량 요구를 만족하는 가상 GPU 리소스를 선별하는 단계는,
    상기 제1 선별 결과 중 상기 가상 GPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 가상 GPU 리소스의 수량보다 적을 경우, 선별 결과가 비어 있음을 나타내는 프롬프트 정보를 반환하는 단계를 포함하는 리소스 스케줄링 방법.
  9. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 리소스 스케줄링 요청은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형을 포함하고; 상이한 GPU 중의 가상 GPU에는 대응되는 라벨이 있으며, 상기 가상 GPU에 대응되는 라벨은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되고; 상기 방법은,
    상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 따라, 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 대응되는 적어도 하나의 라벨을 매칭하는 단계; 및
    상기 적어도 하나의 라벨에 대응되는 가상 GPU를 상기 매칭 결과로 하는 단계를 더 포함하는 리소스 스케줄링 방법.
  10. 리소스 스케줄링 장치로서,
    그래픽 처리장치(GPU) 클러스터 중 GPU에 대한 리소스 스케줄링 요청을 수신하도록 구성되는 수신 모듈 - 상기 리소스 스케줄링 요청은 요청할 GPU의 그룹화 정보를 포함하고, 상기 요청할 GPU의 그룹화 정보는 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정됨 - ;
    상기 요청할 GPU의 그룹화 정보에 따라, 상기 GPU 클러스터의 모든 GPU에서 상기 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭하여, 매칭 결과를 획득하도록 구성되는 제1 매칭 모듈 - 상기 매칭 결과는 상기 요청할 GPU의 그룹화 정보에 대응되는 적어도 하나의 타깃 GPU를 포함함 - ; 및
    상기 매칭 결과를 반환하도록 구성되는 제1 반환 모듈을 포함하는 리소스 스케줄링 장치.
  11. 제10항에 있어서,
    각각의 상기 GPU는 적어도 하나의 가상 GPU를 포함하고, 상기 리소스 스케줄링 요청은 가상 GPU의 산출 파라미터 및 가상 GPU의 수량을 더 포함하며; 상기 요청할 GPU의 그룹화 정보에 따라, 상기 GPU 클러스터의 모든 GPU에서 상기 요청할 GPU의 그룹화 정보를 갖는 GPU를 매칭한 후, 상기 장치는,
    상기 가상 GPU의 산출 파라미터 및 가상 GPU의 수량에 따라, 상기 매칭 결과에서 상기 가상 GPU의 산출 파라미터 및 가상 GPU의 수량을 만족하는 가상 GPU를 선별하도록 구성되는 선별 모듈; 및
    상기 가상 GPU의 산출 파라미터 및 가상 GPU의 수량을 만족하는 가상 GPU를 반환하도록 구성되는 제2 반환 모듈을 더 포함하는 리소스 스케줄링 장치.
  12. 제11항에 있어서,
    상기 선별 모듈은,
    상기 매칭 결과에서 상기 산출 파라미터를 만족하는 가상 GPU를 선별하여, 제1 선별 결과를 획득하도록 구성되는 제1 선별 유닛; 및
    상기 제1 선별 결과에서, 상기 가상 GPU의 수량 요구를 만족하는 가상 GPU 리소스를 선별하도록 구성되는 제2 선별 유닛을 포함하는 리소스 스케줄링 장치.
  13. 제12항에 있어서,
    상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 제1 선별 유닛은,
    각각의 상기 타깃 GPU 중 각각의 상기 가상 GPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하고; 상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 높을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 가상 GPU의 컴퓨팅 파워 요구를 만족하는 가상 GPU를 선별하여, 제2 선별 결과를 획득하며; 상기 제2 선별 결과에서 상기 리소스 스케줄링 요청의 가상 GPU의 비디오 메모리 요구를 만족하는 가상 GPU를 선별하여, 상기 제1 선별 결과를 획득하도록 구성되는 리소스 스케줄링 장치.
  14. 제12항에 있어서,
    상기 산출 파라미터는 컴퓨팅 파워 및 비디오 메모리 중 적어도 하나를 포함하고; 상기 제1 선별 유닛은,
    각각의 상기 타깃 GPU 중 각각의 상기 가상 GPU의 상기 컴퓨팅 파워 및 상기 비디오 메모리에 대응되는 우선 순위를 획득하고; 상기 컴퓨팅 파워의 우선 순위가 상기 비디오 메모리의 우선 순위보다 낮을 경우, 각각의 상기 타깃 GPU에서 상기 리소스 스케줄링 요청의 가상 GPU의 비디오 메모리 요구를 만족하는 가상 GPU를 선별하여, 제3 선별 결과를 획득하며; 상기 제3 선별 결과에서 상기 리소스 스케줄링 요청의 가상 GPU의 컴퓨팅 파워 요구를 만족하는 가상 GPU를 선별하여, 상기 제1 선별 결과를 획득하도록 구성되는 리소스 스케줄링 장치.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 제2 선별 유닛은,
    상기 제1 선별 결과 중 상기 가상 GPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 가상 GPU 리소스의 수량보다 많을 경우, 상기 제1 선별 결과에서 상기 산출 파라미터가 오름차순으로 상기 리소스 스케줄링 요청이 요구하는 가상 GPU 리소스의 수량에 대응되는 수량의 가상 GPU 리소스를 선택하도록 구성되는 리소스 스케줄링 장치.
  16. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 제2 선별 유닛은,
    상기 제1 선별 결과 중 상기 가상 GPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 가상 GPU 리소스의 수량과 같을 경우, 상기 제1 선별 결과를 반환하도록 구성되는 리소스 스케줄링 장치.
  17. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 제2 선별 유닛은,
    상기 제1 선별 결과 중 상기 가상 GPU의 수량이 상기 리소스 스케줄링 요청이 요구하는 상기 가상 GPU 리소스의 수량보다 적을 경우, 선별 결과가 비어 있음을 나타내는 프롬프트 정보를 반환하도록 구성되는 리소스 스케줄링 장치.
  18. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 리소스 스케줄링 요청은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형을 포함하고; 상이한 GPU 중의 가상 GPU에는 대응되는 라벨이 있으며, 상기 가상 GPU에 대응되는 라벨은 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 의해 결정되고; 상기 장치는,
    상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 따라, 상기 리소스 스케줄링 요청에 대응되는 태스크 처리 요청의 태스크 유형에 대응되는 적어도 하나의 라벨을 매칭하고; 상기 적어도 하나의 라벨에 대응되는 가상 GPU를 상기 매칭 결과로 하도록 구성되는 제2 매칭 모듈을 더 포함하는 리소스 스케줄링 장치.
  19. 컴퓨터 프로그램;
    상기 컴퓨터 프로그램을 저장하는 메모리; 및
    상기 컴퓨터 프로그램을 실행하여, 제1항 내지 제9항 중 어느 한 항에 따른 방법을 구현하는 프로세서; 를 포함하는 전자 기기.
  20. 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체로서,
    상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 상기 프로세서로 하여금 제1항 내지 제9항 중 어느 한 항에 따른 방법을 수행하도록 하는 컴퓨터 판독 가능 저장 매체.
  21. 컴퓨터 판독 가능 코드를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독 가능 코드가 전자 기기에서 실행될 경우, 상기 전자 기기의 프로세서로 하여금 제1항 내지 제9항 중 어느 한 항에 따른 방법을 수행하도록 하는 컴퓨터 프로그램 제품.
KR1020217037982A 2020-10-26 2021-05-21 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품 KR20220058844A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202011158231.7 2020-10-26
CN202011158231.7A CN112346859B (zh) 2020-10-26 2020-10-26 资源调度方法及装置、电子设备和存储介质
PCT/CN2021/095292 WO2022088659A1 (zh) 2020-10-26 2021-05-21 资源调度方法及装置、电子设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
KR20220058844A true KR20220058844A (ko) 2022-05-10

Family

ID=74358745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217037982A KR20220058844A (ko) 2020-10-26 2021-05-21 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품

Country Status (3)

Country Link
KR (1) KR20220058844A (ko)
CN (1) CN112346859B (ko)
WO (1) WO2022088659A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302568A (zh) * 2023-05-17 2023-06-23 算力互联(北京)科技有限公司 一种算力资源调度方法及系统、调度中心、数据中心

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112346859B (zh) * 2020-10-26 2023-06-16 北京市商汤科技开发有限公司 资源调度方法及装置、电子设备和存储介质
CN113204428B (zh) * 2021-05-28 2023-01-20 北京市商汤科技开发有限公司 资源调度方法、装置、电子设备以及计算机可读存储介质
CN114820279B (zh) * 2022-05-18 2023-03-24 北京百度网讯科技有限公司 基于多gpu的分布式深度学习方法、装置及电子设备
CN114968272A (zh) * 2022-05-31 2022-08-30 京东方科技集团股份有限公司 一种算法运行方法、装置、设备、存储介质
CN115048216B (zh) * 2022-05-31 2024-06-04 苏州浪潮智能科技有限公司 一种人工智能集群的资源管理调度方法、装置和设备
CN115965517B (zh) * 2023-01-09 2023-10-20 摩尔线程智能科技(北京)有限责任公司 图形处理器资源管理方法及装置、电子设备和存储介质
CN115981871B (zh) * 2023-03-17 2024-01-26 苏州万店掌网络科技有限公司 一种gpu资源调度方法、装置、设备及存储介质
CN116643893B (zh) * 2023-07-27 2023-10-20 合肥中科类脑智能技术有限公司 算力任务的调度方法、调度装置、存储介质及服务器
CN116757915B (zh) * 2023-08-16 2023-11-28 北京蓝耘科技股份有限公司 一种集群gpu资源调度方法
CN117539639B (zh) * 2024-01-05 2024-06-14 北京趋动智能科技有限公司 显存资源调度方法、装置、系统、存储介质及电子设备
CN117687802B (zh) * 2024-02-02 2024-04-30 湖南马栏山视频先进技术研究院有限公司 一种基于云平台的深度学习并行调度方法、装置和云平台
CN117891618B (zh) * 2024-03-15 2024-05-24 杭州宇泛智能科技有限公司 人工智能模型训练平台的资源任务处理方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101885211B1 (ko) * 2012-01-27 2018-08-29 삼성전자 주식회사 Gpu의 자원 할당을 위한 방법 및 장치
WO2017185285A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 图形处理器任务的分配方法和装置
US10262390B1 (en) * 2017-04-14 2019-04-16 EMC IP Holding Company LLC Managing access to a resource pool of graphics processing units under fine grain control
CN109144710B (zh) * 2017-06-16 2020-12-04 中国移动通信有限公司研究院 资源调度方法、装置及计算机可读存储介质
CN110503593A (zh) * 2018-05-18 2019-11-26 微软技术许可有限责任公司 多个图形处理单元的调度
CN109375992A (zh) * 2018-08-17 2019-02-22 华为技术有限公司 一种资源调度方法及装置
CN109376011B (zh) * 2018-09-26 2021-01-15 郑州云海信息技术有限公司 虚拟化系统中管理资源的方法和装置
CN109634748A (zh) * 2018-12-12 2019-04-16 深圳前海微众银行股份有限公司 集群资源调度方法、装置、设备及计算机可读存储介质
CN110688218B (zh) * 2019-09-05 2022-11-04 广东浪潮大数据研究有限公司 资源调度方法及装置
CN110941481A (zh) * 2019-10-22 2020-03-31 华为技术有限公司 资源调度方法、装置及系统
CN111158879B (zh) * 2019-12-31 2024-03-22 上海依图网络科技有限公司 一种系统资源的调度方法,装置、机器可读介质和系统
CN112346859B (zh) * 2020-10-26 2023-06-16 北京市商汤科技开发有限公司 资源调度方法及装置、电子设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302568A (zh) * 2023-05-17 2023-06-23 算力互联(北京)科技有限公司 一种算力资源调度方法及系统、调度中心、数据中心

Also Published As

Publication number Publication date
CN112346859B (zh) 2023-06-16
WO2022088659A1 (zh) 2022-05-05
CN112346859A (zh) 2021-02-09

Similar Documents

Publication Publication Date Title
KR20220058844A (ko) 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
CN114741207B (zh) 一种基于多维度组合并行的gpu资源调度方法和系统
WO2020113310A1 (en) System and method for resource partitioning in distributed computing
CN111045795A (zh) 资源调度方法及装置
CN112596902A (zh) 基于cpu-gpu协同计算的任务调度方法及装置
CN112463375A (zh) 一种数据处理的方法和装置
JP2014191594A (ja) 分散処理システム
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
CN112181613A (zh) 异构资源分布式计算平台批量任务调度方法及存储介质
CN107992351B (zh) 一种硬件资源分配方法及装置、电子设备
JP2022539291A (ja) 計算資源の動的割り当て
CN113535087B (zh) 数据迁移过程中的数据处理方法、服务器及存储系统
US11941519B2 (en) Machine learning training platform
CN115981819B (zh) 用于多核系统的核心调度方法和装置
US12028269B2 (en) Method for optimal resource selection based on available GPU resource analysis in large-scale container platform
CN107104829B (zh) 一种基于网络拓扑数据的物理设备匹配分配方法及装置
CN111475277A (zh) 一种资源分配方法、系统、设备及机器可读存储介质
CN115080207A (zh) 基于容器集群的任务处理方法及装置
CN114489978A (zh) 资源调度方法、装置、设备及存储介质
CN115202856A (zh) 资源分配系统、方法、装置、计算机设备和存储介质
CN112988383A (zh) 一种资源分配方法、装置、设备以及存储介质
Chmaj et al. Allocation algorithms problems in mesh-connected systems
CN112631743B (zh) 任务调度方法、装置及存储介质
CN112905351B (zh) 一种gpu和cpu负载调度方法、装置、设备和介质