KR20210080292A - 딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체 - Google Patents

딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체 Download PDF

Info

Publication number
KR20210080292A
KR20210080292A KR1020210075650A KR20210075650A KR20210080292A KR 20210080292 A KR20210080292 A KR 20210080292A KR 1020210075650 A KR1020210075650 A KR 1020210075650A KR 20210075650 A KR20210075650 A KR 20210075650A KR 20210080292 A KR20210080292 A KR 20210080292A
Authority
KR
South Korea
Prior art keywords
inference
inference engine
load
task
engine
Prior art date
Application number
KR1020210075650A
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 KR20210080292A publication Critical patent/KR20210080292A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06K9/00221
    • G06K9/00906
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/40Spoof detection, e.g. liveness detection
    • G06V40/45Detection of the body part being alive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • General Factory Administration (AREA)

Abstract

본원 발명은 딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체를 개시하는데 이는 인공지능, 딥 러닝 및 칩 기술에 관한 것이다. 구체적인 구현방안은, 애플리케이션 레이어에서 유래된 현재 추론 임무의 스케줄링 요청에 응답하여 상기 현재 추론 임무의 유형을 결정하고; 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 계산하며; 상기 각 추론 엔진의 총 부하를 비교하고 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정하며; 추론 엔진의 스케줄링 경로를 나타내는 상기 타깃 추론 엔진의 인덱스를 상기 애플리케이션 레이어에 리턴한다. 본원 발명의 실시예는 각 추론 엔진의 실제 연산력에 따라 추론 엔진을 분배하여 시스템 성능을 향상시킬 수 있다. 또한, 추론 엔진을 안면 인식에 응용할 경우, 안면 인식의 속도와 실행 효율을 향상시킬 수 있다.

Description

딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체{SCHEDULING METHOD, DEVICE, EQUIPMENT AND MEDIUM OF DEEP LEARNING INFERENCE ENGINE}
본원 발명은 컴퓨터 분야에 관한 것으로, 특히 인공지능, 딥 러닝 및 칩 기술에 관한 것이며, 구체적으로는 딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체에 관한 것이다.
딥 러닝 기술의 끊임없는 발전 및 성숙과 더불어 딥 러닝 기술은 안면 인식과 같은 여러 산업 및 시나리오에서 직면하는 문제를 해결하는데 끊임없이 응용되고 있다. 여기서, 전용 AI(Artificial Intelligence, 인공지능)칩을 사용하여 딥 러닝 모델의 추론을 실행하는 것은 점차 주류가 되고 있다.
일반적으로 딥 러닝 모델을 운행하는 AI칩은 CPU와 마찬가지로 다수의 물리적 코어를 구비하는 동시에 다수의 딥 러닝 모델을 동일한 AI칩에서 운행할 수 있으며, 각 딥 러닝 모델 운행 시간은 상이하다. 그리하여 AI칩의 모든 물리적 코어의 연산력을 충분히 이용하여 시스템 성능을 최대한 향상시키는 것은 가장 중요한 문제가 되었다.
본원 발명의 실시예는 딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체를 제공하여 시스템 성능을 향상시킨다.
제1 양태에서, 본원 발명의 실시예는 딥 러닝 추론 엔진의 스케줄링 방법을 제공하는데 당해 딥 러닝 추론 엔진의 스케줄링 방법은,
애플리케이션 레이어에서 유래된 현재 추론 임무의 스케줄링 요청에 응답하여 상기 현재 추론 임무의 유형을 결정하는 단계;
각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 계산하는 단계;
상기 각 추론 엔진의 총 부하를 비교하고 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정하는 단계; 및
추론 엔진의 스케줄링 경로를 나타내기 위한 상기 타깃 추론 엔진의 인덱스를 애플리케이션 레이어에 리턴하는 단계; 를 포함한다.
제2 양태에서, 본원 발명의 실시예는 딥 러닝 추론 엔진의 스케줄링 장치를 더 포함하는데 당해 딥 러닝 추론 엔진의 스케줄링 장치는,
애플리케이션 레이어에서 유래된 현재 추론 임무의 스케줄링 요청에 응답하여 상기 현재 추론 임무의 유형을 결정하는 유형 결정 모듈;
각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 계산하는 계산 모듈;
상기 각 추론 엔진의 총 부하를 비교하고 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정하는 비교 모듈; 및
추론 엔진의 스케줄링 경로를 나타내기 위한 상기 타깃 추론 엔진의 인덱스를 애플리케이션 레이어에 리턴하는 리턴 모듈; 을 포함한다.
제3 양태에서, 본원 발명의 실시예는 전자기기를 더 제공하는데, 당해 전자기기는,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서와 통신 연결하는 메모리; 를 포함하고,
상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되며 상기 명령이 상기 적어도 하나의 프로세서에 의해 실행될 경우, 상기 적어도 하나의 프로세서가 본원 발명의 임의의 한 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 수행한다.
제4 양태에서, 본원 발명의 실시예는 컴퓨터 프로그램이 저장된 비일시적 컴퓨터 판독 가능 저장매체를 더 제공하는데 상기 컴퓨터 프로그램의 명령이 실핼될 경우, 본원 발명의 임의의 한 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법이 수행된다.
제5 양태에서, 본원 발명의 실시예는 AI칩을 더 제공하는데, 당해 AI칩은 적어도 하나의 추론 엔진; 및 본원 발명의 임의의 한 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 수행하기 위한 스케줄러; 를 포함한다.
제6 양태에서, 본원 발명의 실시예는 컴퓨터 프로그램이 저장된 비일시적 컴퓨터 판독 가능 저장매체를 제공하는 바, 상기 컴퓨터 프로그램의 명령이 실행될 경우, 본원 발명의 임의의 한 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법이 수행된다.
본원 발명의 실시예의 기술적 해결수단에 따르면, 각 추론 엔진이 현재 추론 임무를 수행한 후의 총 부하를 계산함으로써 각 추론 엔진이 현재 추론 임무를 수행하는 연산력을 가늠하고, 실제의 연산력에 따라 추론 엔진을 분배함으로써 시스템 성능을 향상시킨다. 또한, 추론 엔진을 안면 인식에 응용할 경우, 안면 인식의 속도와 실행 효율을 향상시킬 수 있다.
본 명세서에서 설명한 내용은 본원 발명의 실시예의 관건적이거나 중요한 특징을 표기하기 위한 것이 아니고 본원 발명의 범위를 한정하기 위한 것도 아님을 이해해야 한다. 본원 발명의 기타 특징은 아래의 명세서를 통해 더 용이하게 이해할 수 있고 상기 선택적인 형태가 구비한 기타 효과는 아래의 내용에서 구체적인 실시예와 결부하여 설명할 것이다.
본원 발명의 실시예는 딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체를 제공하여 시스템 성능을 향상시킨다.
첨부 도면은 본 방안을 더 잘 이해하기 위한 것으로, 본원 발명을 한정하지 않는다.
도 1은 본원 발명의 제1 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법의 과정 모식도이다.
도 2는 본원 발명의 제2 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법의 과정 모식도이다.
도 3은 본원 발명의 제2 실시예에 따른 딥 러닝 추론 임무의 스케줄링 모식도이다.
도 4는 본원 발명의 제3 실시예의 딥 러닝 추론 엔진의 스케줄링 장치의 구조 모식도이다.
도 5는 본원 발명의 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 구현하기 위한 전자기기의 블록도이다.
이하, 첨부 도면을 결부하여 본원 발명의 예시적인 실시예들을 설명하고자 하며, 이해를 돕기 위해 본원 발명의 실시예들의 다양한 세부 사항들이 포함되는데, 이들은 단지 예시적인 것으로 간주되어야 한다. 따라서, 본원 발명의 기술 분야의 통상의 지식을 가진 자라면 본원 발명의 범위 및 사상을 벗어나지 않으면서 본 명세서에 설명된 실시예들에 대해 다양한 변경 및 수정이 이루어질 수 있음을 알아야 한다. 또한, 명확성 및 간결성을 위해, 공지된 기능 및 구조에 대한 설명은 아래 설명에서 생략된다.
도 1은 본원 발명의 제1 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법의 과정 모식도이고, 본 실시예는 추론 엔진의 연산력에 따라 딥 러닝 모델을 스케줄링하는 상황에 적용될 수 있으며 인공지능, 딥 러닝 및 칩 기술에 관한 것이다. 상기 방법은 딥 러닝 추론 엔진의 스케줄링 장치에 의해 수행될 수 있고 상기 장치는 소프트웨어 및/또는 하드웨어의 형태로 구현될 수 있으며, 바람직하게는 컴퓨터 기기 등과 같은 전자기기에 배치된다. 도 1에 도시된 바와 같이, 상기 방법은 단계S101 내지 단계S104를 포함한다.
단계S101에서, 애플리케이션 레이어에서 유래된 현재 추론 임무의 스케줄링 요청에 응답하여 상기 현재 추론 임무의 유형을 결정한다.
딥 러닝 모델을 운행하는 AI칩은 CPU와 마찬가지로 다수의 물리적 코어를 구비하고, 이와 동시에 다수의 딥 러닝 모델이 동일한 AI칩에서 운행될 수 있으며 각 딥 러닝 모델의 운행 시간은 상이할 수 있다. 이러한 딥 모델은 예를 들어 안면 인식 모델, 생체 검출 모델 등 유형일 수 있다. 각각의 딥 모델이 매 차례의 전향 추론은 한 차례의 전향 추론 임무라고 한다. 매 차례의 전향 추론 임무는 모두 반드시 실제 물리적 추론 엔진을 지정하여 운행해야 한다.
통상적으로, 칩의 애플리케이션 레이어에 의해 딥 러닝 추론 임무를 제공하는데, 여기서 상기 스케줄링 요청에는 적어도 각 추론 임무의 유형이 포함된다. 또한 모든 추론 엔진의 연산력을 평형시켜 각 추론 엔진으로 하여금 계산 예의 최대화를 구현하도록 함으로써 시스템 성능을 향상시키기 위하여 본원 발명의 실시예는 애플리케이션 레이어와 딥 러닝 추론 임무를 제공하는 추론 엔진 사이에 하나의 스케줄러를 삽입시켜 스케줄러가 각 추론 엔진의 부하에 기반하여 자동적으로 각 딥 러닝 추론 임무에 대해 추론 엔진의 분배와 스케줄링을 진행하도록 할 수 있다.
단계S102에서, 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 계산한다.
각 추론 엔진의 연산력을 충분히 이용하여 시스템 성능을 향상시키고자 하지만 상이한 유형의 딥 러닝 모델의 운행 시간이 상이하므로 본원 발명의 실시예에서는 먼저 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 산출하고, 총 부하 상황에 근거하여 스케줄링을 진행한다. 여기서, 상기 부하는 수행 시간으로 나타낼 수 있는 바, 바꾸어 말하면, 상기 총 부하는 추론 엔진이 모든 추론 임무를 수행하는 전체 시간을 나타내고, 과거 임무와 현재 임무를 포함하며, 스케줄링할 경우, 전체 시간을 제일 빨리 수행하는 추론 엔진을 현재 추론 임무로 선택하여 스케줄링할 수 있다.
이 외에 상기 방법은,
상기 각 추론 엔진이 각 추론 임무를 수행하는 부하 피드백 정보를 수신하되, 여기서 상기 부하 피드백 정보에는 추론 임무의 유형과 부하가 포함되는 단계;
상기 부하 피드백 정보에 근거하여 상기 각 추론 엔진이 수행했던 추론 임무 유형 및 이의 부하를 저장하는 단계를 더 포함한다.
구체적으로, 각 추론 엔진이 매 차례 하나의 추론 임무를 수행 완료하게 되면 상기 임무를 수행하는 부하 상황과 임무 유형을 모두 부하 피드백 채널을 통해 부하 피드백 정보를 발송하는 방식으로 스케줄러에 피드백하며, 스케줄러는 이를 기록하고 저장한다. 그렇게 되면 스케줄러가 수신한 현재 추론 임무의 스케줄링 요청에 대하여 스케줄러는 저장된 부하 정보에 기반하여 통계하고 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 산출할 수도 있고 실시간으로 통계할 수도 있으며, 부하 피드백 정보를 수신할 때마다 통계 상황을 업데이트하여 다음 번에 스케줄링하는 의거로 할 수 있다.
단계S103에서, 상기 각 추론 엔진의 총 부하를 비교하고 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정한다.
각 추론 엔진의 총 부하 상황은 현재 각 추론 엔진의 연산력 상황을 나타내는 바, 총 부하에서 값이 제일 작은 것은 연산력이 제일 강한 것, 즉 수행 속도가 제일 빠른 것을 나타내므로 총 부하가 제일 작은 추론 엔진을 타깃 추론 엔진으로 선택할 수 있다.
단계S104에서, 추론 엔진의 스케줄링 경로를 나타내기 위한 타깃 추론 엔진의 인덱스를 애플리케이션 레이어에 리턴한다.
타깃 추론 엔진을 결정한 후, 상기 타깃 추론 엔진의 인덱스를 애플리케이션 레이어에 리턴시키고, 애플리케이션 레이어는 인덱스에 근거하여 타깃 추론 엔진을 스케줄링한 후, 현재 추론 임무는 구동 레이어의 타깃 추론 엔진의 임무 대기열에 진입하여 수행을 대기한다.
여기서 설명해야 할 것은, 선행기술에서 통상적으로 추론 엔진을 무작위 분배하거나 또는 직접적으로 추론 임무와 추론 엔진을 바인딩하는데 이는 모두 모든 엔진의 연산력을 최대한 이용하지 않아 어떤 엔진에 실시성 문제가 존재할 수 있고 어떤 엔진은 유휴한 상황을 초래할 수 있으며, 또 상이한 엔진 사이의 부하가 불균형한 문제를 쉽게 초래할 수 있어 시스템 성능에 영향을 미치게 된다. 그러나 본원 발명의 실시예의 기술적 해결수단은 각 추론 엔진의 각각의 현재의 부하 상태에 따라 스케줄링 하므로 이러한 문제가 나타나는 것을 방지하여 시스템 성능을 향상시킬 수 있다.
본원 발명의 실시예의 기술적 해결수단에서, 각 추론 엔진이 현재 추론 임무를 수행한 후의 총 부하를 계산함으로써 각 추론 엔진이 현재 추론 임무를 수행하는 연산력을 가늠하고, 실제의 연산력에 따라 추론 엔진을 분배함으로써 시스템 성능을 향상시킨다. 또한, 추론 엔진을 안면 인식에 응용할 경우, 안면 인식의 속도와 실행 효율을 향상시킬 수 있다.
도 2는 본원 발명의 제2 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법의 과정 모식도이고, 본 실시예는 상기 실시예의 기초상에 진일보로 최적화한다. 도 2에 도시된 바와 같이, 상기 방법은 단계S201 내지 단계S205를 포함한다.
단계S201에서, 애플리케이션 레이어에서 유래된 현재 추론 임무의 스케줄링 요청에 응답하여 상기 현재 추론 임무의 유형을 결정한다.
단계S202에서, 상기 각 추론 엔진의 과거 부하 및 각 추론 엔진이 상기 유형의 추론 임무를 수행하는 부하를 획득한다.
단계S203에서, 상기 각 추론 엔진의 과거 부하 및 이가 상기 유형의 추론 임무를 수행하는 부하의 합계 값을 각각 계산하고 상기 합계 값을 상기 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하로 한다.
본 실시예에서, 스케줄러는 상기 각 추론 엔진이 각 추론 임무를 수행하는 부하 피드백 정보를 수신하되, 여기서 상기 부하 피드백 정보에는 추론 임무의 유형과 부하가 포함되고; 상기 부하 피드백 정보에 근거하여 상기 각 추론 엔진이 수행했던 추론 임무 유형 및 이의 부하를 저장한다. 그렇게 되면 스케줄러가 수신한 현재 추론 임무의 스케줄링 요청에 대하여 스케줄러는 저장된 부하 정보에 기반하여 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 통계 및 산출할 수도 있고, 실시간으로 통계할 수도 있으며, 부하 피드백 정보를 수신할 때마다 통계 상황을 업데이트하여 다음 번에 스케줄링하는 의거로 할 수 있다.
즉, 스케줄러는 우선 저장된 정보에 기반하여 각 추론 엔진의 과거 부하, 다시 말하면 과거 추론 임무의 전체 수행 시간을 산출한 다음 다시 각 추론 엔진이 상기 유형의 추론 임무를 수행하는 과거 평균 부하를 산출하거나 또는 각 추론 엔진이 지난 번에 상기 유형의 추론 임무를 수행한 부하를 직접 획득하며, 마지막으로 추론 엔진의 과거 부하 및 이가 상기 유형의 추론 임무를 수행하는 부하의 합계 값을 각각 계산하고 합계 값을 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하로 하는데, 상기 총 부하는 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 나타낸다. 그러나 총 부하를 계산하는 것을 스케줄링의 의거로 하여 각 추론 엔진의 현재의 사중 상황에 기반하여 스케줄링할 수 있고 상이한 추론 엔진 사이에 부하 평형을 이루도록 하여 시스템의 실시성과 응답 속도를 향상시킬 수 있다. 이 외에 총 부하에 기반하여 딥 러닝 추론 엔진의 리소스 이용율을 통계할 수도 있다.
단계S204에서, 상기 각 추론 엔진의 총 부하를 비교하고 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정한다.
단계S205에서, 추론 엔진의 스케줄링 경로를 나타내기 위한 타깃 추론 엔진의 인덱스를 애플리케이션 레이어에 리턴한다.
도 3은 본원 발명의 제2 실시예에 따른 딥 러닝 추론 임무의 스케줄링 모식도이다. 도면에 도시된 바와 같이, 애플리케이션 레이어와 추론 엔진 사이에 본원 발명의 실시예는 스케줄러를 증가하고, 스케줄러는 추론 임무1과 추론 임무2 각각의 유형을 획득하여 부하 피드백 채널을 통해 각 추론 엔진#0과 #1이 각 유형의 추론 임무를 각각 수행하는 과거 부하를 획득하며, 과거 부하에 따라 각 추론 엔진이 현재 유형의 추론 임무를 수행한 후의 총 부하를 계산한다. 예를 들어, 추론 엔진#0과 #1에 대하여 이들이 현재 추론 임무를 수행한 후의 총 부하F0가 F1보다 크다는 것을 각각 계산하면 F1과 대응되는 추론 엔진#1의 연산력이 제일 크다는 것을 나타내고, 현재 추론 임무를 상기 추론 엔진#1에 스케줄링 한다. 스케줄링 된 추론 임무는 이어서 구동 레이어의 임무 대기열에 진입하여 수행을 대기한다.
본원 발명의 실시예의 기술적 해결수단에서, 각 추론 엔진이 현재 추론 임무를 수행한 후의 총 부하를 계산함으로써 각 추론 엔진이 현재 추론 임무를 수행하는 연산력을 가늠하고, 실제의 연산력에 따라 추론 엔진을 분배함으로써 상이한 추론 엔진 사이에 부하 평형을 이루도록 하여 시스템의 실시성과 응답 속도를 향상시킨다. 또한, 추론 엔진을 안면 인식에 응용할 경우, 안면 인식의 속도와 실행 효율을 향상시킬 수 있다.
도 4는 본원 발명의 제3 실시예의 딥 러닝 추론 엔진의 스케줄링 장치의 구조 모식도이고, 본 실시예는 추론 엔진의 연산력에 따라 딥 러닝 모델을 스케줄링하는 상황에 적용될 수 있으며 인공지능, 딥 러닝 및 칩 기술에 관한 것이다. 상기 장치는 본원 발명의 임의의 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 구현할 수 있다. 도 4에 도시된 바와 같이, 상기 장치(300)는 구체적으로,
애플리케이션 레이어에서 유래된 현재 추론 임무의 스케줄링 요청에 응답하여 상기 현재 추론 임무의 유형을 결정하는 유형 결정 모듈(301);
각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 계산하는 계산 모듈(302);
상기 각 추론 엔진의 총 부하를 비교하고 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정하는 비교 모듈(303); 및
추론 엔진의 스케줄링 경로를 나타내기 위한 타깃 추론 엔진의 인덱스를 애플리케이션 레이어에 리턴하는 리턴 모듈(304); 을 포함한다.
선택적으로, 상기 계산 모듈은,
상기 각 추론 엔진의 과거 부하 및 각 추론 엔진이 상기 유형의 추론 임무를 수행하는 부하를 획득하는 획득 유닛; 및
상기 각 추론 엔진의 과거 부하 및 이가 상기 유형의 추론 임무를 수행하는 부하의 합계 값을 각각 계산하고 상기 합계 값을 상기 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하로 하는 계산 유닛; 을 포함한다.
선택적으로, 상기 각 추론 엔진이 상기 유형의 추론 임무를 수행하는 부하는,
각 추론 엔진이 상기 유형의 추론 임무를 수행하는 과거 평균 부하; 또는
각 추론 엔진이 지난 번에 상기 유형의 추론 임무를 수행한 부하를 포함한다.
선택적으로, 상기 장치는,
상기 각 추론 엔진이 각 추론 임무를 수행하는 부하 피드백 정보를 수신하되, 여기서 상기 부하 피드백 정보에는 추론 임무의 유형과 부하가 포함됨; 상기 부하 피드백 정보에 근거하여 상기 각 추론 엔진이 수행했던 추론 임무 유형 및 이의 부하를 저장하는 저장 모듈을 더 포함한다.
선택적으로, 상기 비교 모듈은 구체적으로,
상기 각 추론 엔진의 총 부하를 비교하고 상기 총 부하에서 값이 제일 작은 총 부하와 대응되는 추론 엔진을 상기 현재 추론 임무를 수행하는 타깃 추론 엔진으로 한다.
본원 발명의 실시예가 제공하는 딥 러닝 추론 엔진의 스케줄링 장치(300)는 본원 발명의 임의의 실시예가 제공하는 딥 러닝 추론 엔진의 스케줄링 방법을 수행할 수 있고, 방법을 수행하는 것과 상응하는 기능 모듈 및 유리한 효과를 가진다. 본 실시예에서 상세히 설명하지 않은 내용은 본원 발명의 임의의 방법 실시예의 설명을 참조할 수 있다.
본원 발명의 실시예에 따르면, 본원 발명은 적어도 하나의 추론 엔진을 포함하는 AI칩을 더 제공하는데, 이는 상기 임의의 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 수행하기 위한 스케줄러를 더 포함한다.
본원 발명의 실시예에 따른 AI칩에서, 애플리케이션 레이어와 딥 러닝 추론 임무를 제공하는 추론 엔진 사이에 하나의 스케줄러를 삽입하므로 각 추론 엔진의 부하 상황에 따라 자동으로 각 딥 러닝 추론 임무에 대해 추론 엔진의 분배와 스케줄링을 진행하여 시스템 성능을 향상시킨다. AI칩이 안면 인식 임무에 사용될 경우, 추론 엔진이 스케줄러의 합리적인 분배와 스케줄링을 받게 되어 성능이 향상되므로 AI칩의 처리 효율을 크게 향상시키고, 나아가 안면 인식의 속도와 실행 효율을 향상시키며 안면 인식 결과를 신속하게 제공하여 사용자가 대기하는 시간을 절약할 수 있다.
본원 발명의 실시예에 따르면, 본원 발명은 전자기기와 판독 가능 저장매체를 더 제공한다.
본 출원의 실시예에 따르면, 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램을 더 제공한다. 당해 컴퓨터 프로그램의 명령이 실행될 경우, 본 출원의 임의의 실시예의 딥 러닝 추론 엔진의 스케줄링 방법이 수행된다.
도 5에 도시된 바와 같이, 이는 본원 발명의 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법의 전자기기의 블록도이다. 전자기기는 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크 벤치, 개인용 정보 단말기, 서버, 블레이드 서버, 메인 프레임 컴퓨터 및 다른 적합한 컴퓨터 등의 다양한 형태의 디지털 컴퓨터를 가리킨다. 전자기기는 또한 개인용 정보 단말기, 셀룰러 폰, 스마트 폰, 웨어러블 장치 및 다른 유사한 컴퓨팅 장치와 같은 다양한 형태의 모바일 장치를 나타낼 수 있다. 본 명세서에 도시된 구성 요소, 그들의 연결 및 관계 및 그 기능은 단지 예시에 불과하며, 본 명세서에 기술되거나 및/또는 청구된 구현을 한정하도록 의도되지 않는다.
도 5에 도시된 바와 같이, 상기 전자기기는 하나 이상의 프로세서(501), 메모리(502) 및 고속 인터페이스 및 저속 인터페이스를 포함하는 다양한 구성 요소를 연결하기 위한 인터페이스를 포함한다. 다양한 구성 요소는 서로 다른 버스를 사용하여 서로 연결되며 마더 보드에 설치되거나 필요에 따라 다른 방식으로 설치될 수 있다. 프로세서는 외부 입력/출력 장치(예를 들어, 인터페이스에 연결된 디스플레이 장치)에 GUI의 그래픽 정보를 표시하기 위해 메모리에 저장된 명령을 포함하여 전자기기 내에서 실행되는 명령을 처리할 수 있다. 다른 실시형태에서, 필요한 경우, 다수의 프로세서 및/또는 다수의 버스를 다수의 메모리와 함께 사용할 수 있다. 마찬가지로, 여러 전자기기를 연결할 수 있고, 각 장치는 단지 몇 가지 필요한 기능(예를 들어, 서버 배열, 블레이드 서버 그룹 또는 다중 프로세서 시스템)을 제공할 수 있다. 도 4는 프로세서(501)가 하나인 경우를 예를 들어 설명한다.
메모리(502)는 본원 발명에 의해 제공된 비일시적 컴퓨터 판독 가능 저장 매체이다. 여기서, 적어도 하나의 프로세서에 의해 본원 발명의 딥 러닝 추론 엔진의 스케줄링 방법을 수행하도록, 상기 메모리에는 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장된다. 본원 발명의 비 일시적 컴퓨터 판독 가능 저장 매체에는 컴퓨터로 하여금 본원 발명의 딥 러닝 추론 엔진의 스케줄링 방법을 실행하게 하는 컴퓨터 명령어가 저장된다.
메모리(502)는 비 일시적 컴퓨터 판독 가능 저장 매체로서, 비 일시적 소프트웨어 프로그램, 비 일시적 컴퓨터 실행 가능 프로그램, 본원 발명의 실시예의 딥 러닝 추론 엔진의 스케줄링 방법에 대응하는 프로그램 명령/모듈과 같은 모듈(예를 들어, 도 4에 도시된 유형 결정 모듈(301), 계산 모듈(302), 비교 모듈(303) 및 리턴 모듈(304))을 저장하기 위해 사용될 수 있다. 프로세서(501)는 메모리(502)에 저장된 비 일시적 소프트웨어 프로그램, 명령 및 모듈을 실행하여 서버의 다양한 기능적 애플리케이션 및 데이터 처리를 실행한다. 다시 말하면, 상기 방법 실시예의 딥 러닝 추론 엔진의 스케줄링 방법을 구현한다.
메모리(502)는 프로그램을 저장하기 위한 영역 및 데이터를 저장하기 위한 영역을 포함할 수 있고, 여기서 프로그램을 저장하기 위한 영역은 운영 체제 및 적어도 하나의 기능에 필요한 응용 프로그램이 저장될 수 있고; 데이터를 저장하기 위한 영역에는 본원 발명의 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 구현하는 전자기기를 사용하여 생성된 데이터가 저장될 수 있다. 또한, 메모리(502)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 자기 디스크 저장 장치, 플래시 메모리 장치 또는 다른 비 일시적 솔리드 스테이트 저장 장치와 같은 적어도 하나의 비 일시적 메모리를 포함할 수 있다. 일부 실시예에서, 메모리(502)는 프로세서(501)에 대해 원격으로 설정된 메모리를 선택적으로 포함할 수 있고, 이러한 원격 메모리는 네트워크를 통해 본원 발명의 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 구현하는 전자기기에 연결될 수 있다. 상기 네트워크의 사례는 인터넷, 인트라넷, 근거리 통신망, 이동 통신망 및 이들의 조합을 포함하지만 이에 한정되지는 않는다.
본원 발명의 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 구현하는 전자기기는 입력 장치(503) 및 출력 장치(504)를 더 포함할 수 있다. 프로세서(501), 메모리(502), 입력 장치(503) 및 출력 장치(504)는 버스를 통해 연결되거나 또는 다른 방식으로 연결될 수 있으며, 도 5에서는 버스를 통한 연결을 예시한다.
입력 장치(503)는 입력된 숫자 또는 문자 정보를 수신할 수 있고, 본원 발명의 실시예에 따른 딥 러닝 추론 엔진의 스케줄링 방법을 구현하는 전자기기의 사용자 설정 및 기능 제어와 관련된 키 신호 입력을 생성할 수 있으며, 터치 스크린, 키 패드, 마우스, 트랙 패드, 터치 패드, 포인팅 스틱, 하나 이상의 마우스 버튼, 트랙 볼, 조이스틱 및 기타 입력 장치일 수 있다. 출력 장치(504)는 디스플레이 장치, 보조 조명 장치(예를 들어, LED), 촉각 피드백 장치(예를 들어, 진동 모터) 등을 포함할 수 있다. 상기 디스플레이 장치는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이 및 플라즈마 디스플레이를 포함할 수 있지만, 이에 한정되지는 않는다. 일부 실시형태에서, 디스플레이 장치는 터치 스크린일 수 있다.
본 명세서에 설명된 시스템 및 기술의 다양한 실시형태는 디지털 전자 회로, 집적 회로 시스템, 전용 ASIC(특정 용도 지향 집적 회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합에 의해 구현될 수 있다. 이러한 다양한 실시형태는 하나 이상의 컴퓨터 프로그램에 의해 실시될 수 있고, 상기 하나 이상의 컴퓨터 프로그램은 적어도 하나의 프로그램 가능 프로세서의 프로그램 가능 시스템에 의해 실행 및/또는 해석될 수 있으며, 상기 프로그램 가능 프로세서는 전용 또는 범용 프로그램 가능 프로세서일 수 있고, 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치로부터 데이터 및 명령을 수신하며, 데이터 및 명령을 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치에 전송할 수 있다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램 또는 코드라고도 함)에는 프로그램 가능 프로세서의 기계 명령어가 포함되고, 고급 프로세스 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리 언어/기계어를 사용하여 이러한 컴퓨터 프로그램을 구현할 수 있다. 본 명세서에서 사용되는 용어 "기계 판독 가능 매체” 및 "컴퓨터 판독 가능 매체”는 프로그램 가능 프로세서에 기계 명령 및/또는 데이터를 제공하기 위해 사용되는 임의의 컴퓨터 프로그램 제품, 장비 및/또는 장치(예를 들어, 자기 디스크, 광 디스크, 메모리, 프로그램 가능 논리 장치(PLD))를 가리키며, 기계 판독 가능 신호로서 기계 명령을 수신하는 기계 판독 가능 매체를 포함한다. 용어 "기계 판독 가능 신호”는 기계 명령 및/또는 데이터를 프로그램 가능 프로세서에 제공하기 위한 임의의 신호를 지칭한다.
사용자와의 인터랙티브를 제공하기 위해, 컴퓨터에서 여기에 설명된 시스템 및 기술을 구현할 수 있다. 컴퓨터는 사용자에게 정보를 표시하기 위한 디스플레이 장치(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 키보드 및 포인팅 장치(예를 들어, 마우스 또는 트랙 볼)를 포함하고, 사용자는 상기 키보드 및 상기 포인팅 장치를 통해 정보를 입력하여 컴퓨터에 제공할 수 있다. 다른 종류의 장치를 사용하여 사용자와의 인터랙티브를 제공할 수도 있다. 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예를 들어, 시각적 피드백, 청각 피드백 또는 촉각 피드백) 일 수 있고, 임의의 형태(음성 입력, 스피치 입력 또는 촉각 입력 포함)로 사용자에 의해 발송된 정보를 수신할 수 있다.
본 명세서에 설명된 시스템 및 기술은 백 엔드 구성 요소(예를 들어, 데이터 서버)를 포함하는 컴퓨팅 시스템 또는 미들웨어 구성 요소(예를 들어, 애플리케이션 서버)를 포함하는 컴퓨팅 시스템 또는 프론트 엔드 구성 요소(예를 들어, 예를 들어, 그래픽 사용자 인터페이스 또는 웹 브라우저를 가진 사용자 컴퓨터일 수 있으며, 사용자는 그래픽 사용자 인터페이스 또는 웹 브라우저를 통해 여기에 설명된 시스템 및 기술의 실시형태와 인터랙티브 할 수 있음)를 포함하는 컴퓨팅 시스템 또는 이러한 백 엔드 구성 요소, 미들웨어 구성 요소 또는 프론트 엔드 구성 요소의 임의의 조합을 포함하는 컴퓨팅 시스템에 의해 구현될 수 있다. 시스템의 구성 요소는 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷 및 블록체인 네트워크가 포함될 수 있다.
컴퓨터 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터랙티브 한다. 클라이언트와 서버 간의 관계는 해당 컴퓨터에서 실행되고 서로 클라이언트-서버 관계가 있는 컴퓨터 프로그램에 의해 발생된다.
본원 발명의 실시예의 기술적 해결수단에 따르면, 각 추론 엔진이 현재 추론 임무를 수행한 후의 총 부하를 계산함으로써 각 추론 엔진이 현재 추론 임무를 수행하는 연산력을 가늠하고, 실제의 연산력에 따라 추론 엔진을 분배함으로써 상이한 추론 엔진 사이에 부하 평형을 이루도록 하여 시스템의 실시성과 응답 속도를 향상시키고 시스템 성능을 향상시킨다. 또한, 추론 엔진을 안면 인식에 응용할 경우, 안면 인식의 속도와 실행 효율을 향상시킬 수 있다.
상기에 도시된 다양한 형태의 과정을 통해 단계를 재정렬, 추가 또는 삭제할 수 있다는 것을 이해해야 한다. 예를 들어, 본원 발명에 설명된 각 단계들은 병렬, 순차적 또는 상이한 순서로 수행될 수 있으며, 본원 발명에 개시된 기술적 해결책이 원하는 결과를 달성할 수만 있으면, 별도로 한정되지 않는다.
상기 구체적인 실시형태는 본원 발명의 보호 범위에 대한 제한을 구성하지 않는다. 당업자는 설계 요건 및 다른 요인에 따라 다양한 변형, 조합, 하위 조합 및 대체가 이루어질 수 있다는 것을 이해해야 한다. 본원 발명의 원리와 원칙 내에서 이루어진 모든 수정, 동등한 대체 및 개선은 모두 본원 발명의 보호 범위에 포함된다.

