JP6539236B2 - 効果的なニューラルネットワークの配置に用いるシステム及び方法 - Google Patents

効果的なニューラルネットワークの配置に用いるシステム及び方法 Download PDF

Info

Publication number
JP6539236B2
JP6539236B2 JP2016172848A JP2016172848A JP6539236B2 JP 6539236 B2 JP6539236 B2 JP 6539236B2 JP 2016172848 A JP2016172848 A JP 2016172848A JP 2016172848 A JP2016172848 A JP 2016172848A JP 6539236 B2 JP6539236 B2 JP 6539236B2
Authority
JP
Japan
Prior art keywords
batch
data
processing
requests
request
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
JP2016172848A
Other languages
English (en)
Other versions
JP2017050001A (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.)
Baidu USA LLC
Original Assignee
Baidu USA LLC
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 Baidu USA LLC filed Critical Baidu USA LLC
Publication of JP2017050001A publication Critical patent/JP2017050001A/ja
Application granted granted Critical
Publication of JP6539236B2 publication Critical patent/JP6539236B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

本出願はネットワーク管理に関し、より具体的には、例えばニューラルネットワーク配置のような計算集約的な問題に用いるシステム及び方法に関する。
[優先権主張]
本出願は2015年9月4日に出願された第62/214,816号米国特許出願の優先権と、本出願は2016年7月13日に出願された第15/209,499号米国特許出願の優先権とを主張し、前記特許文献がその全部内容及びすべての目的のために援用するように本願に組み込んだ。
図1はディープニューラルネットワークを配置するための従来の典型的なアーキテクチャを示す。リクエストがインターネットを介してデータセンターにストリーミングされる。これらのリクエストはロードバランサ102でデータセンター110にある複数のサーバー104の中の1つにルーティングされる。各リクエスト106はこれらのサーバー104の中の1つに実行されている単一のワーカースレッドで処理され、その後、サーバー104が結果108を戻す。
1つのスレッドのみで各ニューラルネットワークの中の1つを実行するためのコードを実行する必要があるので、コードが容易に書き込まれて、このため、アーキテクチャ100を理解しやすい。ワーカースレッドは直ちに各リクエスト106を処理するため、更に遅延を容易に推論し、且つ遅延は一般的に最小化されたものである。最後、各リクエスト106は単独に処理されるので、当該アーキテクチャによりフェイルオーバーをより容易に推論する。
システム100を実施しやすいが、非常に効果的なものではない。このため、より効果的なニューラルネットワーク配置を提供するとともに処理要求を満たすシステム及び方法が必要である。
一つの様態において、本出願は、データ処理リクエストのスループットを向上させるバッチ方法を提供し、この方法は、少なくとも部分的に未知のタイミングで、ニューラルネットワークモデルを使用することにより処理しようとする、1つ又は複数の制約で制限されるリクエストに関連するデータを受信するステップと、前記1つ又は複数の制約における少なくとも1つを利用して、前記データにおける少なくとも一部をバッチに動的集合するステップと、複数のスレッドを統合する単一スレッドにより前記バッチを処理し、メモリから前記ニューラルネットワークモデルにロードされた負荷をシェアリングし、データスループットを向上させるステップと、を含む。
もつ一つの様態において、本出願は、ニューラルネットワークモデルに関連するリクエストを処理するためのバッチ処理システムを提供し、このシステムは、1つ又は複数の計算設備を含み、各計算設備は、少なくとも1つのプロセッサ及び記憶設備と、異なるリクエストに関連するデータを受信し、更に1つ又は複数の制約により少なくとも2つ異なるリクエストからのデータブロックをバッチに動的集合するバッチビルダーアセンブリと、前記バッチビルダーと通信可能に連結されて、複数のスレッドを統合する単一スレッドにおいて前記バッチを処理し、メモリから前記ニューラルネットワークモデルにロードされた負荷をシェアリングし、データスループットを向上させる計算エンジンアセンブリと、を含む。
さらに、もつ一つの様態において、本出願は、バッチビルダーを提供し、このバッチビルダーは、1つ又は複数の指令シーケンスを含む非一時的コンピュータ可読媒体を含み、前記1つ又は複数の指令シーケンスが少なくとも1つのプロセッサで実行される場合に、少なくとも部分的に未知のタイミングで、ニューラルネットワークモデルを使用することにより処理しようとする、1つ又は複数の制約で制限されるリクエストに関連するデータを受信するステップと、前記1つ又は複数の制約における少なくとも1つを利用して、前記データにおける少なくとも一部をバッチに動的集合するステップと、複数のスレッドを統合する単一スレッドにより前記バッチを処理し、メモリから前記ニューラルネットワークモデルにロードされた負荷をシェアリングし、データスループットを向上させるステップと、が実行される。
本出願の実施形態を参照して、これらの実施形態の例示が図面に示されてもよい。図面は説明するためのものだけであり、限定するためのものではない。本出願はこれらの実施形態のコンテキストにおいて総体に説明したが、これらの説明が本出願の範囲をこれらの具体的な実施形態に限定するためのものではないことを理解すべきである。図面におけるアイテムは一定の縮尺で描かれていない。
ディープニューラルネットワークを配置するための典型的なアーキテクチャ構成を示す。 本出願の実施形態に係るニューラルネットワークを配置するためのアーキテクチャ構成を示す。 本出願の実施形態に係るニューラルネットワークの配置に利用可能な例示的なサーバーアーキテクチャを示す。 本出願の実施形態に係るニューラルネットワークの配置に用いられてデータ処理リクエストのスループットを増加する例示的なバッチ方法を示す。 本出願の実施形態に係る前処理を利用する例示的なバッチ方法を示す。 従来の設定において80 ms内において4つのストリームからのデータブロックを処理する場合のグラフを示す。 本出願の実施形態に係る、バッチ設定において80 ms内に20個のストリームからのデータブロックを処理する場合の例示的なグラフを示す。 本出願の実施形態に係る計算設備/情報処理システムの簡略化したブロック図を示す。
以下の明細書において、解釈するために、具体的な細部を説明することにより本出願に対する理解を提供する。しかし、当業者にとって、明らかに本出願はこれらの細部がない場合にも実現されることができる。なお、当業者は、以下のように、本出願の実施形態が多種の様態、例えば有形のコンピュータ可読媒体での過程、装置、システム、設備又は方法で実現されることができると認識すべきである。
図面に示すアセンブリ又はモジュールは本出願の例示的な実施形態の説明であり、本出願の混乱を避けるためものである。理解すべきであることは、明細書全体において、アセンブリがサブユニットを含むことができる単独な機能ユニットと記述されてもよいが、当業者は、各アセンブリ又はその部材が単独なアセンブリに区分されることができ、又は統合される(単一のシステム又はアセンブリの内部に集積されることを含む)ことができることを認識すべきである。本文に議論された機能又は操作がアセンブリとして実現されることができることを注意すべきである。アセンブリはソフトウェア、ハードウェア又はその組み合わせとして実現されることができる。
なお、図面内のアセンブリ又はシステムの間の接続は直接接続に限定されない。より具体的には、これらのアセンブリの間のデータは中間アセンブリで変更され、フォーマット再プログラミングされ、又は他の方式で改変されることができる。また、付加的接続又はより少ない接続を利用することができる。また、注意すべきであることは、用語「連結」、「接続」又は「通信連結」が直接接続、1つ又は複数の中間設備で実現される非直接接続及び無線接続を含むことを理解すべきである。
明細書において、「1つの実施形態」、「好ましい実施形態」、「実施形態」又は「各実施形態」とは、実施形態を合わせて説明した具体的な特徴、構造、特性又は機能が本出願の少なくとも1つの実施形態に含まれ、且つ1つの以上の実施形態に存在することができることを意味する。また、本明細書における各箇所には、上記語句の出現は必ずしもすべて同じ実施形態を参照しない。
明細書における各箇所において、一部の用語の使用は例示するためであり、限定と解釈されるべきではない。サービス、機能又はリソースは単一のサービス、機能又はリソースに限定されず、これらの用語の使用は分散式又は集合式の1組の関連サービス、機能又はリソースであってよいことを示すことができる。
用語「含む(include)」、「含んでいる(including)」、「有する(comprise)」及び「有している(comprising)」はオープンエンドの用語と理解すべきであり、以下の任意のリストは例示だけであり、リストされる項目に限定されることを意味しない。本文に使用される任意のタイトルは組織するためのものであり、本明細書又は請求項の範囲を限定すべきではない。
なお、当業者は、(1)あるステップを選択的に実行してもよい。(2)ステップは本文に述べた具体的な順序に限定されない。(3)あるステップを異なる順序で実行してもよい。(4)あるステップを同時に実行してもよいことを理解すべきである。
現在の特許開示には例示としてニューラルネットワーク配置及び分類リクエストが利用されるが、本出願がこれに限定されず、本出願の様々な様態は他の目的のために応用又は実施されることができ、他の計算集約的な問題を含むが、これらに限定されないことを注意すべきである。
A. 概要
広告プレースメント、画像及びビデオ認識、音声認識、言語処理、ウェブページ捜索などを含む様々な分野において、ディープニューラルネットワークは日々重要なものになる。多くの重要タスクに対して、ディープニューラルネットワークは比較的良好な精度を提供するが、大規模なディープニューラルネットワークの配置は高価なものである可能性がある。これは主に大量の数学演算を必要とする可能性がある大型ニューラルネットワークを使用する分類データ点の計算負荷に起因する。
典型的なデータセンターのアーキテクチャは大型ニューラルネットワークの配置を複雑にする。リクエストがインターネットを介して進入することに従って、データセンターは複数のサーバーでこれらのリクエストに対してロードバランシングを行う。信頼できるサービスを提供するために、サーバー又はネットワークが故障した場合に、データセンターは更に、リクエストが改めてルーティングされる可能なフェイルオーバー能力を提供すべきである。なお、インターネットサービスは低遅延応答を要求することによりサービスのインタラクティブを保持する傾向がある。これらの要求はニューラルネットワークを配置するための従来システムの生成をもたらし、従来システムにおいて、各リクエストはロードバランサで計算を実行するワークサーバーに送信される。各リクエストは、サービスが単一スレッドで提供されて、遅延及び弾性要求を制御する。
計算から考えれば、プロセッサを使用して複数の独立スレッドからの複数のリクエストにサービスを提供することは最も好ましいものではない。これは、各スレッドがメモリから同じニューラルネットワークモデルを繰り返してロードするからである。単一スレッドにおいて複数のリクエストにサービスを提供することはより効果的であり、スレッドプールを組織化(orchestrate)してメモリからニューラルネットワークモデルをロードする負荷をシェアリングすることによって、負荷の再利用を促進する。換言すれば、スレッドとユーザ(ユーザがそれぞれ単独にニューラルネットワークモデルをロードする複数のスレッドに割り当てられる)との一対一の関係を除去して、代わりに、1つのスレッドを使用してすべてのリクエストを総合的に処理することにより、複数のスレッドはニューラルネットワークのロード及び(マトリックスからマトリックスへの乗算)計算の実行の際に協力し合うことができる。
本文にはバッチシステム及び方法の実施形態を提供し、当該システム及び方法は公共ニューラルネットワークモデルの単一スレッドをシェアして複数のリクエストを総合的処理することを可能にさせ、これにより、各リクエストの計算がより効果的になる。実施形態において、バッチシステムを構築することによりリクエストを分類する効率を明らかに向上させ、同時に厳しい遅延制約を満たすとともにインタラクティブを保持する。バッチシステムの実施形態は分類リクエストを完全に形成された環境で使用されることができるだけでなく、データストリームに対して分類を実行する際に使用されることができる。
以上のように、典型的なアーキテクチャを容易に推論することができるが、その計算効率が低い。これは、主に実際に多くの場合に同じモデルを使用したが、各ワーカースレッドがニューラルネットワークモデルを独立にロードするからである。このため、ニューラルネットワークを配置する従来方式はメモリから同じニューラルネットワークモデルをロード及びリロードする必要があるので、大量のメモリ帯域幅を浪費した。したがって、ニューラルネットワークの構成をより効果に配置するシステム及び方法を実現することを期待とする。
B. 例示的な実施形態の実現
図2は本出願の実施形態に係るニューラルネットワークを配置するためのアーキテクチャ構成を示す。アーキテクチャ200は、データセンター210を含み、データセンター210はロードバランサ202及び1つ又は複数のサーバー204を含んでもよく、1つ又は複数のサーバー204はそれぞれバッチビルダー214及び計算エンジン216を含む。
実施形態において、図1に示すように、ロードバランサ202はデータセンター210におけるサーバー204にリクエスト206を送信する。実施形態において、ロードバランサ202はデータセンター210のサーバー204でリクエストをバランシングすることによりサーバーの使用効率を保持する。実施形態において、既に具体的なサーバー204に送信されたリクエストのために到達したデータは同一のサーバー204にルーティングされる。図2におけるサーバー204は、バッチビルダー214を含み、実施形態において、バッチビルダー214はリクエスト206を、計算エンジン216に入力されたデータ処理リクエストのバッチに動的集合する。実施形態において、バッチビルダー214はアプリケーションレベル制約(例えば、分類に必要な端末ユーザの計算遅延を実行する)又は計算エンジン216の性能又はこの両者に基づいてバッチを生成する。
実施形態において、バッチビルダー214で生成されたリクエストバッチはデータブロックを含む。データブロックの長さがロードバランサ202で送信されてデータセンター210に到達するデータパック212の長さと同じである必要がないことを理解すべきである。
図3は本出願の実施形態に係るニューラルネットワークの配置に利用可能な例示的なサーバーアーキテクチャを示す。当該アーキテクチャの実施形態は任意の計算エンジンを効果的に使用することを可能にさせ、ニューラルネットワークの分類を実行する。例えば、中央処理装置(CPU)312、加速器314(例えばフィールドプログラマブルゲートアレイ(FPGA)、グラフ処理ユニット(GPU))又は任意の他の処理/情報処理設備でマルチスレッドの実現方式を使用することができる。実施形態において、図3に示すように、計算エンジンはメインサーバーCPU 308とメモリ306をシェアするプロセッサ305で実現することができ、又は既にその自身のメモリ320を有するプロセッサ310で実現することができる。
実施形態において、バッチビルダーはリクエストデータ及び結果(例えば、加速器314にデータを伝達するか、又は加速器314からのデータを伝達する)を伝達する際に関連する遅延を隠すことに用いることができる。例えば、バッチビルダーはリクエストを受信することができるとともに計算エンジンにバッチを送信することができる。次のバッチからのデータを受信する同時に前のバッチからのデータを伝達するので、バッチビルダーは遅延を効果的に隠すか又は低減することができる。
ニューラルネットワークを推定する際に本出願の実施形態が従来の方法に比べて効果的であり、バッチビルダーで生成されたバッチは複数のユーザからのデータを含むとともにシェアされるニューラルネットワークモデルで処理されるからであることを注意すべきである。かなり長い時間において、既に多種のタイプのプロセッサの演算強度が向上された。これは、メモリ帯域幅が相対的により重要になり、数学演算が相対的にコストが低くなることを意味とする。これによりメモリ帯域幅を節約し、したがって、プロセッサの演算強度がより高くなる場合に特に有利である。本出願の実施形態は更にスループット指向のプロセッサ、例えば大量の作業を必要とし効率を飽和させるGPUに良く適用される。
以下、一般的且つ挑戦的な場合に対して例示的な実現方式を提供し、一定の長さ又は可変長さを有する、順序があるパケットシーケンスを含むストリーム入力を分類するとともに、遅延制約を満たすことに関する。実施形態において、各パケットを(無意味な)ストリームを有する最後のパケットに指定することにより、ほぼ同じ方式で非ストリーム入力を処理する。
本文に使用されるように、用語「リクエスト」、「ユーザリクエスト」、「データ処理リクエスト」、「ストリーム」、「ストリーム入力」及び「データストリーム」は互換的に使用されてもよい。用語「ユーザ」と「ストリーム」との関連は、各ストリームが単一のユーザに関連することである。用語「ブロック」はニューラルネットワークの入力大きさに関連するデータの大きさを示す。用語「パケット」はネットワークで伝送することができる1組のデータを示すと理解されるべきである。用語「パケット」は本出願の実施形態をイーサネット(登録商標)又は三層構造ネットワークに制限すると解釈されるべきではない。用語「パケット」、「フレーム」、「データ」、「データグラム」、「セル」又は「データトラフィック」は互換的に使用されてもよく、且つ1組のデータを示す他の用語で代替されてもよい。
ニューラルネットワークモデルでデータを処理することを仮定したが、当業者は、本出願の実施形態によれば、他の技術、モデル又はネットワークを利用してデータを処理することができることを理解すべきである。
「データ」とは、複数のタイプの入力データにおける任意の入力データである。例えば、音声設定において音声を転写する場合、各パケットは複数のミリ秒(例えば、80ms)の音声周波数を示すことができる。ビデオ環境において、各パケットは現在の画像と前の画像との間の差別を示すことができる。画像認識において、各パケットは画像全体のタイルを示すことができる。
実施形態において、遅延制約はストリームにおける最後のパケットが到達した後に一定の時間量においてストリーム全体を処理することを表明することができる。これは、
Tストリーム全体処理<T最後のパケット到達+Δ許容可能な遅延と示されることができる。
Tストリーム全体処理はストリーム全体の処理を完成すべきである時間を示し、T最後のパケット到達は最後のパケットの到達時間を示し、及びΔ許容可能な遅延はアプリケーション依存の許容可能な遅延を示す。遅延が一般的に非常に厳しいオンライン設定において、Δ許容可能な遅延は1秒間より小さいことが好ましい。
実施形態において、1つの目標は同時にできるだけ多いストリームを処理し、且つ遅延制約(例えば、高いスループットを保持する)を満たしてよい。対照的に、従来方法はそれぞれ独立に各ストリームを処理することにより、低遅延を確保するとともに柔軟性を保持する。
本出願の実施形態において、複数のリクエストは同時にニューラルネットワークを実現する計算エンジンに伝送されるようなモデル/アーキテクチャを応用した。実施形態において、バッチ方法を使用することによりニューラルネットワークは単一ユーザのためにデータを処理する方式と類似する方式で同時に存在する複数のユーザのためにデータを処理する。図4は本出願の実施形態に係るニューラルネットワークを配置することによりデータがリクエストを処理するスループットを向上させる例示的なバッチ方法を示す。ステップ402において、バッチビルダーが例えば非同期方式でユーザに関連する複数のパケットを含むデータ処理リクエストを受信する場合、バッチ方法を起動する。パケットはそれぞれのユーザに関連するストリームに到達することができる。パケットは例えば複数のユーザからのデータストリームをロードバランシングするロードバランサによって到達されることができる。実施形態において、パケットの到達時間は未知のものであってよく、アプリケーションレベル制約で制限され、例えば遅延制約、計算エンジンの性能特性等である。
ステップ404において、バッチビルダーはアプリケーションレベル制約内でリクエストからのデータをバッチに動的集合し、当該バッチは1つ又は複数のリクエスト(例えば状態リクエスト)からのデータを含む。
ステップ406において、メモリに一回のみロードする及び/又はメモリからロードされた公共ニューラルネットワークを利用して当該バッチを処理(例えば、音声周波数ストリームに分類を実行する)し、それにより計算遅延要求を低減し、これによりデータストリームのスループットを増加する。
ステップ408において、結果を出力し、例えば分類結果を出力する。このため、メモリ帯域幅を節約するとともに計算効率を向上させる。
実施形態において、バッチビルダーは単一スレッドで実行し、且つ以下のタスクを有する。
a)データを前処理する。
b)前処理されたデータを、複数のユーザでシェアされるバッチマトリックスにパッケージする。
c)計算エンジンに当該バッチマトリックスを転送する。
実施形態において、バッチビルダーは3種のタイプのデータ構造を維持する。
1)各ユーザに用いる入力バッファ。
2)各ユーザに用いる前処理バッファ。
3)バッチのリンクリスト(即ち、ニューラルネットワークに入力されたマトリックス)、バッチリストと示されてもよい。例えば音声又はビデオ処理のアプリケーションにおいて、ニューラルネットワークは計算エンジンが正確的な出力を生成するように、所定の順序に従ってバッチを処理することができる。実施形態において、2つ又はより多いユーザの間でバッチをシェアすることができる。実施形態において、前処理を実行しなくてもよい。
図5は本出願の実施形態に係る前処理を使用する例示的なバッチ方法を示す。ステップ502において、具体的なユーザに用いるパケットがバッチビルダーに到達する際にバッチ方法を起動する。
ステップ504において、データを当該ユーザに用いる入力バッファにコピーし、その後パケットを廃棄してもよい。
ステップ506において、入力バッファを前処理する。前処理の例示は音声周波数信号をスペクトログラム及び他の処理に変換することである。実施形態において、前処理を実行しなくてもよい。
前処理が完成した場合に、ステップ508において、結果を当該ユーザに用いる前処理バッファに置く。一部のアプリケーションにおいて、前処理がデータブロックに発生してもよい。例えば、音声システムは、大きさが一定であることが必要とされる音声入力ウィンドウのスペクトログラムを頻繁に使用する。その結果、実施形態において、次のパケットからのデータがない場合に、ユーザのパケットを前処理することを確保できない可能性がある。
実施形態において、ステップ510において、前処理バッファの大きさが少なくともニューラルネットワークに必要な入力と同じである場合に、前処理バッファからバッチリストにおける次の合格のバッチにブロック(その大きさがニューラルネットワーク入力の大きさによって確定されることができる)を伝達する。実施形態において、合格のバッチに対して、現在のユーザのために処理される任意のデータを含むべきではない。実施形態において、バッチの大きさが制限されて、バッチ全体も不合格になる。画像又はビデオ認識アプリケーションにおいて、ブロックは画像全体を示してもよく、音声認識アプリケーションにおいて、ブロックは一定長さの入力スペクトログラムを示してもよい。
実施形態において、ステップ512には、バッチビルダーはすべてのアクティブユーザで循環することができ、それにより当該バッチを充填する。
ステップ514において、バッチビルダーはその後に計算エンジンに1つ又は複数のバッチを送信するかどうかを判定することができる。実施形態において、判定を行うための複数の方式が存在する。
1)1つの簡単な方法は、計算エンジンが忙しくない場合のみにバッチを送信する。
2)他のより構造化の方法は、以下の条件の中の1つを満たす場合にバッチを送信する。
a)バッチは次のパケットが既に到達したユーザのデータを含み、計算エンジンの処理時間にバッチビルダーにより追加の繰り返しを行うことに必要な時間を加えると遅延制約を超える。
b)バッチリストは十分に充填されて、それにより任意のアクティブユーザに対しての最後のパケットが現在に到達すると、遅延制約を満たすことが不可能性である。
実施形態において、後の方法を実施するために、システムの異なる部分に対して、合理的で高精度に処理時間を定義することは必要なものである。より有効であるために、実施形態において、バッチビルダーは遅延に対して敏感なバッチと、大きいがより効果的な、スループット指向のバッチ統合することができ、ここで、遅延に対して敏感なバッチは、高い優先度であるが低い計算効率で実行することにより遅延制約を満たすことができ、スループット指向のバッが大部分の計算作業を処理する。実施形態において、バッチビルダーは処理が終了するまで継続的に繰り返される。
遅延制約が80 msである案を考えて、1つのユーザに対して、計算エンジンは20 msがかかってデータブロックを処理し、10個のユーザからなるバッチに対して、計算エンジンは40 msがかかってデータブロックを処理する。従来例示において、遅延制約を満たすために、同時に4つのストリームのみからのデータを処理してもよい。図6は従来設定において1つのユーザが毎回に80 msにおいて4つのストリームからのデータブロックを処理する場合のグラフを示す。
対照的に、本出願の各実施形態に係るバッチ方法を利用して、毎回に10個のユーザからなるバッチにおいて同時に20個のストリームからのデータブロックを処理することができる。図7は、本出願の実施形態に係る、バッチ設定において80 ms内に20個のストリームからのデータブロックを出力する場合の例示的なグラフを示す。「+」で表すブロックとは、当該ストリームからのデータブロックが処理されていることであり、「−」で表すブロックとは、ストリームが遮断されることである。
当業者は、計算エンジンの計算時間と遅延要求との間の差異が大きいことが、バッチングのチャンスをより大きくすることを理解すべきである。
実施形態において、本特許文献の様々様態は情報処理システム/計算設備に関してもよい。本出願の目的として、情報処理システムは、商業、科学、制御又は他の目的に基づいて解答、計算、確定、分類、処理、輸送、受信、検索、開始、ルーティング、切替、記憶、表示、伝送、出現、検出、記録、コピー、操作又は任意の様態として操作された情報、インテリジェンス又はデータの任意の装置又は装置セットを含んでもよい。例えば、情報処理システムはパーソナルコンピュータ(例えば、ラップトップコンピュータ)、タブレットコンピュータ、タブレット電話、パーソナルディジタルアシスタント(PDA)、スマートフォン、スマート腕時計、スマートパッケージング、サーバー(例えば、ブレードサーバー又はラックマウント型サーバー)、ネットワーク記憶設備又は任意の他の適切な設備であってよく、更に大きさ、形状、性能、機能及び価格が変化してもよい。情報処理システムはランダムアクセスメモリ(RAM)、1つ又は複数の処理リソース(例えば、中央処理装置(CPU)又はハードウェア又はソフトウェア制御ロジック)、ROM及び/又は他のタイプのメモリを含んでもよい。情報処理システムの他のアセンブリは1つ又は複数のディスクドライブ、外部設備と通信するための1つ又は複数のネットワークポート、及び例えばキーボード、マウス、タッチスクリーン及び/又はビデオディスプレーの各種の入力及び出力(I/O)設備を含んでもよい。情報処理システムは更に各ハードウェアアセンブリの間で通信できるように操作される可能な1つ又は複数のバスを含んでもよい。
図8は、本出願の実施形態に係る計算設備/情報処理システム(又は計算システム)の簡略化したブロック図を示す。情報処理システムが異なって配置されてもよく、異なるアセンブリを含んでもよいことを理解することができるが、システム800に示す機能に対して情報処理システムをサポートする各実施形態に操作されてもよいことを理解すべきである。
図8に示すように、システム800は、計算リソースを提供するとともにコンピュータを制御する1つ又は複数の中央処理装置(CPU)801を含む。CPU 801はマイクロプロセッサ等を利用して実現されてもよく、且つ1つ又は複数のグラフ処理ユニット(GPU)817及び/又は数学計算に用いられる浮動小数点コプロセッサを更に含んでもよい。システム800はシステムメモリ802を更に含んでもよく、システムメモリ802はランダムアクセスメモリ(RAM)又は読み取り専用メモリ(ROM)の様態であってもよく、又はRAMとROMの様態であってもよい。
図8に示すように、複数のコントローラ及び周辺設備をさらに提供してもよい。入力コントローラ803は例えばキーボード、マウス又はライトペンへの各種の入力設備804のインターフェースを示す。スキャナー806と通信するスキャナーコントローラ805を更に有してもよい。システム800は、1つ又は複数の記憶設備808とインタラクションするためのメモリコントローラ807を更に含んでもよく、1つ又は複数の記憶設備808の中のそれぞれはいずれも例えば磁気テープ又はCDの記憶媒体を含み、又は記録操作システム、ユーティリティプログラム及びアプリケーションに用いることができる指令プログラムを含む光学媒体を更に含んでもよく、ここで、アプリケーションは本出願の各様態のプログラムを実現する実施形態を含んでもよい。本出願によれば、記憶設備808は更に既に処理されたデータ又は処理しようとするデータを記憶することに用いられてもよい。システム800は表示設備811にインターフェースを提供するためのディスプレーコントローラ809を更に含んでもよく、表示設備811は陰極線管(CRT)、薄膜トランジスタ(TFT)ディスプレー又は他のタイプのディスプレーであってよい。計算システム800は更にプリンタ813と通信するためのプリンタコントローラ812を含んでもよい。通信コントローラ814は1つ又は複数の通信設備815にインタラクションすることができ、通信設備815によりシステム800はインターネット、クラウドリソース(例えば、イーサネットクラウド、イーサネット上のファイバチャネル(FCoE)/データセンターブリッジング(DCB)クラウド等)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、記憶領域ネットワーク(SAN)の多種のネットワークにおける任意のネットワークを含むか又は赤外線信号の任意の適切な電磁キャリア信号を含むことによりリモート設備に接続される。
示されるシステムにおいて、すべての主なシステムアセンブリはバス816に接続されてもよく、バス816は1つ以上の物理バスを示すことができる。しかし、各種のシステムアセンブリは互いに物理的に隣接してもよく、又は互いに物理的に隣接する必要がない。例えば、入力データ及び/又は出力データは1つの物理位置から他の物理位置にリモート伝送されることができる。なお、本出願の各様態を実現するプログラムはネットワークでリモート位置(例えば、サーバー)からアクセスすることができる。当該データ及び/又はプログラムは多種の機械読み取り可能な媒体における任意の媒体により伝送されてもよく、機械読み取り可能な媒体は、例えばハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、例えばCD-ROM及びホログラフィー設備のような光学媒体、光磁気媒体、及び例えば特定用途向け集積回路(ASIC)、プログラム可能なロジック設備(PLD)、フラッシュメモリデバイス及びROMとRAM設備のような特別にプログラムコードを記憶又は記憶して実行するように構成されるハードウェア設備を含むが、これらに限定されない。
1つ又は複数のプロセッサ又は処理ユニットに対して、本出願の実施形態は指令を利用して1つ又は複数の非一時的コンピュータ可読媒体でコーディングすることにより、各ステップを実行することができる。1つ又は複数の非一時的コンピュータ可読媒体は揮発性および不揮発性メモリを含むべきであることを注意すべきである。代替の実施例でもよく、ハードウェア実現方式又はソフトウェア/ハードウェア実現方式を含むことを注意すべきである。ハードウェア実現の機能はASIC、プログラマブルアレイ、デジタル信号処理回路等を利用して実現することができる。このため、任意の請求項において、用語「装置」はソフトウェア実現方式をカバーするだけではなく、ハードウェア実現方式もカバーする。類似するように、本文に使用された用語「コンピュータ可読媒体」はその上で実行される指令プログラムを有するソフトウェア及び/又はハードウェア、又はソフトウェア及びハードウェアの組み合せを含む。これらの実現態様の代替態様を考えて、図面及び付いている説明が機能情報を提供し、当業者はプログラムコード(即ち、ソフトウェア)をプログラミングすること及び/又は回路(即ち、ハードウェア)を製造することで必要な処理を実行する必要があることを理解すべきである。
本出願の実施形態は更に非一時的有形のコンピュータ可読媒体を有するコンピュータ製品に関してもよく、当該コンピュータ可読媒体には各種のコンピュータで実現される操作を実行するためのコンピュータコードを有することを注意すべきである。媒体及びコンピュータコードは本出願の目的に基づいて専門に設計して構造する媒体及びコンピュータコードであってもよく、又は関連分野の当業者が公知するか又は取得するできるタイプであってもよい。有形のコンピュータ可読媒体の例示は、例えばハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、例えばCD-ROM及びホログラフィー設備のような光学媒体、光磁気媒体、及びプログラムコードを記憶又は記憶して実行するように専門に配置されたハードウェア設備、例えば特定用途向け集積回路(ASIC)、プログラム可能なロジック設備(PLD)、フラッシュメモリデバイス及びROMとRAM設備を含むが、これらに限定されない。コンピュータコードの例示は、例えばコンパイラで生成されたマシンコード、及びコンピュータがインタプリタを利用して実行する上級コード(higher level code)のファイルを含む。本出願の実施形態は処理設備で実行されるプログラムモジュールに位置してもよいマシン実行可能な指令として全体的又は部分的に実施されることができる。プログラムモジュールの例示は、ベース、プログラム、ルーチン、オブジェクト、アセンブリ及びデータ構造を含む。分散式計算環境において、プログラムモジュールは物理的にローカル、リモート又は両者の環境に設置されてもよい。
当業者は、計算システム又はプログラミング言語が本出願の実施に対して非常に重要なものではないことを理解すべきである。当業者は、多くの上記素子が物理的及び/又は機能的にサブモジュールに分けられるか又は統合されることを認識すべきである。
請求の範囲における素子が異なって配布されてもよく、複数の付属物、構成及び組み合せを有することを含むことを注意すべきである。例えば、実施形態において、各請求項の主旨は他の請求項と組み合せられてもよい。
当業者は、上記の例示及び実施形態が例示的なものであり、本出願の範囲を制限するためのものではないことを理解すべきである。その趣旨は、明細書を読んで図面を研究した後に当業者に対して明らかなすべての置換、増強、等価、組み合せ及びその改善は本出願の実際な精神及び範囲内に含まれる。

