JP7214786B2 - 深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体 - Google Patents

深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体 Download PDF

Info

Publication number
JP7214786B2
JP7214786B2 JP2021084449A JP2021084449A JP7214786B2 JP 7214786 B2 JP7214786 B2 JP 7214786B2 JP 2021084449 A JP2021084449 A JP 2021084449A JP 2021084449 A JP2021084449 A JP 2021084449A JP 7214786 B2 JP7214786 B2 JP 7214786B2
Authority
JP
Japan
Prior art keywords
inference
inference engine
load
task
type
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2021084449A
Other languages
English (en)
Other versions
JP2021121959A (ja
Inventor
ホンティアン ヤン,
シェンギー へー,
シュージュン ワン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021121959A publication Critical patent/JP2021121959A/ja
Application granted granted Critical
Publication of JP7214786B2 publication Critical patent/JP7214786B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • 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

Description

本願はコンピュータ分野に関し、特に人工知能、深層学習及びチップ技術に関し、具体的には深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体に関する。
深層学習技術の継続的な発展と成熟に伴い、深層学習技術は、顔認識など、各業界の様々なシーンで遭遇する問題を解決するために絶えず応用されている。中でも、専用のAI(Artificial Intelligence、人工知能)チップを用いて深層学習モデルを実行する推論が主流になりつつある。
一般的に、深層学習モデルを実行するためのAIチップは、CPUと同様に、多くの物理コアを持ち、同時に複数の深層学習モデルが同じAIチップ上で実行される可能性もあり、深層学習モデルごとに実行時間が異なる。では、AIチップの全ての物理コアの演算力をいかに活用してシステム性能を可能な限り向上させるかが、重要なポイントとなる。
本願の実施例は、システム性能を向上させるために、深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体を提供する。
第1の態様によれば、本願の実施例は、深層学習推論エンジンのスケジューリング方法を提供し、当該方法は、アプリケーション層からの現在の推論タスクのスケジューリング要求に応答して、前記現在の推論タスクのタイプを決定するステップと、各推論エンジンが前記タイプの現在の推論タスクを実行した後の総負荷を計算するステップと、
前記各推論エンジンの総負荷を比較し、比較結果に基づいて前記各推論エンジンから前記現在の推論タスクを実行する目標推論エンジンを決定するステップと、前記目標推論エンジンの、推論エンジンの呼び出しパスを表すためのインデックスを前記アプリケーション層に返信するステップと、を含む。
第2の態様によれば、本願の実施例は、深層学習推論エンジンのスケジューリング装置をさらに提供し、当該装置は、アプリケーション層からの現在の推論タスクのスケジューリング要求に応答して、前記現在の推論タスクのタイプを決定するためのタイプ決定モジュールと、
各推論エンジンが前記タイプの現在の推論タスクを実行した後の総負荷を計算するための計算モジュールと、前記各推論エンジンの総負荷を比較し、比較結果に基づいて前記各推論エンジンから前記現在の推論タスクを実行する目標推論エンジンを決定するための比較モジュールと、前記目標推論エンジンの、推論エンジンの呼び出しパスを表すためのインデックスを前記アプリケーション層に返信するための返信モジュールと、を備える。
第3の態様によれば、本願の実施例は、電子機器をさらに提供し、当該電子機器は、少なくとも1つのプロセッサと、該少なくとも1つのプロセッサと通信可能に接続されたメモリと、を備え、前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令が、前記少なくとも1つのプロセッサが本願の実施例のいずれかに記載の深層学習推論エンジンのスケジューリング方法を実行できるように、前記少なくとも1つのプロセッサによって実行される。
第4の態様によれば、本願の実施例は、コンピュータ命令を記憶した非一時的なコンピュータ読み取り可能な記憶媒体をさらに提供し、前記コンピュータ命令が前記コンピュータに本願の実施例のいずれかに記載の深層学習推論エンジンのスケジューリング方法を実行させるために用いられる。
第5の態様によれば、本願の実施例は、少なくとも1つの推論エンジンを含み、本願の実施例のいずれかに記載の深層学習推論エンジンのスケジューリング方法を実行するためのスケジューラーをさらに含むAIチップをさらに提供する。
第6の態様によれば、本願の実施例は、コンピュータプログラムを提供し、コンピュータ上で動作しているときに、前記コンピュータプログラムが前記コンピュータに本願の実施例のいずれかに記載の深層学習推論エンジンのスケジューリング方法を実行させるために用いられる。
本願の実施例の技術的解決手段によれば、各推論エンジンが現在の推論タスクを実行した後の総負荷を計算することにより、各推論エンジンが現在の推論タスクを実行する計算力を測定し、実際の計算力に応じて推論エンジンを割り当て、それによりシステム性能を向上させる。且つ、顔認識に推論エンジンを適用する場合、顔認識の速度と実行効率を向上させることができる。
なお、この部分に記載されている内容は、本願の実施例の肝心な又は重要な特徴を特定することを意図しておらず、本願の範囲を限定するものでもない。本願の他の特徴は、以下の説明を通じて容易に理解され、上記の選択可能な形態が有する他の効果は、以下で具体的な実施例に関連して説明されるであろう。
図面は、本技術案をよりよく理解するために使用され、本願を限定するものではない。
本願の第1の実施例による深層学習推論エンジンのスケジューリング方法の概略フローチャートである。 本願の第2の実施例による深層学習推論エンジンのスケジューリング方法の概略フローチャートである。 本願の第2の実施例による深層学習推論タスクのスケジューリングの概略図である。 本願の第3の実施例による深層学習推論エンジンのスケジューリング装置の構造概略図である。 本願の実施例の深層学習推論エンジンのスケジューリング方法を実現するための電子機器のブロック図である。
以下、図面を組み合わせて本願の例示的な実施例を説明し、理解を容易にするためにその中には本願の実施例の様々な詳細事項が含まれており、それらは単なる例示的なものと見なされるべきである。したがって、当業者は、本願の範囲及び精神から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができる。同様に、わかりやすくかつ簡潔にするために、以下の説明では、周知の機能及び構造の説明を省略する。
図1は、本願の第1の実施例による深層学習推論エンジンのスケジューリング方法の概略フローチャートであり、本実施例は、人工知能、深層学習、及びチップ技術に関わる、推論エンジンの計算力に基づいて深層学習モデルをスケジューリングする場合に適用可能である。当該方法は深層学習推論エンジンのスケジューリング装置によって実行されることができ、当該装置はソフトウェア及び/及びハードウェアの方式により実現され、好ましくは、コンピュータ機器などの電子機器に配置される。図1に示すように、当該方法は具体的にはS101~S104を含む。
S101、アプリケーション層からの現在の推論タスクのスケジューリング要求に応答して、前記現在の推論タスクのタイプを決定する。
深層学習モデルを実行するためのAIチップは、CPUと同様に、多くの物理コアを持ち、同時に複数の深層学習モデルが同じAIチップ上で実行される可能性もあり、深層学習モデルごとに実行時間が異なる。これらの深層モデルは、例えば、顔認識モデルや生体検出モデルなどのタイプであってもよい。各種類の深層モデルの毎回の前向き推論を、1回の前向き推論タスクと呼ぶ。毎回の前向き推論タスクには、実際の物理推論エンジンを指定して実行する必要がある。
通常、深層学習推論タスクは、チップのアプリケーション層により提出され、ここで、前記スケジューリング要求には少なくとも各推論タスクのタイプが含まれる。全ての推論エンジンの計算力のバランスを取り、各推論エンジンの計算例を最大化し、システム性能を向上させるために、本願の実施例はアプリケーション層と推論エンジンへの深層学習推論タスクの提出の間に1つのスケジューラーを挿入し、各推論エンジンの負荷状況に基づいて、各深層学習推論タスクの推論エンジンの割り当て及びスケジューリングがスケジューラーにより自動的に行われる。
S102、各推論エンジンが前記タイプの現在の推論タスクを実行した後の総負荷を計算する。
各推論エンジンの計算力を十分に活用し、システム性能を向上させるために、深層学習モデルのタイプによって実行時間が異なり、従って、本願の実施例では、各推論エンジンが前記タイプの現在の推論タスクを実行した後の総負荷をまず計算し、総負荷状況に基づいてスケジューリングする。ここで、前記負荷は、実行時間で特徴付けることができ、つまり、前記総負荷は、推論エンジンが履歴タスク及び現在タスクを含む全ての推論タスクを実行する総時間を表し、スケジューリングの際に、総実行時間が最も速い推論エンジンを選択して、現在の推論タスクのスケジューリングを行うことができる。
また、前記方法は、前記各推論エンジンが各推論タスクを実行する、推論タスクのタイプ及び負荷が含まれる負荷フィードバックメッセージを受信するステップと、前記負荷フィードバックメッセージに基づいて、前記各推論エンジンが実行した推論タスクタイプ及びその負荷を保存するステップと、をさらに含む。
具体的には、各推論エンジンは、推論タスクを1つ実行するたびに、当該タスクを実行する負荷状況及びタスクタイプを、負荷フィードバックチャネルを介して、負荷フィードバックメッセージを送信するようにスケジューラーにフィードバックし、スケジューラーはそれを記録して保存する。そして、スケジューラーが受信した現在の推論タスクのスケジューリング要求に対して、スケジューラーは、保存された負荷情報に基づいて、各推論エンジンが前記タイプの現在の推論タスクを実行した後の総負荷を統計して計算でき、またリアルタイムで統計し、負荷フィードバックメッセージを受信するたびに、統計状況を更新し、次回のスケジューリングの基準にすることもできる。
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は本願の任意の実施例にて提供される深層学習推論エンジンのスケジューリング方法を実行でき、実行方法に対応する機能モジュールと有益な効果を備える。本実施例で詳細に説明されていない内容については、本願の任意の方法例における説明を参照することができる。
本願の実施例によれば、本願は、少なくとも1つの推論エンジンを含み、上記のいずれかの実施例に記載の深層学習推論エンジンのスケジューリング方法を実行するためのスケジューラーをさらに含む、AIチップをさらに提供する。
本願の実施例のAIチップにおいて、アプリケーション層と推論エンジンへの深層学習推論タスクの提出の間に1つのスケジューラーが挿入されるため、各推論エンジンの負荷状況に応じて各深層学習推論タスクに推論エンジンの割り当て及びスケジューリングを自動的に行うことを実現し、それによりシステム性能を向上させる。AIチップが顔認識タスクに適用されると、推論エンジンがスケジューラーによって合理的に割り当てられ、スケジュールされるため、性能が向上し、従って、AIチップの処理効率も大幅に向上し、さらに顔認識の速度及び実行効率が向上し、顔認識結果が迅速に得られ、ユーザの待ち時間が短縮される。
本願の実施例によれば、本願は、電子機器及び読み取り可能な記憶媒体をさらに提供する。
図5は、本願の実施例による深層学習推論エンジンのスケジューリング方法の電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタルプロセッサ、携帯電話、スマートフォン、ウェアラブルデバイス、他の類似するコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本願の実現を制限することを意図したものではない。
図5に示すように、当該電子機器は、1つ又は複数のプロセッサ501と、メモリ502と、高速インターフェース及び低速インターフェースを備える各コンポーネントを接続するためのインターフェースと、を備える。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に応じて他の方式で取り付けることができる。プロセッサは、電子機器内で実行される命令を処理することができ、当該命令は、外部入力/出力装置(例えば、インターフェースに結合されたディスプレイデバイスなど)にGUIの図形情報をディスプレイするためにメモリ内又はメモリに記憶されている命令を含む。他の実施方式では、必要に応じて、複数のプロセッサ及び/又は複数のバスを、複数のメモリと一緒に使用することができる。同様に、複数の電子機器を接続することができ、各機器は、一部の必要な操作(例えば、サーバアレイ、1グループのブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。図4では、1つのプロセッサ501を例とする。
メモリ502は、本願により提供される非一時的なコンピュータ読み取り可能な記憶媒体である。その中で、前記メモリには、少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記少なくとも1つのプロセッサが本願により提供される深層学習推論エンジンのスケジューリング方法を実行するようにする。本願の非一時的なコンピュータ読み取り可能な記憶媒体には、コンピュータに本願により提供される深層学習推論エンジンのスケジューリング方法を実行させるためのコンピュータ命令が記憶されている。
メモリ502は、非一時的なコンピュータ読み取り可能な記憶媒体として、本願の実施例における深層学習推論エンジンのスケジューリング方法に対応するプログラム命令/モジュール(例えば、図4に示すタイプ決定モジュール301、計算モジュール302、比較モジュール303、及び返信モジュール304)のような、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶する。プロセッサ501は、メモリ502に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記の方法の実施例における深層学習推論エンジンのスケジューリング方法を実現する。
メモリ502は、ストレージプログラムエリアとストレージデータエリアとを備えることができ、その中で、ストレージプログラムエリアは、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータエリアは、本願の実施例の深層学習推論エンジンのスケジューリング方法を実現する電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリ502は、高速ランダムアクセスメモリを備えることができ、非一時的なメモリをさらに備えることができ、例えば、少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリ502は、プロセッサ501に対して遠隔に設定されたメモリを選択的に備えることができ、これらの遠隔メモリは、ネットワークを介して本願の実施例の深層学習推論エンジンのスケジューリング方法を実現する電子機器に接続されることができる。上記のネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定されない。
本願の実施例の深層学習推論エンジンのスケジューリング方法を実現する電子機器は、入力装置503と出力装置504とをさらに備えることができる。プロセッサ501、メモリ502、入力装置503、及び出力装置504は、バス又は他の方式を介して接続することができ、図5では、バスを介して接続することを例とする。
入力装置503は、入力された数字又は文字情報を受信し、本願の実施例の深層学習推論エンジンのスケジューリング方法を実現する電子機器のユーザ設定及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置504は、ディスプレイデバイス、補助照明装置(例えば、LED)、及び触覚フィードバックデバイス(例えば、振動モータ)などを備えることができる。当該ディスプレイデバイスは、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを備えることができるが、これらに限定されない。いくつかの実施形態で、ディスプレイデバイスは、タッチスクリーンであってもよい。
本明細書で説明されるシステムと技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施され、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを備えるプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、専用又は汎用のプログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令を含むことができ、高レベルのプロセス及び/又は対象指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することができる。本明細書に使用されるような、「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」の用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。「機械読み取り可能な信号」の用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
ユーザとのインタラクションを提供するために、コンピュータ上で、ここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形態のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形態(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
ここで説明されるシステム及び技術は、バックエンドコンポーネントを備えるコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを備えるコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを備えるコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータであり、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを備えるコンピューティングシステムで実施することができる。任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットと、ブロックチェーンネットワークと、を含む。
コンピュータシステムは、クライアントとサーバとを備えることができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、かつ互いにクライアント-サーバの関係を有するコンピュータプログラムによって、クライアントとサーバとの関係が生成される。
本願の実施例の技術的解決手段によれば、各推論エンジンが現在の推論タスクを実行した後の総負荷を計算することにより、各推論エンジンが現在の推論タスクを実行する計算力を測定し、実際の計算力に応じて推論エンジンを割り当て、異なる推論エンジン間で負荷均衡を達成させ、システムのリアルタイム性と応答速度を向上させ、それによりシステム性能を向上させる。且つ、顔認識に推論エンジンを適用する場合、顔認識の速度と実行効率を向上させることができる。
上記に示される様々な形態のフローを使用して、ステップを並べ替え、追加、又は削除することができる。例えば、本願に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本願で開示されている技術案が所望の結果を実現することができれば、本明細書では限定しない。
上記の具体的な実施方式は、本願の保護範囲を制限するものではない。当業者は、設計要件と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。本願の精神と原則内で行われる任意の修正、同等の置換、及び改善などは、いずれも本願の保護範囲内に含まれるべきである。

Claims (14)

  1. コンピュータによって実行される深層学習推論エンジンのスケジューリング方法であって、
    アプリケーション層からの現在の推論タスクのスケジューリング要求に応答して、前記現在の推論タスクのタイプを決定するステップと、
    各推論エンジンが前記タイプの現在の推論タスクを実行すると仮定した場合の総負荷を計算するステップと、
    前記各推論エンジンの総負荷を比較し、比較結果に基づいて前記各推論エンジンから前記現在の推論タスクを実行する目標推論エンジンを決定するステップと、
    前記目標推論エンジンの、推論エンジンの呼び出しパスを表すためのインデックスを前記アプリケーション層に返信するステップと、
    を含む、深層学習推論エンジンのスケジューリング方法。
  2. 各推論エンジンが前記タイプの現在の推論タスクを実行すると仮定した場合の総負荷を計算する前記ステップが、
    前記各推論エンジンの履歴負荷及び各推論エンジンが前記タイプの推論タスクを実行する負荷を取得するステップと、
    前記各推論エンジンの履歴負荷と、前記タイプの推論タスクを実行する負荷との合計値をそれぞれ計算し、前記合計値を前記各推論エンジンが前記タイプの現在の推論タスクを実行した後の総負荷とするステップと、
    を含む請求項1に記載の方法。
  3. 前記各推論エンジンが前記タイプの推論タスクを実行する負荷が、
    各推論エンジンが過去に前記タイプの推論タスクを実行した平均負荷、又は、
    各推論エンジンが前回に前記タイプの推論タスクを実行した負荷、
    を含む請求項2に記載の方法。
  4. 前記各推論エンジンが各推論タスクを実行する、推論タスクのタイプ及び負荷が含まれる負荷フィードバックメッセージを受信するステップと、
    前記負荷フィードバックメッセージに基づいて、前記各推論エンジンが実行した推論タスクタイプ及びその負荷を保存するステップと、
    を含む請求項1から3のいずれか一項に記載の方法。
  5. 比較結果に基づいて前記各推論エンジンから前記現在の推論タスクを実行する目標推論エンジンを決定する前記ステップが、
    前記総負荷のうち値が最も小さい総負荷に対応する推論エンジンを、前記現在の推論タスクを実行する目標推論エンジンとするステップを含む請求項1に記載の方法。
  6. アプリケーション層からの現在の推論タスクのスケジューリング要求に応答して、前記現在の推論タスクのタイプを決定するためのタイプ決定モジュールと、
    各推論エンジンが前記タイプの現在の推論タスクを実行すると仮定した場合の総負荷を計算するための計算モジュールと、
    前記各推論エンジンの総負荷を比較し、比較結果に基づいて前記各推論エンジンから前記現在の推論タスクを実行する目標推論エンジンを決定するための比較モジュールと、
    前記目標推論エンジンの、推論エンジンの呼び出しパスを表すためのインデックスを前記アプリケーション層に返信するための返信モジュールと、
    を備える、深層学習推論エンジンのスケジューリング装置。
  7. 前記計算モジュールが、
    前記各推論エンジンの履歴負荷及び各推論エンジンが前記タイプの推論タスクを実行する負荷を取得するための取得ユニットと、
    前記各推論エンジンの履歴負荷と、前記タイプの推論タスクを実行する負荷との合計値をそれぞれ計算し、前記合計値を前記各推論エンジンが前記タイプの現在の推論タスクを実行した後の総負荷とするための計算ユニットと、
    を備える請求項6に記載の装置。
  8. 前記各推論エンジンが前記タイプの推論タスクを実行する負荷が、
    各推論エンジンが過去に前記タイプの推論タスクを実行した平均負荷、又は、
    各推論エンジンが前回に前記タイプの推論タスクを実行した負荷、
    を含む請求項7に記載の装置。
  9. 前記各推論エンジンが各推論タスクを実行する、推論タスクのタイプ及び負荷が含まれる負荷フィードバックメッセージを受信し、前記負荷フィードバックメッセージに基づいて、前記各推論エンジンが実行した推論タスクタイプ及びその負荷を保存するための保存モジュールを含む請求項6から8のいずれか一項に記載の装置。
  10. 前記比較モジュールが、前記各推論エンジンの総負荷を比較し、前記総負荷のうち値が最も小さい総負荷に対応する推論エンジンを、前記現在の推論タスクを実行する目標推論エンジンとするために用いられる請求項6に記載の装置。
  11. 少なくとも1つのプロセッサと、
    該少なくとも1つのプロセッサと通信可能に接続されるメモリと、
    を備え、
    前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令が、前記少なくとも1つのプロセッサが請求項1から5のいずれか一項に記載の深層学習推論エンジンのスケジューリング方法を実行できるように、前記少なくとも1つのプロセッサによって実行される電子機器。
  12. コンピュータ命令を記憶した非一時的なコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ命令がコンピュータに請求項1から5のいずれか一項に記載の深層学習推論エンジンのスケジューリング方法を実行させるために用いられる非一時的なコンピュータ読み取り可能な記憶媒体。
  13. 少なくとも1つの推論エンジンを含み、
    請求項1から5のいずれか一項に記載の深層学習推論エンジンのスケジューリング方法を実行するためのスケジューラーを含むAIチップ。
  14. コンピュータ上で動作しているときに、請求項1から5のいずれか一項に記載の深層学習推論エンジンのスケジューリング方法を前記コンピュータに実行させるコンピュータプログラム。

JP2021084449A 2020-06-12 2021-05-19 深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体 Active JP7214786B2 (ja)

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 (2)

Publication Number Publication Date
JP2021121959A JP2021121959A (ja) 2021-08-26
JP7214786B2 true JP7214786B2 (ja) 2023-01-30

Family

ID=72649027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021084449A Active JP7214786B2 (ja) 2020-06-12 2021-05-19 深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体

Country Status (5)

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

Families Citing this family (7)

* 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
JP2023176138A (ja) 2022-05-31 2023-12-13 日精樹脂工業株式会社 粉砕材混合樹脂材料の成形方法
JP2024001975A (ja) 2022-06-23 2024-01-11 日精樹脂工業株式会社 粉砕材樹脂材料の成形支援方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012098683A1 (ja) 2011-01-21 2012-07-26 富士通株式会社 スケジューリング方法およびスケジューリングシステム
US20180138267A1 (en) 2012-12-26 2018-05-17 Fujifilm Corporation Semiconductor film, solar cell, light-emitting diode, thin film transistor, and electronic device
JP2018200603A (ja) 2017-05-29 2018-12-20 富士通株式会社 タスク配備プログラム、タスク配備方法、およびタスク配備装置
JP2020510929A (ja) 2017-06-15 2020-04-09 グーグル エルエルシー チャット会話において組み込みアプリケーションで使用するための提案アイテム

Family Cites Families (9)

* 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
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 平安普惠企业管理有限公司 负载均衡配置方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012098683A1 (ja) 2011-01-21 2012-07-26 富士通株式会社 スケジューリング方法およびスケジューリングシステム
US20180138267A1 (en) 2012-12-26 2018-05-17 Fujifilm Corporation Semiconductor film, solar cell, light-emitting diode, thin film transistor, and electronic device
JP2018200603A (ja) 2017-05-29 2018-12-20 富士通株式会社 タスク配備プログラム、タスク配備方法、およびタスク配備装置
JP2020510929A (ja) 2017-06-15 2020-04-09 グーグル エルエルシー チャット会話において組み込みアプリケーションで使用するための提案アイテム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7214786B2 (ja) 深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体
KR102482122B1 (ko) 태스크 병렬 처리 구현 방법, 장치, 기기 및 매체
CN111597028B (zh) 用于任务调度的方法和装置
EP3862894A1 (en) Data processing methods, data processing apparatuses, electronic devices, and storage media
CN110806923A (zh) 一种区块链任务的并行处理方法、装置、电子设备和介质
CN112000450A (zh) 神经网络架构搜索方法以及装置
CN111506401B (zh) 自动驾驶仿真任务调度方法、装置、电子设备及存储介质
US11769125B2 (en) Method and apparatus for processing transaction requests in blockchain, device and medium
CN111459645B (zh) 一种任务调度方法、装置和电子设备
JP7282823B2 (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
CN111400000A (zh) 网络请求处理方法、装置、设备和存储介质
CN111880914A (zh) 资源调度方法、资源调度装置、电子设备和存储介质
KR20210092689A (ko) 그래프 데이터베이스의 순회 방법, 장치, 설비 및 저장매체
CN110688229B (zh) 任务处理方法和装置
CN111488492A (zh) 用于检索图数据库的方法和装置
CN115080209A (zh) 系统资源调度方法、装置、电子设备及存储介质
CN111694648B (zh) 一种任务调度方法、装置以及电子设备
CN114490048A (zh) 任务执行方法、装置、电子设备及计算机存储介质
CN111290744B (zh) 流式计算作业处理方法、流式计算系统及电子设备
CN111767149A (zh) 调度方法、装置、设备及存储设备
CN115952054A (zh) 一种仿真任务资源管理方法、装置、设备及介质
CN112817965B (zh) 一种数据拼接方法、装置、电子设备和存储介质
CN111506399B (zh) 任务迁移方法、装置、电子设备及存储介质
CN114253701A (zh) 任务调度方法、装置以及计算机系统
CN113760968A (zh) 数据查询方法、装置、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220912

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230118

R150 Certificate of patent or registration of utility model

Ref document number: 7214786

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150