Claims (14)

  1. 애플리케이션 레이어에서 유래된 현재 추론 임무의 스케줄링 요청에 응답하여 상기 현재 추론 임무의 유형을 결정하는 단계;
    각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 계산하는 단계;
    상기 각 추론 엔진의 총 부하를 비교하고 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정하는 단계; 및
    추론 엔진의 스케줄링 경로를 나타내기 위한 상기 타깃 추론 엔진의 인덱스를 애플리케이션 레이어에 리턴하는 단계; 를 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 방법.
  2. 제1항에 있어서,
    상기 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 계산하는 단계는,
    상기 각 추론 엔진의 과거 부하 및 각 추론 엔진이 상기 유형의 추론 임무를 수행하는 부하를 획득하는 단계; 및
    상기 각 추론 엔진의 과거 부하 및 이가 상기 유형의 추론 임무를 수행하는 부하의 합계 값을 각각 계산하고 상기 합계 값을 상기 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하로 하는 단계; 를 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 방법.
  3. 제2항에 있어서,
    상기 각 추론 엔진이 상기 유형의 추론 임무를 수행하는 부하는,
    각 추론 엔진이 상기 유형의 추론 임무를 수행하는 과거 평균 부하; 또는
    각 추론 엔진이 지난 번에 상기 유형의 추론 임무를 수행하는 부하를 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 방법.
  4. 제1항에 있어서,
    상기 각 추론 엔진이 각 추론 임무를 수행하는 부하 피드백 정보를 수신하되, 여기서 상기 부하 피드백 정보에는 추론 임무의 유형과 부하가 포함되는 단계; 및
    상기 부하 피드백 정보에 근거하여 상기 각 추론 엔진이 수행했던 추론 임무 유형 및 이의 부하를 저장하는 단계; 를 더 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 방법.
  5. 제1항에 있어서,
    상기 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정하는 단계는,
    상기 총 부하에서 값이 제일 작은 총 부하와 대응되는 추론 엔진을 상기 현재 추론 임무를 수행하는 타깃 추론 엔진으로 하는 단계를 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 방법.
  6. 애플리케이션 레이어에서 유래된 현재 추론 임무의 스케줄링 요청에 응답하여 상기 현재 추론 임무의 유형을 결정하는 유형 결정 모듈;
    각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하를 계산하는 계산 모듈;
    상기 각 추론 엔진의 총 부하를 비교하고 비교 결과에 근거하여 상기 각 추론 엔진에서 상기 현재 추론 임무를 수행하는 타깃 추론 엔진을 결정하는 비교 모듈; 및
    추론 엔진의 스케줄링 경로를 나타내기 위한 상기 타깃 추론 엔진의 인덱스를 애플리케이션 레이어에 리턴하는 리턴 모듈; 을 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 장치.
  7. 제6항에 있어서,
    상기 계산 모듈은,
    상기 각 추론 엔진의 과거 부하 및 각 추론 엔진이 상기 유형의 추론 임무를 수행하는 부하를 획득하는 획득 유닛; 및
    상기 각 추론 엔진의 과거 부하 및 이가 상기 유형의 추론 임무를 수행하는 부하의 합계 값을 각각 계산하고 상기 합계 값을 상기 각 추론 엔진이 상기 유형의 현재 추론 임무를 수행한 후의 총 부하로 하는 계산 유닛; 을 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 장치.
  8. 제7항에 있어서,
    상기 각 추론 엔진이 상기 유형의 추론 임무를 수행하는 부하는
    각 추론 엔진이 상기 유형의 추론 임무를 수행하는 과거 평균 부하; 또는
    각 추론 엔진이 지난 번에 상기 유형의 추론 임무를 수행한 부하를 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 장치.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 각 추론 엔진이 각 추론 임무를 수행하는 부하 피드백 정보를 수신하되, 여기서 상기 부하 피드백 정보에는 추론 임무의 유형과 부하가 포함됨; 상기 부하 피드백 정보에 근거하여 상기 각 추론 엔진이 수행했던 추론 임무 유형 및 이의 부하를 저장하는 저장 모듈을 더 포함하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 장치.
  10. 제6항에 있어서,
    상기 비교 모듈은,
    상기 각 추론 엔진의 총 부하를 비교하고 상기 총 부하에서 값이 제일 작은 총 부하와 대응되는 추론 엔진을 상기 현재 추론 임무를 수행하는 타깃 추론 엔진으로 하는,
    것을 특징으로 하는 딥 러닝 추론 엔진의 스케줄링 장치.
  11. 전자기기에 있어서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 연결하는 메모리; 를 포함하고,
    상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되어 있고, 상기 명령이 상기 적어도 하나의 프로세서에 의해 실행될 경우, 상기 적어도 하나의 프로세서가 제1항 내지 제5항 중 어느 한 항의 딥 러닝 추론 엔진의 스케줄링 방법을 수행하는,
    것을 특징으로 하는 전자기기.
  12. 컴퓨터 프로그램이 저장된 비일시적 컴퓨터 판독 가능 저장매체에 있어서,
    상기 컴퓨터 프로그램의 명령이 실행될 경우, 제1항 내지 제5항 중 어느 한 항의 딥 러닝 추론 엔진의 스케줄링 방법이 수행되는,
    것을 특징으로 하는 컴퓨터 프로그램이 저장된 비일시적 컴퓨터 판독 가능 저장매체.
  13. AI칩에 있어서,
    적어도 하나의 추론 엔진; 및
    제1항 내지 제5항 중 어느 한 항의 딥 러닝 추론 엔진의 스케줄링 방법을 수행하기 위한 스케줄러; 를 포함하는,
    것을 특징으로 하는 AI칩.
  14. 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램의 명령이 실행될 경우, 제1항 내지 제5항 중 어느 한 항의 딥 러닝 추론 엔진의 스케줄링 방법이 수행되는,
    것을 특징으로 하는 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램.