Claims (18)

  1. 少なくとも部分的に未知のタイミングで、ニューラルネットワークモデルを使用することにより処理しようとする、1つ又は複数の制約で制限されるリクエストに関連するデータを受信するステップと、
    前記1つ又は複数の制約における少なくとも1つを利用して、前記データにおける少なくとも一部をバッチに動的集合するステップと、
    メモリから前記ニューラルネットワークモデルをロードする負荷をシェアリングし、データスループットを向上させるように、複数のスレッドを統合する単一スレッドにより前記バッチを処理するステップと、を含んでおり、
    ここで、バッチビルダーが、
    単一スレッドで実行することで、
    パケットを含む前記データを前処理し、
    前処理されたデータを複数のユーザのうちの少なくとも2つのユーザでシェアされたバッチマトリックスに集合し、
    計算エンジンに前記バッチマトリックスを提供する、ステップと、を更に含んでおり、
    ここで、前記バッチビルダーは、
    各ユーザに用いる入力バッファ、
    各ユーザに用いる前処理バッファ、
    バッチリストと示されるバッチマトリックス、
    という3種のタイプのデータ構造を維持することを特徴とする
    データ処理リクエストのスループットを向上させるバッチ方法。
  2. 前記1つ又は複数の制約は遅延要求を含むことを特徴とする
    請求項1に記載の方法。
  3. 前記遅延要求は、前記リクエストにおける最後のパケットが到達した後の予定時間量内にリクエストを処理する要求、及び既に前記リクエストからのデータを含むバッチにデータを添加しない要求の中の少なくとも1つを含むことを特徴とする
    請求項2に記載の方法。
  4. 所定の遅延に対して処理の実行に影響を受ける2つ又はより多いリクエストからのデータを遅延に対して敏感なバッチに集合するステップと、
    所定の遅延に対して処理の実行に影響を受けない2つ又はより多いリクエストからのデータを処理するためのスループット指向のバッチに集合するステップを更に含んでおり、
    ここで、前記所定の遅延に対して処理の実行に影響を受けるバッチの処理優先度は前記スループット指向のバッチの処理優先度よりも高いことを特徴とする
    請求項2に記載の方法。
  5. 前記バッチは少なくとも1つのステートフルリクエストを含むことを特徴とする
    請求項1に記載の方法。
  6. 前記パケットからのデータを前記複数のユーザのうちの1つのユーザに関連する入力バッファにコピーするステップと、
    前記パケットを廃棄するステップと、
    前記入力バッファを前処理することにより第1組の結果を取得するステップと、
    前記第1組の結果を前記複数のユーザのうちの前記1つのユーザに関連する前処理バッファに置くステップと、を更に含むことを特徴とする
    請求項1に記載の方法。
  7. 前記入力バッファを前処理するステップにおいては、
    前記複数のユーザのうちの前記1つのユーザに関連する前処理バッファからの1つの画像及び一部のスペクトログラムを示す予め決められた量のデータを前記バッチリストにおける適格バッチに伝送するステップであって、前記適格バッチは、現在のユーザのために処理される任意のデータを含まないバッチを示す、ステップ、を含むことを特徴とする
    請求項6に記載の方法。
  8. すべての動作中のユーザに関連するデータについて請求項6の各ステップを繰り返すことにより前記バッチリストを充填することに応答して、前記計算エンジンの状態に基づいて前記計算エンジンに1つ又は複数のバッチを提供するかどうかを判定するステップを更に含むことを特徴とする
    請求項6に記載の方法。
  9. 前記計算エンジンに1つ又は複数のバッチを提供かどうかを判定するステップは、
    遅延制約を超える追加の繰り返しに必要な時間と、遅延制約に対するバッチリストの状態の効果の中の少なくとも1つに基づいて実行されることを特徴とする
    請求項8に記載の方法。
  10. ニューラルネットワークモデルに関連するリクエストを処理するためのバッチ処理システムであって、
    1つ又は複数の計算設備を含んでおり、
    各計算設備が、
    少なくとも1つのプロセッサ及び記憶設備と、
    異なるリクエストに関連するデータを受信し、更に1つ又は複数の制約により少なくとも2つ異なるリクエストからのデータブロックをバッチに動的集合するバッチビルダーアセンブリと、
    メモリから前記ニューラルネットワークモデルをロードする負荷をシェアリングし、データスループットを向上させるように、前記バッチビルダーアセンブリと通信可能に連結されて、複数のスレッドを統合する単一スレッドにおいて前記バッチを処理する計算エンジンアセンブリと、を含んでおり、
    ここで、前記バッチビルダーアセンブリは、
    パケットを含む前記データを前処理し、
    前処理されたデータを複数のユーザのうちの少なくとも2つのユーザでシェアされたバッチマトリックスに集合し、
    計算エンジンに前記バッチマトリックスを提供し、
    ここで、前記バッチビルダーアセンブリは、
    各ユーザに用いる入力バッファ、
    各ユーザに用いる前処理バッファ、
    バッチリストと示されるバッチマトリックス、
    という3種のタイプのデータ構造を維持することを特徴とする
    ニューラルネットワークモデルに関連するリクエストを処理するためのバッチ処理システム。
  11. データブロックの大きさがニューラルネットワークモデルの入力の大きさにより確定されることを特徴とする
    請求項10に記載のバッチ処理システム。
  12. ロードバランサを更に含み、前記ロードバランサは未知のタイミングで複数のリクエストを受信し、前記1つ又は複数の計算設備において前記複数のリクエストをロードバランシングすることにより、同一のリクエストに関連するデータが同一の計算設備に送信されることを特徴とする
    請求項10に記載のバッチ処理システム。
  13. 前記計算エンジンは処理されたバッチをそれぞれ1つのユーザに関連する複数の応答に分けることを特徴とする
    請求項10に記載のバッチ処理システム。
  14. 1つ又は複数の指令シーケンスを含む非一時的コンピュータ可読媒体を含み、前記1つ又は複数の指令シーケンスが少なくとも1つのプロセッサで実行される場合に、
    少なくとも部分的に未知のタイミングで、ニューラルネットワークモデルを使用することにより処理しようとする、1つ又は複数の制約で制限されるリクエストに関連するデータを受信するステップと、
    前記1つ又は複数の制約における少なくとも1つを利用して、前記データにおける少なくとも一部をバッチに動的集合するステップと、
    メモリから前記ニューラルネットワークモデルをロードする負荷をシェアリングし、データスループットを向上させるように、複数のスレッドを統合する単一スレッドにより前記バッチを処理するステップと、が実行されており、
    ここで、バッチビルダーが、
    単一スレッドで実行することで、
    パケットを含む前記データを前処理し、
    前処理されたデータを複数のユーザのうちの少なくとも2つのユーザでシェアされたバッチマトリックスに集合し、
    計算エンジンに前記バッチマトリックスを提供する、ステップと、を更に実行されており、
    ここで、前記バッチビルダーは、
    各ユーザに用いる入力バッファ、
    各ユーザに用いる前処理バッファ、
    バッチリストと示されるバッチマトリックス、
    という3種のタイプのデータ構造を維持することを特徴とする
    バッチビルダー。
  15. 前記バッチビルダーは、複数のユーザのうちの各ユーザに対する入力バッファ及び前処理バッファを含んでおり、各ユーザが処理しようとするリクエストに関連することを特徴とする
    請求項14に記載のバッチビルダー。
  16. 前記バッチビルダーは前記リクエストを非同期的に受信することを特徴とする
    請求項14に記載のバッチビルダー。
  17. 前記1つ又は複数の制約は、前記リクエストにおける最後のパケットが到達した後の予定時間量内にリクエストを処理する要求、及び既に前記リクエストからのデータを含むバッチにデータを添加しない要求の中の少なくとも1つを含むことを特徴とする
    請求項14に記載のバッチビルダー。
  18. 実行するステップは、更に
    遅延に対して敏感な2つ又はより多いリクエストからのデータを遅延に対して敏感なバッチに集合するステップと、
    遅延に対して敏感ではない2つ又はより多いリクエストからのデータを処理るためのスループット指向のバッチに集合するステップを更に含んでおり、
    ここで、前記遅延に対して敏感なバッチの処理優先度は前記スループット指向のバッチの処理優先度よりも高いことを特徴とする
    請求項14に記載のバッチビルダー。
JP2016172848A 2015-09-04 2016-09-05 効果的なニューラルネットワークの配置に用いるシステム及び方法 Active JP6539236B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562214816P 2015-09-04 2015-09-04
US62/214,816 2015-09-04
US15/209,499 US10769533B2 (en) 2015-09-04 2016-07-13 Systems and methods for efficient neural network deployments
US15/209,499 2016-07-13

Publications (2)

Publication Number Publication Date
JP2017050001A JP2017050001A (ja) 2017-03-09
JP6539236B2 true JP6539236B2 (ja) 2019-07-03

Family

ID=56896367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016172848A Active JP6539236B2 (ja) 2015-09-04 2016-09-05 効果的なニューラルネットワークの配置に用いるシステム及び方法

Country Status (5)

Country Link
US (1) US10769533B2 (ja)
EP (1) EP3139314A1 (ja)
JP (1) JP6539236B2 (ja)
KR (1) KR20170028861A (ja)
CN (1) CN106503791B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112598112A (zh) * 2020-12-04 2021-04-02 深圳大学 一种基于图神经网络的资源调度方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018033137A1 (zh) * 2016-08-19 2018-02-22 北京市商汤科技开发有限公司 在视频图像中展示业务对象的方法、装置和电子设备
CN106953802B (zh) * 2017-03-01 2020-03-03 浙江工商大学 一种基于深度学习的网络最优路径选择方法
US11694066B2 (en) 2017-10-17 2023-07-04 Xilinx, Inc. Machine learning runtime library for neural network acceleration
CN107818367B (zh) * 2017-10-30 2020-12-29 中国科学院计算技术研究所 用于神经网络的处理系统和处理方法
US20210166106A1 (en) * 2017-12-12 2021-06-03 The Regents Of The University Of California Residual binary neural network
CN109919308B (zh) * 2017-12-13 2022-11-11 腾讯科技(深圳)有限公司 一种神经网络模型部署方法、预测方法及相关设备
US11275991B2 (en) 2018-04-04 2022-03-15 Nokia Technologies Oy Coordinated heterogeneous processing of training data for deep neural networks
KR20190136431A (ko) 2018-05-30 2019-12-10 삼성전자주식회사 뉴럴 네트워크 시스템, 이를 포함하는 어플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법
CN111078625B (zh) * 2018-10-18 2022-03-29 上海寒武纪信息科技有限公司 片上网络处理系统和片上网络数据处理方法
CN111124658B (zh) * 2018-10-31 2023-09-29 伊姆西Ip控股有限责任公司 用于处理目标数据的方法、设备和计算机程序产品
KR20200051278A (ko) 2018-11-05 2020-05-13 삼성전자주식회사 인공 신경망에서의 작업 관리 방법 및 이를 포함하는 시스템
CN110147251B (zh) * 2019-01-28 2023-07-25 腾讯科技(深圳)有限公司 用于计算神经网络模型的系统、芯片及计算方法
EP3712823A1 (de) * 2019-03-21 2020-09-23 Siemens Aktiengesellschaft Verfahren und vorrichtung zur steuerung eines technischen geräts mittels einem programmcode
US11494237B2 (en) 2019-06-26 2022-11-08 Microsoft Technology Licensing, Llc Managing workloads of a deep neural network processor
US20210216868A1 (en) * 2020-01-08 2021-07-15 Maxim Integrated Products, Inc. Systems and methods for reducing memory requirements in neural networks
CN111767059B (zh) * 2020-06-30 2023-03-31 北京百度网讯科技有限公司 深度学习模型的部署方法、装置、电子设备和存储介质
CN111898698B (zh) * 2020-08-10 2021-07-27 腾讯科技(深圳)有限公司 对象的处理方法及装置、存储介质和电子设备
CN113778635A (zh) * 2021-01-04 2021-12-10 北京沃东天骏信息技术有限公司 处理用户请求的方法、装置、设备和计算机可读介质
US11716257B1 (en) * 2021-05-24 2023-08-01 Neureality Ltd. Batching of artificial intelligence jobs
US11442775B1 (en) * 2021-12-03 2022-09-13 FriendliAI Inc. Dynamic batching for inference system for transformer-based generation tasks

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100367715B1 (ko) * 1999-04-03 2003-01-10 조용범 이동통신의 채널할당을 위한 디지털 홉필드 신경망 칩
JP3993750B2 (ja) 2001-03-07 2007-10-17 株式会社エヌ・ティ・ティ・ドコモ ゲートウェイ、中継制御方法、プログラムおよび記録媒体
US7164919B2 (en) 2002-07-01 2007-01-16 Qualcomm Incorporated Scheduling of data transmission for terminals with variable scheduling delays
US7751338B2 (en) 2003-12-06 2010-07-06 Terayon Communication Systems, Inc. Establishment of multiple upstream DOCSIS logical channels based upon performance
US7626988B2 (en) * 2004-06-09 2009-12-01 Futurewei Technologies, Inc. Latency-based scheduling and dropping
US8135362B2 (en) * 2005-03-07 2012-03-13 Symstream Technology Holdings Pty Ltd Symbol stream virtual radio organism method and apparatus
US8667120B2 (en) 2006-04-26 2014-03-04 Nippon Telegraph And Telephone Corporation Load control device and method thereof for controlling requests sent to a server
US8185909B2 (en) 2007-03-06 2012-05-22 Sap Ag Predictive database resource utilization and load balancing using neural network model
US8369356B2 (en) 2007-03-21 2013-02-05 Qualcomm Incorporated Dynamic management of receiver resources
US7742418B2 (en) 2007-08-24 2010-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for determining latency and throughput of a data communication
JP2008159081A (ja) 2008-02-21 2008-07-10 Nec Corp キューイング装置、キュー処理方法、およびキュー処理プログラム
US8276004B2 (en) 2009-12-22 2012-09-25 Intel Corporation Systems and methods for energy efficient load balancing at server clusters
US9251097B1 (en) * 2011-03-22 2016-02-02 Amazon Technologies, Inc. Redundant key management
WO2013033702A1 (en) 2011-09-01 2013-03-07 Google Inc. Establishing network connections
US9336483B1 (en) * 2015-04-03 2016-05-10 Pearson Education, Inc. Dynamically updated neural network structures for content distribution networks
US10140572B2 (en) 2015-06-25 2018-11-27 Microsoft Technology Licensing, Llc Memory bandwidth management for deep learning applications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112598112A (zh) * 2020-12-04 2021-04-02 深圳大学 一种基于图神经网络的资源调度方法
CN112598112B (zh) * 2020-12-04 2021-09-10 深圳大学 一种基于图神经网络的资源调度方法

Also Published As

Publication number Publication date
US10769533B2 (en) 2020-09-08
KR20170028861A (ko) 2017-03-14
EP3139314A1 (en) 2017-03-08
CN106503791A (zh) 2017-03-15
US20170068889A1 (en) 2017-03-09
JP2017050001A (ja) 2017-03-09
CN106503791B (zh) 2019-05-07

Similar Documents

Publication Publication Date Title
JP6539236B2 (ja) 効果的なニューラルネットワークの配置に用いるシステム及び方法
Xiang et al. Pipelined data-parallel CPU/GPU scheduling for multi-DNN real-time inference
US11029866B2 (en) Methods, devices, and computer program products for processing data
Yang et al. Re-thinking CNN frameworks for time-sensitive autonomous-driving applications: Addressing an industrial challenge
US10140572B2 (en) Memory bandwidth management for deep learning applications
US10719366B1 (en) Dynamic and selective hardware acceleration
EP3374933A2 (en) Training neural networks represented as computational graphs
Kang et al. Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks
US20210295168A1 (en) Gradient compression for distributed training
CN112860402B (zh) 一种深度学习推理服务的动态批处理任务调度方法及系统
US20210303988A1 (en) Multi-model training pipeline in distributed systems
US9471387B2 (en) Scheduling in job execution
CN111580974B (zh) Gpu实例分配方法、装置、电子设备和计算机可读介质
CN114514536A (zh) 分布式系统中的神经网络训练
CN112202595A (zh) 基于时间敏感网络系统的抽象模型构建方法
KR20140111834A (ko) 컴퓨팅 스케줄링 방법 및 시스템
CN114240506A (zh) 多任务模型的建模方法、推广内容处理方法及相关装置
US20200034195A1 (en) Network-related performance for gpus
Dhakal et al. ECML: Improving efficiency of machine learning in edge clouds
KR101674324B1 (ko) 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법
Hadeed et al. Load balancing mechanism for edge-cloud-based priorities containers
JP7349594B2 (ja) 情報処理装置、情報処理システム及び情報処理方法
Izvozchikova et al. Optimization of Network Transmission of Multimedia Data Stream in a Cloud System
US10908962B1 (en) System and method to share GPU resources
Nigade et al. Inference serving with end-to-end latency SLOs over dynamic edge networks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171026

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180726

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20181023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190402

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: 20190521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190607

R150 Certificate of patent or registration of utility model

Ref document number: 6539236

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250