KR1020210075650A 2020-06-12 2021-06-10 딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체 KR20210080292A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010537231.1A CN111738446B (zh) 2020-06-12 2020-06-12 深度学习推理引擎的调度方法、装置、设备和介质
CN202010537231.1 2020-06-12

Publications (1)

Publication Number Publication Date
KR20210080292A true KR20210080292A (ko) 2021-06-30

Family

ID=72649027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210075650A KR20210080292A (ko) 2020-06-12 2021-06-10 딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체

Country Status (5)

Country Link
US (1) US20210248469A1 (ko)
EP (1) EP3893112A3 (ko)
JP (1) JP7214786B2 (ko)
KR (1) KR20210080292A (ko)
CN (2) CN111738446B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486648A (zh) * 2020-11-30 2021-03-12 北京百度网讯科技有限公司 任务调度方法、装置、系统、电子设备和存储介质
CN112883882A (zh) * 2021-02-26 2021-06-01 武汉卓鹰世纪科技有限公司 人脸识别融合处理方法和系统
CN113139660A (zh) * 2021-05-08 2021-07-20 北京首都在线科技股份有限公司 模型推理方法、装置、电子设备及存储介质
CN114020465A (zh) * 2021-11-08 2022-02-08 中兴通讯股份有限公司 模型的推理优化方法、系统、电子设备和存储介质
US11934255B2 (en) 2022-01-04 2024-03-19 Bank Of America Corporation System and method for improving memory resource allocations in database blocks for executing tasks
JP7522788B2 (ja) 2022-05-31 2024-07-25 日精樹脂工業株式会社 粉砕材混合樹脂材料の成形方法
CN114881236A (zh) * 2022-06-02 2022-08-09 广联达科技股份有限公司 一种模型推理系统、方法及设备
JP7534356B2 (ja) 2022-06-23 2024-08-14 日精樹脂工業株式会社 粉砕材樹脂材料の成形支援方法
CN117971502B (zh) * 2024-03-29 2024-06-21 南京认知物联网研究院有限公司 一种针对ai推理集群进行在线优化调度的方法与装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7934216B2 (en) * 2005-10-03 2011-04-26 International Business Machines Corporation Method and system for load balancing of computing resources
US8185909B2 (en) * 2007-03-06 2012-05-22 Sap Ag Predictive database resource utilization and load balancing using neural network model
US8869164B2 (en) * 2010-09-02 2014-10-21 International Business Machines Corporation Scheduling a parallel job in a system of virtual containers
WO2012098683A1 (ja) * 2011-01-21 2012-07-26 富士通株式会社 スケジューリング方法およびスケジューリングシステム
JP5964744B2 (ja) * 2012-12-26 2016-08-03 富士フイルム株式会社 半導体膜の製造方法
JP6904064B2 (ja) * 2017-05-29 2021-07-14 富士通株式会社 タスク配備プログラム、タスク配備方法、およびタスク配備装置
US10348658B2 (en) * 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
CN108924214A (zh) * 2018-06-27 2018-11-30 中国建设银行股份有限公司 一种计算集群的负载均衡方法、装置及系统
CN108958938B (zh) * 2018-06-29 2020-01-14 百度在线网络技术(北京)有限公司 数据处理方法、装置及设备
CN110795228B (zh) * 2018-08-03 2023-08-25 伊姆西Ip控股有限责任公司 用于训练深度学习模型的方法和制品、以及计算系统
CN111221631A (zh) * 2018-11-23 2020-06-02 中国移动通信集团有限公司 一种任务调度方法、装置及存储介质
US11263011B2 (en) * 2018-11-28 2022-03-01 International Business Machines Corporation Compound instruction set architecture for a neural inference chip
US11657124B2 (en) * 2018-12-10 2023-05-23 Apple Inc. Integrating binary inference engines and model data for efficiency of inference tasks
CN110602156A (zh) * 2019-03-11 2019-12-20 平安科技(深圳)有限公司 一种负载均衡调度方法及装置
CN110430278A (zh) * 2019-08-14 2019-11-08 平安普惠企业管理有限公司 负载均衡配置方法及装置

Also Published As

Publication number Publication date
CN111738446A (zh) 2020-10-02
JP2021121959A (ja) 2021-08-26
EP3893112A2 (en) 2021-10-13
EP3893112A3 (en) 2021-11-17
CN111738446B (zh) 2023-11-03
US20210248469A1 (en) 2021-08-12
CN115759252A (zh) 2023-03-07
JP7214786B2 (ja) 2023-01-30

Similar Documents

Publication Publication Date Title
KR20210080292A (ko) 딥 러닝 추론 엔진의 스케줄링 방법, 장치, 기기 및 매체
KR102482122B1 (ko) 태스크 병렬 처리 구현 방법, 장치, 기기 및 매체
CN110806923B (zh) 一种区块链任务的并行处理方法、装置、电子设备和介质
WO2022037039A1 (zh) 神经网络架构搜索方法以及装置
Ishii et al. Elastic stream computing with clouds
US8589929B2 (en) System to provide regular and green computing services
KR102052964B1 (ko) 컴퓨팅 스케줄링 방법 및 시스템
CN111400000A (zh) 网络请求处理方法、装置、设备和存储介质
CN112925587A (zh) 用于初始化应用的方法和装置
CN111966361A (zh) 用于确定待部署模型的方法、装置、设备及其存储介质
CN110795238A (zh) 负载计算方法、装置、存储介质及电子设备
CN112527509A (zh) 一种资源分配方法、装置、电子设备及存储介质
US20220374742A1 (en) Method, device and storage medium for running inference service platform
CN111782147A (zh) 用于集群扩缩容的方法和装置
CN115150471A (zh) 数据处理方法、装置、设备、存储介质及程序产品
CN111767059B (zh) 深度学习模型的部署方法、装置、电子设备和存储介质
CN114490048A (zh) 任务执行方法、装置、电子设备及计算机存储介质
Kwon et al. Dynamic scheduling method for cooperative resource sharing in mobile cloud computing environments
CN116932147A (zh) 流式作业处理方法、装置、电子设备及介质
CN111694648A (zh) 一种任务调度方法、装置以及电子设备
CN114579191A (zh) 一种指令发射方法、装置、电子设备及存储介质
CN115269145A (zh) 一种面向海上无人设备的高能效异构多核调度方法及装置
CN111506399B (zh) 任务迁移方法、装置、电子设备及存储介质
Zannat et al. A hybrid framework using Markov decision process for mobile code offloading
CN114253701A (zh) 任务调度方法、装置以及计算机系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal