JP2023543723A - マルチgpuシステムの分散型電力管理を実行するためのメカニズム - Google Patents

マルチgpuシステムの分散型電力管理を実行するためのメカニズム Download PDF

Info

Publication number
JP2023543723A
JP2023543723A JP2023518226A JP2023518226A JP2023543723A JP 2023543723 A JP2023543723 A JP 2023543723A JP 2023518226 A JP2023518226 A JP 2023518226A JP 2023518226 A JP2023518226 A JP 2023518226A JP 2023543723 A JP2023543723 A JP 2023543723A
Authority
JP
Japan
Prior art keywords
idle
link interface
node
power
threshold period
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.)
Pending
Application number
JP2023518226A
Other languages
English (en)
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2023543723A publication Critical patent/JP2023543723A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • 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
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

マルチノードコンピューティングシステムの効率的な電力管理のためのシステム、装置及び方法が開示される。コンピューティングシステムは、タスクを受信して処理する複数のノードを含む。それらのノードは、プロセッサ、ローカルメモリ、電力コントローラ及びリンクを介して他のノードにメッセージを転送するための複数のリンクインターフェースを含む。電力管理のための分散型アプローチを使用して、コンピューティングシステムの構成要素を電力遮断するためのネゴシエーションが、集中型システム全体の電力遮断を実行することなく行われる。各ノードは、コンピューティングシステムの他の構成要素が依然として活動状態であるか又は電源投入されているかにかかわらず、そのリンク、そのプロセッサ及び他の構成要素を電力遮断することが可能である。リンクインターフェースは、リンクアイドル状態が、少なくとも目標アイドル閾値期間の間、リンクインターフェースがアイドル状態のままであることにつながるかどうかの予測に基づいて、遅延の有無にかかわらずリンクの電力遮断を開始する。【選択図】図5

Description

(関連技術の説明)
現代の集積回路(integrated circuit、IC)の電力消費は、半導体チップの世代ごとに増大する設計課題となっている。電力消費が増加するにつれて、過剰な熱を除去してICの故障を防ぐために、より大型のファン及びヒートシンク等のより高価な冷却システムを利用しなければならない。しかしながら、冷却システムは、システムコストを増加させる。ICの電力損の抑制は、ポータブルコンピュータ及びモバイル通信デバイスにとって課題であるだけでなく、高性能マイクロプロセッサを利用するデスクトップコンピュータ及びサーバにとっても課題である。これらのマイクロプロセッサは、複数のプロセッサコア又はコア、及び、コア内の複数のパイプラインを含む。
様々なサーバ等の様々なコンピューティングデバイスは、システム機能を提供するために複数のタイプのICを統合する異種統合を利用する。複数の機能は、オーディオ/ビデオ(audio/video、A/V)データ処理、医療及びビジネス分野のための他の高度なデータ並列アプリケーション、汎用命令セットアーキテクチャ(instruction set architecture、ISA)の命令処理、デジタル、アナログ、混成信号、及び、高周波(radio-frequency、RF)機能等を含む。複数のタイプのICを統合するためのシステムパッケージングについて、様々な選択が存在する。いくつかのコンピューティングデバイスでは、システムオンチップ(system-on-a-chip、SOC)が使用され、その一方で、他のコンピューティングデバイスでは、より小型でより高い歩留まりのチップがマルチチップモジュール(multi-chip module、MCM)内の大型チップとしてパッケージングされる。
いくつかのコンピューティングデバイスは、チップ積層技術、並びに、シリコンインターポーザ、シリコン貫通ビア(through silicon via、TSV)及びシステムインパッケージ(system-in-package、SiP)内に2つ以上のチップを垂直に積層して電気的に接続するための他のメカニズムを利用する3次元集積回路(three-dimensional integrated circuit、3DIC)を含む。システムパッケージングを選択するにもかかわらず、性能を向上させるためにシステムが大規模化するにつれて、ソケットの数が増加し、各々が選択されたパッケージの複製を有する複数のソケットを用いて、コンピューティングシステムを電力遮断することがより複雑化する。
上記の観点から、マルチノードコンピューティングシステムのための効率的な電力管理を実行するための効率的な方法及びシステムが望まれる。
本明細書に記載の方法及びメカニズムの利点は、添付の図面と併せて以下の説明を参照することによってよりよく理解され得る。
タイムラインの一実施形態のブロック図である。 処理ノードの一実施形態のブロック図である。 マルチノードコンピューティングシステムの一実施形態のブロック図である。 マルチノードコンピューティングシステムの一実施形態のブロック図である。 マルチノードコンピューティングシステムの電力管理を実行するための方法の一実施形態のフロー図である。 マルチノードコンピューティングシステムの電力管理を実行するための方法の別の実施形態のフロー図である。 マルチノードコンピューティングシステムの電力管理を実行するための方法の別の実施形態のフロー図である。 マルチノードコンピューティングシステムの電力管理を実行するための方法の別の実施形態のフロー図である。 マルチノードコンピューティングシステムの一実施形態のブロック図である。 マルチノードコンピューティングシステムの一実施形態のブロック図である。
本発明は、様々な修正及び代替形態の影響を受ける余地があるが、特定の実施形態が例として図面に示されており、本明細書で詳細に説明される。しかしながら、図面及びその詳細な説明は、開示された特定の形態に本発明を限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲によって定義されるように、本発明の範囲内に入る全ての修正、等価物及び代替物を包含するものであることを理解されたい。
以下の説明では、本明細書に提示される方法及びメカニズムの十分な理解を提供するために、多数の具体的な詳細が記載されている。しかしながら、当業者は、これらの具体的な詳細なしに様々な実施形態が実施され得ることを認識すべきである。いくつかの例では、本明細書に記載のアプローチを不明瞭にすることを避けるために、周知の構造、構成要素、信号、コンピュータプログラム命令及び手法が詳細に示されていない。説明を簡単且つ明確にするために、図に示される要素は必ずしも縮尺どおりに描かれているわけではないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている場合がある。
マルチノードコンピューティングシステムのための効率的な電力管理を実行するための様々なシステム、装置、方法及びコンピュータ可読媒体が開示される。様々な実施形態では、コンピューティングシステムは、マルチノードパーティションのノードにタスクを割り当てるホストプロセッサを含む。ノードは、プロセッサ及びローカルメモリを含む。また、処理ノードは、少なくとも電力コントローラと、他のノードにメッセージを転送するための複数のリンクインターフェースと、を含む。本明細書で使用される場合、処理ノードは、ノードとも呼ばれる。ある実施形態では、ホストプロセッサはCPUであり、ノードプロセッサはGPUである。いくつかの実施形態では、ノードは、GPUを利用してタスクを処理する不均一メモリアクセス(non-uniform memory access、NUMA)ノードである。
電力管理のための分散型アプローチを使用すると、コンピューティングシステムの構成要素を電力遮断するためのネゴシエーションが、コンピューティングシステムのシステム全体の電力遮断を実行することなく行われる。電力遮断のためのネゴシエーションは、構成要素レベルで行われる。各ノードは、コンピューティングシステムの他の構成要素が依然として活動状態であるか又は電力投入されている間、そのノードのリンクインターフェース及びそのノードのプロセッサを電力遮断することができる。ノード間のリンク上のデータ転送をモニタリングするモニタは、対応するリンクの電力遮断をいつ開始すべきかを判定する。電力遮断の意図は、リンクの開始ノードから他のノードに伝達される。リンクに対する電力遮断が2つのノード間で合意されると、リンクインターフェースは、リンクの電力管理状態をより低い性能の電力管理状態に変更する。例えば、リンクは、2つのノードのプロセッサが活動状態のままであるにもかかわらず電力遮断することができる。
2つのノード間の通信層は、リンクの電力遮断中、活動状態(アクティブ状態)のままであり、動作可能状態(例えば、活動状態、アイドル状態)及び/又は電力管理状態の変更が伝達されることを可能にする。本明細書で使用される場合、「電力管理状態」とは、ノードによってサポートされる複数の「P状態」のうち何れか又は複数の「C状態」のうち何れかである。したがって、電力管理状態の変更は、ノードによってサポートされる複数のC状態及びP状態のうち何れかへの移行に関連付けられる。ノードの電力コントローラは、P状態を使用して、プロセッサが仕事量を処理する間に、プロセッサ及び他の構成要素のうち1つ以上の動作可能パラメータを更新する。動作可能パラメータの例は、動作可能クロック周波数及び動作可能電源電圧である。電力コントローラは、C状態を使用して、プロセッサが仕事量を処理していない間に、動作可能パラメータを更新し及び/又は構成要素を電力遮断する。ノードのプロセッサがアイドル状態になって電力コントローラがノードを特定のC状態に移行させると、ノードの電力コントローラは、プロセッサ及び他の構成要素のうち1つ以上を電力遮断する。例えば、ノードの電力コントローラは、DRAMによって実装されるシステムメモリが自己リフレッシュモードに入ることを示す。ノードの電力管理状態がC状態のうち何れかである場合に、電力コントローラがノードの他の構成要素を電力遮断することが可能であり、企図される。
図1を参照すると、タイムライン50の一実施形態の一般化されたブロック図が示されている。タイムライン50は、ノード10A~10Bのうち何れかのリンクインターフェースが、ノード10A~10B間のリンク12がアイドル状態であることを検出した時点t1から開始する持続時間を例示している。様々な実施形態では、ノード10A~10Bは、1つ以上のプロセッサ、ローカルメモリ、電力コントローラ、及び、ノード10A~10B間のリンク12と通信することができるリンクインターフェースを含む。リンク12は、ノード10A~10B間のデータを転送する。2つのノード及び単一のリンクが図1に示されているが、コンピューティングシステム内で使用される別の数のノード及びリンクが可能であり、企図される。ケース1~3として示される3つのケースが図1に示されているが、任意の数のケースがリンク12に対して行われる。例えば、リンク12についてのリンクアイドル状態の割り込みは、任意の時点で発生する可能性がある。タイムライン50は、いくつかの場合において、持続時間「D2」~「D7」等の複数の持続時間の組み合わせを含む、10A~10Bノード間のリンクを電力遮断するためのそれらのノード間のネゴシエーションを例示している。
場合によっては、リンク12は、目標アイドル閾値期間である、「D1」としてラベル付けされた少なくとも第1の持続時間の間、アイドル状態のままである。ある実施形態では、「D1」は、プログラム可能な構成レジスタに格納された値である。持続時間「D1」は、リンク12上で伝達するために使用されるノード10A~10Bのリンクインターフェースを電力遮断することから十分な電力節約を提供するように判定されたリンク12の最小アイドル滞留時間である。上部及び下部の場合(ケース1及びケース3)は、リンク12のリンクアイドル状態の割り込みが発生する前に、目標アイドル閾値期間(D1)が経過することを例示している。他の場合では、リンク12は、割り込みが発生する前に、少なくとも目標アイドル閾値期間(D1)の間、アイドル状態のままではない。中央の場合(ケース2)は、このシナリオを例示している。ノード10Aのリンクインターフェースによって検出されるようなリンクアイドル状態の割り込みの例としては、リンクインターフェースの入力キューに格納するためのノード10Aのプロセッサから到達するメッセージ、ノード10Bから到達する、タスクに向けられたメッセージ及び以前の電力遮断要求の拒否を指定する指標を有するノード10Bから到達するメッセージがある。同様に、ノード10Bのリンクインターフェースも、これらの割り込みの例を検出することが可能である。
図1からわかるように、ノード10A~10Bは、目標アイドル閾値期間(D1)が経過する前に、リンク12を電力遮断するためのネゴシエーションを開始することができる。上部及び中央の場合(ケース1及びケース2)は、このシナリオを例示している。その結果、目標アイドル閾値期間(D1)が経過したことの検出を使用せずに、ノード10A~10B間のリンクの電力遮断をネゴシエーションする開始信号を送出することがわかる。以下の説明は、ノード10Aのリンクインターフェースの回路によって実行されるステップについて説明するが、ノード10Bのリンクインターフェースの回路も、同様のステップを実行することが可能である。言い替えると、ノード10A及び10Bのリンクインターフェースの各々は、リンクインターフェースの電力遮断を開始することが可能である。図1に示された上部のケースは、ノード10Aのリンクインターフェースが時間t1の時点(又は時間t1)でアイドル状態を検出することを例示している。リンクインターフェースのアイドル状態の一例としては、ノード10Bに転送するべきメッセージ及び/又はペイロードデータを格納するリンクインターフェースの入力キューが空であることである。更に、ノード10Aのリンクインターフェースは、データがノード10Bから受信されていないことを検出する。上部ケースの場合、時間t1において、ノード10Aのリンクインターフェースは、電力遮断のために、ノード10Bとのネゴシエーションを開始する。このネゴシエーションは、「D2」及び「D3」とラベル付けされた持続時間等の2つの持続時間を使用する。
持続時間「D2」及び「D3」の各々は、ノード10A~10Bのリンクインターフェースのハードウェアによって実行されるステップの完了に依存する持続時間である。「D2」としてラベル付けされている第2の持続時間は、ノード10A~10B間で発生する必須の電力遮断メッセージ伝達を含む。電力遮断メッセージの例としては、電力遮断要求、受信された電力遮断要求を受諾又は拒否する電力遮断応答、電力遮断要求の撤回、ノード10A~10Bの1つ以上のプロセッサの動作状態及び/又は電力管理状態の指標等がある。単一のメッセージが、列挙された例のうち2つ以上を含むことが可能である。例えば、電力遮断要求を受諾する電力遮断応答は、1つ以上のプロセッサの動作状態及び電力管理状態のうち1つ以上の指標を含む。単一のメッセージに挿入される他の組み合わせが可能であり、企図される。電力遮断メッセージ伝達のネゴシエーションにより、リンクの電力遮断に向けて進行する場合、「D3」としてラベル付けされている第3の持続時間は、電力遮断動作を含む。電力遮断動作は、少なくともリンクインターフェースを含むノード10A~10Bの1つ以上の構成要素を電力遮断することを含む。電力遮断メッセージ伝達は、リンクインターフェースが電力遮断の準備ができていると判定された場合に、ノード10A~10Bのリンクインターフェースの電力遮断に向けて進行することになる。
持続時間「D3」の電力遮断動作が開始すると、これらの電力遮断動作は、割り込みなしで完了するまで継続して、リンクインターフェースは、電力遮断を達成することがわかる。これに対して、持続時間「D2」間に発生する電力遮断メッセージ伝達は、リンクの電力遮断に向けて進行しない場合がある。例えば、リンクインターフェースが電力遮断することを妨げる割り込みが発生する。図1に示されているケースは、持続時間「D2」の間に発生する割り込みを例示してはいないが、そのようなケースが可能であり、企図される。これらの場合、ノード10Aのリンクインターフェースは、少なくとも目標アイドル閾値期間(D1)の間、アイドル状態のままではなかった。同様に、ノード10Aのリンクインターフェースが持続時間「D2」の間に電力遮断メッセージ伝達のステップ及び持続時間「D3」の間に電力遮断動作のステップを完了し、ノード10A~10Bのリンクインターフェースが電力遮断される場合であっても、リンクインターフェースが少なくとも目標アイドル閾値期間(D1)の間アイドル状態のままであることを妨げる割り込みが発生する場合がある。図1に示されている中央のケースは、このシナリオを例示している。
図1に示されている上部のケース(ケース1)は、ノード10Aのリンクインターフェースが少なくとも目標アイドル閾値期間(D1)の間アイドル状態のままであることを例示している。例えば、「D4」とラベル付けされた持続時間は、持続時間「D2」及び「D3」後に発生し、その割り込みは、時間t2において、持続時間「D1」が経過した後に発生する。そのようなケースが普通である場合、時間t1において、アイドル状態が検出されるとすぐに、ノード10Aのリンクインターフェースの電力遮断のネゴシエーションを開始することが有益である。しかしながら、図1に示されている中央のケース(ケース2)は、ノード10Aのリンクインターフェースが少なくとも目標アイドル閾値期間(D1)の間アイドル状態のままではない場合の一例を例示している。例えば、「D5」とラベル付けされた持続時間は、持続時間「D2」及び「D3」の後に発生するが、割り込みは、持続時間「D1」が時間t2において経過する前に発生する。そのようなケースが頻繁に発生する場合、アイドル状態が時間t1において検出された場合に、ノード10Aのリンクインターフェースの電力遮断のネゴシエーションの開始を待機することが有益である。
ノード10Aのリンクインターフェースが、アイドル状態の検出が、リンクインターフェースが少なくとも目標アイドル閾値期間(D1)の間、アイドル状態のままであることにつながると予測した場合に、リンクインターフェースは、リンクインターフェースの電力遮断のネゴシエーションを遅延なく開始する。例えば、リンクインターフェースは、図1に例示された上部及び中央のケース(ケース1及びケース2)に示されているステップを実行しようと試みる。しかしながら、ノード10Aのリンクインターフェースが、アイドル状態の検出が、少なくとも目標アイドル閾値期間(D)の間、リンクインターフェースがアイドル状態のままであることにはつながらないと予測した場合、リンクインターフェースは、「D7」とラベル付けされた待機閾値期間の間、電力遮断のネゴシエーションを遅延させる。例えば、リンクインターフェースは、図1に例示された下部のケース(ケース3)に示されているステップを実行しようと試みる。様々な実施形態では、待機閾値期間(D7)は、目標アイドル閾値期間(D1)よりも長い。一例では、待機閾値期間(D7)は、目標アイドル閾値期間(D1)の2倍である。他の実施形態では、待機閾値期間(D7)の目標アイドル閾値期間(D1)に対する比は、1よりも大きい任意の正の値であり、この比は、設計要件に基づいて選択される。
図2を参照すると、処理ノード100の一実施形態の一般化されたブロック図が示されている。図に示すように、処理ノード100は、クライアント110の各々と、1つ以上のレベルのキャッシュ116と、メモリコントローラ(MC)130と、電力コントローラ140と、リンクインターフェース150及び170との間の通信機構120と、を含む。いくつかの実施形態では、処理ノード100の構成要素は、システムオンチップ(SOC)等の集積回路(IC)上の別々のチップである。他の実施形態では、構成要素は、システムインパッケージ(SiP)又はマルチチップモジュール(MCM)内の別々のチップである。
クライアント110は、2つのプロセッサを含むように示されているが、他の実施形態では、クライアント110は、別の数のプロセッサ及び処理エンジンを含む。例示された実施形態では、クライアント110は、プロセッサ112及び並列データプロセッサ114を含む。いくつかの設計では、クライアント110は、プロセッサ112を含み、このプロセッサは、中央処理ユニット(central processing unit、CPU)、マルチメディアエンジンと通信するためのハブ、及び、ソフトウェアアプリケーションの命令を処理することができる回路を有する他のタイプのコンピューティングリソースのうち1つ以上である。ある実施形態では、並列データプロセッサ114は、画像処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、又は、複数のデータ項目に対して同じ命令を同時に処理することができる他のタイプのプロセッサのうち何れかである。
並列データプロセッサ114は、かなりの数の並列実行レーンを有する高並列データマイクロアーキテクチャを有する。この高並列データマイクロアーキテクチャは、計算集中型タスクに対して高い命令スループットを提供する。一実施形態では、マイクロアーキテクチャは、並列実行レーンのために、単一命令複数データ(single-instruction-multiple-data、SIMD)パイプラインを使用する。コンパイラは、プログラムコードから並列化されたタスクを取り出して、システムハードウェア上で並列に実行する。この並列化されたタスクは、少なくとも科学、医療及びビジネス(金融)の分野に由来し、いくつかは、ニューラルネットワーク訓練を利用する。タスクは、実行する命令のサブルーティンを含む。様々な実施形態では、並列データプロセッサ114の複数の実行レーンは、複数の仕事項目を含むウェーブフロントを同時に実行する。仕事項目は、異なるデータで実行するための同じ命令である。また、仕事項目は、スレッドとも呼ばれる。
いくつかの設計では、処理ノード100は、汎用CPUを含まないが、外部CPUからの割り当てられたタスクを受信する。例えば、処理ノード100のリンクインターフェース150及び170のうち何れかは、外部CPUにコマンド及びデータを転送するための通信プロトコル接続をサポートする。通信プロトコルの例としては、PCIe(Peripheral Component Interconnect Express)、Advanced Micro Devices社製のInfinity Fabric、Advanced Micro Devices社製のInfinity Architecture、InfiniBand、RapidIO、HyperTransport等が挙げられる。通信プロトコルの他の例も可能であり、企図される。
様々な実施形態では、通信機構120は、コマンド、メッセージ及びペイロードデータ等のデータを、メモリコントローラ130を介して、クライアント110、キャッシュ116、リンクインターフェース150及び170と、メモリ132との間の往復で転送する。2つのリンクインターフェース150及び170が図に示されているが、他の設計では、別の数のリンクインターフェースが使用される。いくつかの実施形態では、通信機構120は、少なくとも、要求及び応答を格納するためのキュー、並びに、内部ネットワークにわたって要求を送信する前に、受信された要求の間を調停することが可能なハードウェア回路によって実装される選択ロジックを含む。また、通信機構120は、パケットを構築及び復号化し、並びに、パケットのルーティングを選択することができる回路も含む。
一実施形態では、電力コントローラ140は、処理ノード100の構成要素からデータを収集する。いくつかの実施形態では、収集されたデータは、所定のサンプリングされた信号を含む。サンプリングされた信号の切り替えは、切り替えられた静電容量の量を示す。サンプリングする選択信号の例としては、クロックゲータイネーブル信号、バスドライバイネーブル信号、内容参照可能メモリ(content-addressable memories、CAM)内の不一致、CAMワード線(word-line、WL)ドライバ等が挙げられる。ある実施形態では、電力コントローラ140は、所定のサンプル時間間隔中に、ノード100における電力消費を特徴付けるためのデータを収集する。
いくつかの実施形態では、処理ノード100内のオンチップ電流センサ及び温度センサも、電力コントローラ140に情報を送信する。電力コントローラ140は、センサ情報、送出命令又は送出スレッドの個数、及び、重み付けされたサンプリング信号の合計のうち1つ以上を使用して、処理ノード100の電力消費を推定する。ノード100が閾値限界を上回って(下回って)動作している場合、電力コントローラ140は、電力消費を減少(又は増加)させる。いくつかの実施形態では、電力コントローラ140は、処理ノード100内の構成要素の各々について、それぞれの電力管理状態を選択する。したがって、処理ノード100全体にわたる電力コントローラ140及び付随する回路は、ノード100の構成要素を電力ゲーティングするか又は構成要素の電力管理状態を低減することが可能である。また、電力コントローラ140は、ノード100の構成要素に制御信号を送信して、移行クロック信号からの接続及び電力供給基準からの接続を解消することもできる。さらに、電力コントローラ140は、ノード100の構成要素に制御信号を送信して、移行クロック信号への接続及び電力供給基準への接続を再確立することができる。
単一のメモリコントローラ130が図に示されているが、他の実施形態では、別の数のメモリコントローラが処理ノード100内で使用される。様々な実施形態では、メモリコントローラ130は、通信機構120を介して、クライアント110又はキャッシュ116のキャッシュコントローラからメモリ要求を受信する。このメモリコントローラ130は、調整ロジックを使用してメモリ要求をスケジュール設定し、そのスケジュール設定されたメモリ要求をメモリ132に送信する。ある実施形態では、メモリ132は、処理ノード100のためのシステムメモリであり、メモリ132は、メモリコントローラ130によってサポートされた対応する通信プロトコルを有する様々なダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)のうち何れかである。この通信プロトコルは、クロックサイクル当たりのデータ転送の数、信号電圧レベル、信号タイミング、信号及びクロック位相、並びに、クロック周波数等のように、情報転送のために使用される値を判定する。いくつかの実施形態では、処理ノード100は、主メモリにも接続され、この主メモリは、階層型メモリサブシステム内のシステムメモリ132よりも低いレベルである。主メモリは、様々なタイプの不揮発性ランダムアクセス二次データ記憶装置のうち何れかである。主メモリの例としては、ハードディスクドライブ(hard disk drive、HDD)及びソリッドステートディスク(solid-state disk、SSD)がある。
また、メモリコントローラ130は、システムメモリ132及び主メモリからも応答を受信し、その応答を、処理ノード100内の要求の対応するソースに送信する。元のメモリ要求を完了するために、要求されたブロックデータを有する対応するキャッシュフィルラインが、システムメモリ132及び主メモリのうち何れかから、キャッシュ116及び並列データプロセッサ112の内部キャッシュメモリのうち対応する1つ以上に伝達される。言い替えると、キャッシュフィルラインは、1つ以上のレベルのキャッシュ内に置かれる。いくつかの設計では、並列データプロセッサ112は、レベル1(L1)命令キャッシュ及びL1データキャッシュを含む。キャッシュ116は、階層型キャッシュメモリサブシステムで使用されるレベル2(L2)キャッシュ及びレベル3(L3)キャッシュのうち1つ以上を提供する。並列データプロセッサ112の内部配置であるか又は外部配置であるかにかかわらず、キャッシュの他のレベル数及び他の配置が可能であり、企図される。
いくつかの実施形態では、処理ノード100のアドレス空間は、並列データプロセッサ112、1つ以上の他のコンピューティングリソース(図示省略)、インターフェース180を介して処理ノード100に接続される1つ以上の他の外部処理ノード、任意の外部CPU、入力/出力(I/O)周辺デバイス(図示省略)等の1つ以上の他の構成要素、及び、他のタイプのコンピューティングリソースの間で分割される。メモリマップは、何れのアドレスが何れの構成要素にマッピングされるか、したがって、特定のアドレスに対するメモリ要求が何れの構成要素にルーティングされるかを判定するために維持される。
外部CPUとの通信をサポートすることに加えて、リンクインターフェース150及び170は、リンク154及び174上でメッセージ及びデータを転送することによって、処理ノード100と他の外部処理ノードとの間の通信もサポートする。先に説明されているように、処理ノード100は、2つのリンクインターフェース150及び170以外に、別の数のリンクインターフェースを使用する。同様に、他の設計では、処理ノード100は、2つのリンク154及び174以外に、別の数のリンクを使用する。物理ユニット152は、リンク154と送受信されるコマンド及びデータを処理し、クロックサイクル当たりのデータ転送数、信号電圧レベル、信号タイミング、信号及びクロック位相、並びに、クロック周波数等のように、情報転送のために使用される値を判定する。通信機構120での接続と同様に、リンク154及び174は、共有バス構成、クロスバー構成及びブリッジ付き階層型バスを含む、ポイントツーポイント、パケットベース、バスベースで使用することができる。
単一回線がリンク154を表すように示されているが、リンク154は、データを信号として転送することができる複数の回線又は物理的なワイヤ若しくはレーンを含む。これらの複数の回線の例としては、1つ以上のクロック回線、1つ以上の制御回線、1つ以上の高速データ回線、及び、1つ以上の低速データ回線がある。物理ユニット152内の回路及び外部リンクインターフェース内の付随する物理ユニットは、1つ以上の低速回線のデータ伝送速度を上回る1つ以上の高速回線上のデータ伝送速度をサポートする。この1つ以上の高速データ回線は、リンク154の物理層と呼ばれる。1つ以上の制御回線及び1つ以上の低速回線は、リンク154の通信層と呼ばれる。リンク174は、リンク154と同様の回線を有する。
様々な実施形態では、リンクインターフェース150及び170は、リンクインターフェース150について示されている電力遮断ユニット160及び物理ユニット152等の同様の構成要素を使用する。通信機構120とインターフェース接続するための個別のユニットは、説明を容易にするために図示されていない。一実施形態では、リンクインターフェース150が非動作状態にある場合、物理ユニット152は、リンク154の1つ以上の高速クロック回線及び1つ以上の高速データ回線上で信号を送信することができず、それに応じてデータを送信することができない。例えば、物理層は、「電力遮断」される。しかしながら、物理ユニット152は、リンク154の少なくとも1つの低速クロック回線及び1つ以上の低速データ回線上で、信号及びそれに応じたデータを送信することができる。いくつかの設計では、物理ユニット152は、リンク154の1つ以上の制御回線上で信号を送信することもできる。例えば、活動状態のままではあるが、リンク154の高速回線が動作しているときよりも、通信層が動作しているときの方が、消費電力は少ない。依然として活動状態のままの通信層は、リンクインターフェース150が物理ユニット152をより高い電力管理状態に移行させるか、又は、電力遮断された物理ユニット152を「電力投入」することを可能にする。
本明細書で使用される場合、「電力遮断」とは、コンピューティングシステムが依然として電力供給を受けている間に構成要素が最少量の電力を消費するように、その構成要素のためのステップを実行することを指す。いくつかの設計では、電力遮断することは、対応する構成要素に対して、最低性能のP状態等の最低性能電力管理状態を選択することを含む。他の設計では、構成要素を電力遮断することは、C状態を選択することを含み、これは、構成要素の順次要素及び記憶要素へのクロック信号を無効にし、構成要素の複数のサブ構成要素への電力供給接続を無効にする。更に他の設計では、構成要素をスリープモードに置くことは、その構成要素を電力遮断することと同等である。電力遮断ユニット160のハードウェア回路は、リンク154の物理層、及び、リンクインターフェース150の対応する回路の電力遮断の時期及び持続時間を判定する。本明細書で使用される場合、プロセッサ若しくはノード等の構成要素又はサブ構成要素は、その構成要素がタスクを実行すること等の仕事を実行する場合に、「活動状態」と呼ばれる。構成要素が実行すべき仕事を有さず、非活動状態のままである場合に、構成要素は「アイドル状態」と呼ばれる。
電力遮断ユニット160は、回路を使用し、この回路は、リンク154上に転送されたデータをモニタリングすること、アイドル状態を検出すること、及び、検出されたアイドル状態に基づいて物理ユニット152の構成要素を電力遮断するためのステップを実行することを可能にする。様々な実施形態では、電力遮断ユニット160は、クライアント110の1つ以上の処理ユニットが活動状態又はアイドル状態である間に、高速データ回線に対応する物理ユニット152の構成要素を電力遮断する。物理ユニット152の動作状態に基づいて、電力コントローラ140は、1つ以上の外部処理ノードが依然として活動状態のままである間に、ノード100を電力遮断することができる。これらのステップの更なる説明が、以下の考察で説明される。
図3を参照すると、マルチノードコンピューティングシステム200の一実施形態の一般化されたブロック図が示されている。例示された実施形態では、処理ノード(又はノード)210A~210D、並びに、少なくともリンク220、222及び228を含むパーティションの部分が示されている。リンク220、222及び228は、(図1の)リンク154及び174について先に説明したように、複数の回線又はレーンを含む。ある実施形態では、パーティション240は、サーバ内のマルチソケットマザーボードのソケット内に配置されたマルチチップモジュール(MCM)である。本明細書で使用される場合、「パーティション」は、コンピューティングシステム200がハードウェアの仮想化を利用する場合に「ハイブ」とも呼ばれる。いくつかの設計では、ノード210A~210Dは、GPUを利用してタスクを処理する不均一メモリアクセス(non-uniform memory access、NUMA)ノードである。
1つ以上のノード210A~210Dの1つ以上のクライアント270は、割り当てられたタスクを受信する。様々な実施形態では、パーティション240の処理ノード210A~210Dの各々は、(図1の)処理ノード100について先に説明された機能を有する。例えば、ノード210Aのクライアント270は、(図1の)クライアント110と同等であり、リンクインターフェース280、282及び284の各々は、(図1の)リンクインターフェース150及び170と同等である。ある実施形態では、リンク220、222及び228のリンクインターフェースは、Advanced Micro Devices社製のGPUツーGPU相互接続のためのxGMI相互接続等の同じ通信プロトコルをサポートする。しかしながら、他のタイプの通信プロトコルが可能であり、企図される。通信プロトコルは、クロックサイクル当たりのデータ転送数、信号電圧レベル、信号タイミング、信号及びクロック位相、並びに、クロック周波数等のように、リンク上での情報転送のために使用される値を判定する。
リンクインターフェース(LI)280は、リンク222上でノード210Cにメッセージ(コマンド)及びペイロードデータを転送することができ、リンクインターフェース282は、リンク228上でノード210Dにメッセージ及びペイロードデータを転送することができ、リンクインターフェース284は、リンク220上でノード210Bにメッセージ及びペイロードデータを転送することができる。様々な設計では、リンクインターフェース280及び282は、物理ユニット250及び電力遮断ユニット260等のように、リンクインターフェース284について示されているものと同様の構成要素を含む。ノード210Aの通信機構とインターフェース接続するための個別のユニットは、説明を容易にするために図示されていない。様々な実施形態では、物理ユニット250は、(図1の)物理ユニット152と同等の機能を有する。同様に、(図1の)電力遮断ユニット160及び電力遮断ユニット260は、以下の説明で提供される電力遮断ユニット260の更なる説明と同等の機能を有する。
電力遮断ユニット260は、モニタ262、カウンタ264、予測器266、及び、プログラム可能な構成及びステータスレジスタ(configuration and status register、CSR)268を含む。様々な実施形態では、構成要素262~268は、ハードウェア回路で実装される。ある実施形態では、制御ユニットの機能は、モニタ262内に提供される。他の実施形態では、制御ユニットの機能は、個別のユニット内に設けられる。様々な実施形態では、ノード間のリンク220、222及び228を介して送信されるメッセージには、1つ以上のノードの動作状態の指標、電力遮断要求、電力遮断要求に対する電力遮断応答、電力遮断要求の撤回、割り込み、活動状態又はアイドル状態等のような、クライアント270の1つ以上のプロセッサの動作状態の指標、クライアント270の1つ以上のプロセッサの電力管理状態の指標、及び、他の情報が含まれる。単一のメッセージが、列挙された例のうち2つ以上を含むことが可能であることに留意されたい。一例では、ノード間で送信された単一のメッセージは、電力遮断応答、及び、クライアント270の1つ以上のプロセッサの動作状態の指標の両方を含む。単一のメッセージ内に組み合わされた列挙された例の他の組み合わせが可能であり、企図される。ある実施形態では、リンク220、222及び228のうち1つ以上のリンクは、2つのノード間のポイントツーポイント通信チャネルである。物理レベルにおいて、リンクは、1つ以上のレーンを含む。
電力管理のための分散型アプローチを使用すると、コンピューティングシステム200の構成要素を電力遮断するためのネゴシエーションが、コンピューティングシステム200のシステム全体の電力遮断を実行する前に行われる。電力遮断のためのネゴシエーションは、構成要素レベルで行われる。以下の説明は、リンクインターフェース284の回路によって実行されるステップについて説明するが、リンクインターフェース280及び282の回路も、同様のステップを実行することができる。ノード210Aのリンクインターフェース284のモニタ262は、アイドル状態を検出することができる。ある実施形態では、アイドル状態の一例としては、ノード210Aから210Bに転送するためにメッセージ及び/又はペイロードデータを格納する入力キューが空であるか、あるいはそれ以外の場合は、ノード210Bに送信するためのメッセージ又はデータを格納しない例がある。この入力キューは、電力遮断ユニット260及び物理ユニット250のうち何れか一方に配置される。更に、リンクインターフェース284は、データがノード210Bから受信されることを検出しない。
モニタ262がリンクインターフェース284のアイドル状態を検出し、且つ、予測器266が、検出されたアイドル状態が、少なくとも目標アイドル閾値期間の間、リンクインターフェース284がアイドル状態のままであることにつながるという予測を提供した場合、電力遮断ユニット260は、遅延なく、リンクインターフェース284の電力遮断のネゴシエーションを開始する。カウンタ264は、タイマーとも呼ばれる。カウンタ264のうち何れかは、アイドル状態の検出から開始する持続時間を測定し、電力遮断ユニット260の回路は、測定された持続時間が、リンクインターフェース284を電力遮断するための如何なる割り込みの前に、目標アイドル期間に到達したかどうかを判定する。目標アイドル期間は、(図1の)タイムライン50内の持続時間「D1」と同等である。検出されたアイドル状態及び予測器266からの予測に基づいて、電力遮断ユニット260は、リンク電力遮断要求をリンク220上のノード210Bに送信して、リンクインターフェース284の構成要素、及び、ノード210B上の対応するリンクインターフェースの構成要素を電力遮断する要求を示す。
モニタ262がアイドル状態を検出し、且つ、予測器266が、検出されたアイドル状態が、少なくとも目標アイドル閾値期間の間、リンクインターフェース284がアイドル状態のままであることにはつながらないという予測を提供した場合に、電力遮断ユニット260は、待機閾値期間の間、電力遮断のネゴシエーションを遅延させる。待機閾値期間は、(図1の)タイムライン50内の持続時間「D7」と同等である。電力遮断ユニット260は、リンク220上のノード210Bに電力遮断要求を送信する前に、待機閾値期間が経過するのを待機することによって、リンク220を電力遮断するためのステップ中に、その待機閾値期間を挿入する。カウンタ264のうち何れかは、アイドル状態の検出から開始している持続時間を測定し、電力遮断ユニット260の回路は、割り込みが事前に発生していない場合に、測定された持続時間が待機閾値期間にいつ到達するかを判定する。様々な実施形態では、目標アイドル期間及び待機閾値期間の各々は、CSR268のプログラム可能な構成レジスタに格納される。様々な実施形態では、待機閾値期間は、目標アイドル閾値期間よりも長い。例えば、待機閾値期間の目標アイドル閾値期間に対する比は、1よりも大きい任意の正の値であり、その比は、設計要件に基づいて選択される。
モニタ262がリンクインターフェース284のアイドル状態を検出し、且つ、電力遮断ユニット260が、リンク220上でのデータ転送がない状態で目標アイドル閾値期間が経過したと判定した場合に、予測器266は、リンク220の次の検出されたアイドル状態の信頼度がより高いほど、少なくとも目標アイドル閾値期間の間、リンクインターフェース284がアイドル状態のままであることにつながることを示すように、電力遮断予測値を更新する。電力遮断予測値は、CSR268のレジスタに格納される。ある実施形態では、電力遮断ユニット260は、電力遮断予測値をゼロに初期化し、モニタ262がリンクインターフェース284のアイドル状態を検出し、その後、電力遮断ユニット260が、リンクインターフェース284が少なくとも目標アイドル閾値期間の間アイドル状態のままであると判定した場合、電力遮断予測値を1だけ増加させる。しかしながら、モニタ262がリンクインターフェース284のアイドル状態を検出したが、電力遮断ユニット260が、リンクインターフェース284が少なくとも目標アイドル閾値期間の間アイドル状態のままでなかったと判定した場合、電力遮断ユニット260は、電力遮断予測値を2だけ減少させる。ある実施形態では、電力遮断予測値の最小値は、ゼロである。CSR268は、成功閾値を記憶する。ある実施形態では、成功閾値は、4である。電力遮断ユニット260が電力遮断予測値を更新した後、予測器266は、更新された電力遮断予測値を成功閾値と比較する。この例で使用された上記の値以外の値が可能であり、初期電力遮断予測値、増分量、減分量及び成功閾値について企図されることに留意されたい。
電力遮断予測値が成功閾値以上である場合に、予測器266は、リンクインターフェース284の現在の検出されたアイドル状態が、少なくとも目標アイドル期間の間、リンクインターフェース284がアイドル状態のままであることにつながるという予測を提供する。例えば、バイナリロジックの高い方の値は、現在のアイドル状態について予測された「はい」を示す。他の設計では、バイナリロジックの低い方の値は、現在のアイドル状態について予測された「はい」を示す。対照的に、電力遮断予測値が成功閾値未満である場合に、予測器266は、リンクインターフェース284の現在の検出されたアイドル状態が、少なくとも目標アイドル期間の間、リンクインターフェース284がアイドル状態のままであることにはつながらないという予測を提供する。例えば、バイナリロジックの低い方の値は、現在のアイドル状態について予測された「いいえ」を示す。他の設計では、バイナリロジックの高い方の値は、予測された「いいえ」を示す。
また、電力遮断予測値、電力遮断予測値の増分値及び減分値、待機閾値期間230、目標アイドル閾値期間、並びに、成功閾値のうち1つ以上が、特定の条件の検出時にリセットされることも企図される。これらの特定の条件の例としては、特定の期間が経過した場合、新しい仕事量を検出している間等がある。上述したように、電力遮断ユニット260は、少なくとも電力遮断予測値、電力遮断予測値の増分値及び減分値、待機閾値期間230、目標アイドル閾値期間、並びに、成功閾値を使用して、電力遮断要求をリンク220上でノード210Bにいつ送信すべきかを判定する。リンクを電力遮断する更なるステップは、以下の説明で提供される。
図4を参照すると、マルチノードコンピューティングシステム300の一実施形態の一般化されたブロック図が示されている。以前に説明された回路は、全く同様に番号が付されている。例示された実施形態では、ホストプロセッサ302は、スイッチ304を介して、コマンド、メッセージ及びペイロードデータをマルチノードパーティション340に転送する。他の実施形態では、コンピューティングシステム300は、個別のホストプロセッサ302を有さず、ノード210A~210D内のCPU又は他のプロセッサに依存して、タスクを互いに割り当てて、転送する。ある実施形態では、パーティション340は、サーバ内のマルチソケットマザーボードのソケット内に配置されたマルチチップモジュール(MCM)である。パーティション340は、リンク220~230を介して互いに接続された処理ノード(又はノード)210A~210Dを含む。リンク220~230は、(図1の)リンク154及び174について先に説明したように、複数の回線又はレーンを含む。先に説明したように、ある実施形態では、リンクインターフェースリンク220~230は、Advanced Micro Devices社製のGPUツーGPU相互接続のためのxGMI相互接続等の同じ通信プロトコルをサポートする。しかしながら、他のタイプの通信プロトコルが可能であり、企図される。
通信機構、メモリインターフェース、電力コントローラ、割り込みコントローラ、及び、位相同期回路(phased locked loop、PLL)又は他のクロック生成回路は、説明を容易にするために図示されていない。いくつかの設計では、ホストプロセッサ302は、汎用中央処理ユニット(CPU)である。スイッチ304は、PCIe(Peripheral Component Interconnect Express)、Advanced Micro Devices社製のInfinity Fabric、及び、Advanced Micro Devices社製のInfinity Architecture等の通信プロトコルをサポートする。しかしながら、他のタイプの通信プロトコルが可能であり、企図される。
例示された実施形態では、ノード210A~210Dは、完全に接続されているように示されているが、他の実施形態では、リンク220~230のうち1つ以上は、パーティション240内に含まれない。いくつかの実施形態では、コンピューティングシステム200は、リンク220~230に加えて、ノード210A~210D間の他のリンクを含む。ある実施形態では、これらの他のリンクは、サービス要求に対するデータ移送のために使用されるのに対して、リンク220~230は、コンピューティングシステム200の構成要素の電力遮断をネゴシエーションするためのメッセージ等のメッセージ伝達のために使用される。ホストプロセッサ302は、プロセスのスレッド等のタスクをノード210A~210Dに割り当てる。一例では、ホストプロセッサ302は、250個のタスクを処理ノード210A~210Dの各々に割り当てることによって、1つ以上のソフトウェアアプリケーションの1,000個のタスクの処理に分割する。ホストプロセッサ302は、タスク1~250をノード210Aに割り当て、タスク251~500をノード210Bに割り当て、タスク501~750をノード210Cに割り当て、タスク751~1,000をノード210Dに割り当てる。更に、ノード210A~210Dの各々は、他のコマンド及びタスクに加えて、ダイレクトメモリアクセス(direct memory access、DMA)要求をノード210A~210Dのうち別の1つに送信することができる。1つ以上のソフトウェアアプリケーションは、画像レンダリング、ニューラルネットワーク訓練、科学計算、ビジネスアプリケーション及び医療アプリケーション等の並列データアプリケーションを対象とする。コンピューティングシステム200の性能を向上させてホストプロセッサ202を支援するためにそのホストプロセッサを使用する場合、いくつかの設計では、コンピューティングシステム300は、仮想化ソフトウェアを使用する。
仮想化ソフトウェアは、仮想マシン(virtual machine、VM)オペレーティングシステムと、コンピューティングシステム300のハードウェアとの間のインターフェースとして機能する。仮想化ソフトウェアは、複数の仮想マシンのための画像レンダリングアプリケーション用画像ドライバ等のドライバを含み、このドライバは、複数の仮想マシンが単一の物理GPUに同時に直接アクセスすることを可能にする。ここで、単一の物理GPUは、複数の仕事量の間で共有され、ホストプロセッサ302によって以前に実行された何らかの仕事が、ノード210A~210DのGPUに対してここで負荷軽減される。本明細書で使用される場合、「ハイブ」は、「VMハイブ」とも呼ばれる。ノード210A~210Dのうち、現在の仕事量のために使用され、ホストプロセッサ202からの割り当てられたタスクを受信するノードは、加入ノードと見なされる。対照的に、ノード210A~210Dのうち、現在の仕事量のために使用されず、ホストプロセッサ302からの割り当てられたタスクを受信しないノードは、未加入ノードと見なされる。様々な実施形態では、リンクインターフェース、例えば、コンピューティングシステム300のリンクインターフェース284は、電力管理のための分散型アプローチをサポートする。コンピューティングシステム300における電力遮断のためのネゴシエーションは、コンピューティングシステム200について以前説明されたステップを使用して、構成要素レベルで行われる。
先に説明したように、(図2の)コンピューティングシステム200に関して、リンクインターフェース284の電力遮断ユニット260は、少なくとも電力遮断予測値、電力遮断予測値の増分値及び減分値、待機閾値期間、目標アイドル閾値期間、並びに、成功閾値を使用して、リンク220上でノード210Bに電力遮断要求をいつ送信すべきかを判定する。先に説明したように、コンピューティングシステム300の他のリンクインターフェース、例えば、リンクインターフェース280及び282は、リンクインターフェース284の物理ユニット250及び電力遮断ユニット260等の構成要素を使用する。一例では、リンクインターフェース284と同様の構成要素250~268を有するリンクインターフェース280は、電力遮断の要求を送信する資格を有している。ノード210Aのリンクインターフェース280は、リンク222上でノード210Cにその要求を送信する。
ノード210Aのリンクインターフェース280が、ノード210Cのリンクインターフェースから、電力遮断要求が許可されたという電力遮断応答を受信した場合、ノード210Aのリンクインターフェース280及びノード210Cの対応するリンクインターフェースは、リンク222を電力遮断するステップの実行に進む。この時点は、(図1の)タイムライン50内の持続時間「D3」の開始と同等である。電力遮断動作は、ノード210A及び210C内のプロセッサ又は他のクライアントが依然として活動状態であるかどうかにかかわらず、リンク222のリンクインターフェースに対して実行される。ある実施形態では、リンクインターフェース280は、電力遮断応答とともに、ノード210Cの1つ以上のクライアントの動作状態の指標を受信する。更に、リンクインターフェース280が1つ以上のクライアント270の動作状態の指標と共に電力遮断要求を送信することが可能である。更に、ノード210Aが、ノード210A及びノード210C内のクライアントの動作状態及び/又は電力管理状態の指標を含む通知を、ノード210B、ノード210D及びホストプロセッサ302のうち1つ以上に送信することが企図される。したがって、ノード210A及び210Cのうち1つ以上のプロセッサが活動状態である間、リンク222を電力遮断することが可能である。先に説明したように、リンク222の物理層が電力遮断されているのに対して、リンク222の通信層は電力投入されたままである。同様の分散型アプローチが、リンク220についてはノード210A及び210Bによって、リンク224についてはノード210C及び210Dによって、リンク226についてはノード210B及び210D等によってサポートされる。
いくつかの設計では、ノード210Aの電力コントローラは、ノード210Aのリンク220、222及び228の閾値の数のリンクが電力遮断されたかどうかをモニタリングする。一例では、閾値の数のリンクは2つであり、リンク220及び222が電力遮断されている。この例では、リンク228は、ノード210Aに対して、依然として電力投入されている。各リンクではなく閾値の数のリンクがノード210Aについて電力遮断され、ノード210Aのプロセッサが、実行すべき残りのタスクを有することを示している場合、ある実施形態では、ノード210Aの電力コントローラは、プロセッサの電力管理状態をより高い性能の電力管理状態に変更する。いくつかの例では、より高い性能の電力管理状態への移行/変更は、第1のP状態からより高い性能の第2のP状態への移行である。他の例では、より高い性能の電力管理状態への移行/変更は、C状態からP状態への移行である。閾値の数のリンクが電力を消費していない間、ノード210Aのプロセッサは、より高い性能の電力管理状態でタスクを実行することができる。
リンク220、222及び228の各々がノード210Aに対して電力遮断され、ノード210Aのプロセッサがアイドル状態であると示している場合、ある実施形態では、ノード210Aの電力コントローラは、外部ノード内のプロセッサが活動状態であるかどうかにかかわらずノード210Aの構成要素を電力遮断する。例えば、ノード210Aの電力コントローラは、ノード210B、210C及び210D内のプロセッサが活動状態又はアイドル状態であるかどうかにかかわらずノード210Aを電力遮断する。ノード210Aの電力コントローラは、ノード210Aの通信機構の電力管理状態を、より低い性能の電力管理状態に変更する。いくつかの例では、より低い性能の電力管理状態への移行/変更は、第1のP状態からより低い性能の第2のP状態への移行である。他の例では、より低い性能電力管理状態への移行/変更は、P状態からC状態への移行である。いくつかの実施形態では、より低い性能の電力管理状態への移行/変更は、DRAMによって実装されるメモリ等のシステムメモリが自己リフレッシュモードに入ることができることを示している。ノード210B~210Dの電力コントローラは、ノード210Aの電力コントローラと同様の方法で動作する。いくつかの実施形態では、ノード210Aは、通信層上で、ノード210B~210Dのうち1つ以上及びホストプロセッサ302に、ノード210Aが電力遮断する予定であるというメッセージを送信する。
リンク220~230にわたるデータ転送は、ノード210A~210Dが実行する仕事量のタイプに起因して経時的に変化する。一例では、ノード210A~210Dは、ニューラルネットワークを訓練するタスクを実行する。この訓練は、計算フェーズと通信フェーズとの間の断続的な移行を含む。計算フェーズの間、ノード210A~210Dのプロセッサは、(図1の)メモリ132等のローカルシステムメモリに格納されたデータを使用してタスクを処理する。計算フェーズの間、ノード210A~210Dの電力コントローラ及びリンクインターフェースは、分散された個別の基準で未使用リンク220~230を電力遮断する。先に説明したように、少なくとも閾値の数のリンクがノード210A~210Dのうち特定のノード、例えば、ノード210Aについて電力遮断されている間、ノード210Aの電力コントローラは、ノード210Aの1つ以上のプロセッサの電力管理状態を、ニューラルネットワーク仕事量の計算フェーズを実行するためのより高い性能の電力管理状態に変更する。いくつかの実施形態では、ノード210Aは、ノード210Aのプロセッサの新しいより高い性能の電力管理状態及び/又は新しい動作状態の指標を含むメッセージを、ノード210B~210Dのうち1つ以上の活動状態ノードにも送信する。計算フェーズが終了した後、ノード210A~210Dは、共有すべき更新された重み値を有する。リンク220~230の通信層を利用して、ノード210A~210Dの電力コントローラ及びリンクインターフェースは、電力遮断されていたリンク220~230のうちいくつかのリンクを電力投入する。それらのリンクが再び電力投入されると、ノード210A~210Dは、通信フェーズ中に、更新された重み値を互いに送信する。
いくつかの設計では、ホストプロセッサ302の電力コントローラは、閾値の数のノード210A~210Dが電力遮断されたかどうかをモニタリングする。一例では、閾値の数のリンクは2つであり、ノード210A及び210Bが電力遮断されているのに対して、ノード210C及び210Dが電力投入されたままである。リンク228は,依然として、ノード210Aに対して電力投入されている。各ノードではなく閾値の数のノードが電力遮断され、ホストプロセッサ302が、実行すべき残りのタスクを有することを示している場合、ある実施形態では、ホストプロセッサ302の電力コントローラは、ホストプロセッサ202の電力管理状態を、より高い性能の電力管理状態に変更する。閾値の数のノードがコンピューティングシステム300内で電力を消費していないため、ホストプロセッサ302は、より高い性能の電力管理状態でタスクを実行することができる。ノード210A~210Dの各々が電力遮断され、ホストプロセッサ302がそのノードがアイドル状態であることを示す場合、ある実施形態では、ホストプロセッサ302の電力コントローラは、ホストプロセッサ302及びその対応するメモリを電力遮断する。
図5を参照すると、マルチノードコンピューティングシステムの電力管理を実行するための方法400の一実施形態が示されている。説明目的のため、この実施形態(並びに、図6~図8)におけるステップが順番に示されている。しかしながら、説明される方法の様々な実施形態では、記載された要素のうち1つ以上が、図示された順番とは異なる順番で同時に実行されてもよいし、全体的に省略されてもよいことに留意されたい。必要に応じて、他の追加の要素も実行される。本明細書に記載の様々なシステム又は装置の何れも、方法400を実施するように構成されている。
2つ以上のノードが、コンピューティングシステムのパーティション内に配置される。これらのノードは、1つ以上のプロセッサ、ローカルメモリ、電力コントローラ、及び、リンクを介して他のノードにメッセージを転送するための複数のリンクインターフェースを含む。ある実施形態では、ホストプロセッサが、タスクをノードのプロセッサに割り当てる。様々な設計では、ホストプロセッサは、汎用CPUである。他の実施形態では、アプリケーションが個別のノード上で実行され、ノード内のCPUは、タスクを、ノード内のGPU等の並列データプロセッサに割り当てる。更に、ノードの各々は、ダイレクトメモリアクセス(DMA)要求、並びに、他のコマンド及びタスクを、ノードのうち別の1つのノードに送信することができる。ノードが電力遮断されるが、そのノードが現在の仕事量にとって必要とされる場合、ホストプロセッサ及び活動状態である別のノードのうち1つ以上は、電力遮断されたノードに電力投入要求を送信する。一例では、ホストプロセッサは、電力遮断されたノードのリンクの通信層上で転送される電力投入要求の指標を送信する。別の例では、別の活動状態のノードが、ダイレクトメモリアクセス(DMA)要求を、電力遮断されたノードのプロセッサ、例えば、GPUのメモリに送信する。いくらかの仕事量について、各ノードは、その仕事量に対して活動状態となり、ホストプロセッサ及び別の活動状態ノードのうち1つ以上から割り当てられたタスクを受信する。他の仕事量について、1つ以上のノードは使用されず、割り当てられたタスクを受信しない。これらのノード及び対応するリンクは、アイドル状態になり、測定されたアイドル時間に基づいて、電力遮断する資格を得る。タスクがノードのプロセッサに割り当てられる方法にかかわらず、仕事量のために使用されないノードのリンクを電力遮断するためのステップは、その仕事量で使用されるノードのリンクを電力遮断するためのステップと同様であるが、そのリンクは、計算フェーズ中又はタスクの完了時にアイドル状態になる。これらのステップは、以下に更に説明される。
タスクが割り当てられているノードのプロセッサは、そのタスクを処理する(ブロック402)。様々な設計では、ノードは、画像処理ユニット(GPU)を使用し、そのノードは、GPUを利用してタスクを処理する不均一メモリアクセス(NUMA)ノードである。ノードのリンクインターフェースは、モニタを使用して、リンクインターフェース上のデータ転送をモニタリングする(ブロック404)。リンクインターフェースのアイドル状態の一例としては、別のノードに転送するためのメッセージ及び/又はペイロードデータを格納するリンクインターフェースの入力キューが空であること、又は、それ以外では、入力キューが別のノードに送信するためのメッセージ又はデータを格納しないことである。更に、リンクインターフェースは、データが別のノードから受信されていないことを検出する。リンクインターフェースの回路がアイドル状態を検出しない場合(条件付きブロック406の「いいえ」)、方法400の制御フローは、ノードがタスクを処理するブロック402に戻る。
リンクインターフェースの回路がアイドル状態を検出したが(条件付きブロック406の「はい」)、リンクインターフェースの回路が、アイドル状態が、少なくとも目標アイドル閾値期間の間、リンクインターフェースがアイドル状態のままであることにつながると予測しない場合(条件付きブロック408の「いいえ」)、リンクインターフェースは、リンクインターフェースを電力遮断しようと試みる前に、待機閾値期間が経過するのを待機することを開始する(ブロック410)。様々な実施形態では、待機閾値期間は、目標アイドル閾値期間よりも長い。様々な実施形態では、目標アイドル閾値期間に対する待機閾値期間の比は、1よりも大きい任意の正の値であり、この比は、設計要件に基づいて選択される。目標閾値期間及び待機閾値期間は、(図1の)タイムライン50内の持続時間「D1」及び「D7」と同等である。
リンクインターフェースが、そのリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みを検出した場合(条件付きブロック412の「はい」)、方法400の制御フローは、ブロック402に戻り、そこでは、ノードのプロセッサは、割り当てられたタスクを処理する。これらの割り込みの例には、リンクインターフェースの入力キューに格納するために同じノードのプロセッサから到達するメッセージ、別のノードから到達するメッセージ、及び、電力遮断要求の拒否を指定する指標とともに到達するメッセージがある。リンクインターフェースが、そのリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みを検出しなかったが(条件付きブロック412の「いいえ」)、待機閾値期間が経過していない場合(条件付きブロック414の「いいえ」)、リンクインターフェースは、待機することを継続し、方法400の制御フローは、条件付きブロック412に戻る。しかしながら、リンクインターフェースが、そのリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みを検出せず(条件付きブロック412の「いいえ」)、待機閾値期間が経過した場合(条件付きブロック414の「はい」)、リンクインターフェースは、待機閾値期間が経過するのを待機せずに、リンクインターフェースを電力遮断することを要求するためのステップの実行を開始する(ブロック416)。様々な実施形態では、リンクインターフェースは、必ずしも待機せずに、リンクインターフェースを電力遮断することを要求するためのステップの実行を開始する。(図1の)タイムライン50を簡単に参照すると、リンクインターフェースは、ケース3において、持続時間「D7」から持続時間「D2」の開始に移行する。
リンクインターフェースがアイドル状態を検出し(条件付きブロック406の「はい」)、リンクインターフェースが、アイドル状態が、少なくとも目標アイドル閾値期間の間、そのリンクインターフェースがアイドル状態のままであることにつながると予測した場合(条件付きブロック408の「はい」)、リンクインターフェースは、更なる時間が経過するのを待機することなく、リンクインターフェースを電力遮断することを要求するためのステップの実行を開始する(ブロック416)。(図1の)タイムライン50を簡単に参照すると、リンクインターフェースは、ケース1及びケース2について示されているように、時間t1で電力遮断メッセージ伝達を開始する。いくつかの実施形態では、持続時間「D2」内の電力遮断メッセージ伝達中に実行されるステップは、電力遮断要求の指標、電力遮断応答(受諾/許可、拒否)の指標、電力遮断応答(受諾/許可、拒否)の確認応答、電力遮断要求の撤回、ノードのクライアントのうちの1つ以上のアイドル/活動ステータスの指標を有するメッセージ、及び、対応するリンクインターフェースのアイドル/活動ステータスの指標を有するメッセージ、のうち1つ以上等のメッセージを送信することを含む。これらのメッセージの送信中に、リンクインターフェース及び他の対応するリンクインターフェースが、それらが電力遮断の準備ができていると判定した場合に、電力遮断動作の開始の指標を含むメッセージが送信される。(図1の)タイムライン50を簡単に参照すると、この時点は、持続時間「D2」から持続時間「D3」への移行と同等である。リンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであったか否かを使用して、以下の考察で更に説明されるように、リンクインターフェース内の予測器を更新する。
ここで、図6を参照すると、マルチノードコンピューティングシステムの電力管理を実行するための方法500の一実施形態が示されている。2つ以上のノードが、コンピューティングシステムのパーティション内に配置され、タスクがそのノードに割り当てられる。ノードのリンクインターフェースが、アイドル状態を検出する(ブロック502)。リンクインターフェースが、目標アイドル閾値期間が経過したことを検出せず(条件付きブロック504の「いいえ」)、リンクインターフェースが、そのリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みを検出していない場合(条件付きブロック506の「いいえ」)、リンクインターフェースは、待機することを継続し、方法500の制御フローは、条件付きブロック504に戻る。目標アイドル閾値期間は、(図1の)タイムライン50の持続時間「D1」と同等である。
リンクインターフェースが、目標アイドル閾値期間が経過したことを検出せず(条件付きブロック504の「いいえ」)、リンクインターフェースが、そのリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みを検出した(条件付きブロック506の「はい」)場合、リンクインターフェースは、そのリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであるというより低い信頼度を示すように、電力遮断予測値を更新する(ブロック508)。一例では、特定のリンクインターフェースは、(図3の)電力遮断ユニット260の説明中に先に説明したように、電力遮断予測値を減少させる。リンクインターフェースが、目標アイドル閾値期間が経過したことを検出した場合(条件付きブロック504の「はい」)、リンクインターフェースは、そのリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであるというより高い信頼度を示すように、電力遮断予測値を更新する(ブロック510)。一例では、特定のリンクインターフェースは、(図3の)電力遮断ユニット260の説明中に先に説明したように、電力遮断予測値を増加させる。
特定のリンクインターフェースは、電力遮断予測値を成功閾値と比較する。電力遮断予測値が成功閾値未満である場合(条件付きブロック512の「はい」)、その特定のリンクインターフェースは、そのリンクインターフェースの次の検出されたアイドル状態が、閾値期間の間、リンクインターフェースがアイドル状態のままであることにはつながらないことを示すように、予測を更新する(ブロック514)。それ以外の場合では、電力遮断予測値が成功閾値以上である場合(条件付きブロック512の「いいえ」)、その特定のリンクインターフェースは、そのリンクインターフェースの次の検出されたアイドル状態が、閾値期間の間、リンクインターフェースがアイドル状態のままであることにつながることを示すように、予測を更新する(ブロック516)。
様々な実施形態では、パラメータ、例えば、目標アイドル閾値期間、待機閾値期間、電力遮断予測値更新の量、及び、成功閾値は、コンピューティングシステムが様々な仕事量を処理する間のコンピューティングシステムの試験中に判定される。いくつかの実施形態では、リンクインターフェースは、更なる調整を行うことなく、これらのパラメータの判定された値を使用する。他の実施形態では、リンクインターフェースは、回路内に、特定の仕事量のタイプを識別する識別子と、パラメータの一組の値との間のマッピングを記憶する。したがって、リンクインターフェースは、処理すべき現在の仕事量に基づいて、パラメータの動的な調整を可能にする。割り当てられたタスクを受信する場合、ノードは、仕事量のタイプの指標も受信し、ノードのリンクインターフェースは、分散型電力管理のために使用される上記のパラメータを更新することができる。
図7を参照すると、マルチノードコンピューティングシステムの電力管理を実行するための方法600の一実施形態が示されている。2つ以上のノードが、コンピューティングシステムのパーティション内に配置され、タスクがそのノードに割り当てられる。第1のノードのアイドル状態の第1のリンクインターフェースが、電力遮断を開始する時間であると判定する(ブロック602)。例えば、第1のリンクインターフェースの回路は、状態が(図5の)先の方法400のブロック416と同等である状態に到達したと判定している。例えば、第1のリンクインターフェースの回路は、アイドル状態が検出されたことと、アイドル状態が、目標アイドル閾値期間の間、第1のリンクインターフェースがアイドル状態のままであることにつながると予測することと、の両方を判定している。第1のリンクインターフェースは、対応するリンク上で要求を送信して、第1のノードの第1のリンクインターフェース、及び、そのリンクの他方の側の第2のノードの第2のリンクインターフェースを電力遮断する(ブロック604)。第1のリンクインターフェースは、電力遮断要求を第2のリンクインターフェースに送信する。この電力遮断要求は、(図1の)タイムライン50の持続時間「D2」の電力遮断メッセージ伝達において使用されるメッセージと同等のメッセージである。持続時間「D2」(電力遮断メッセージ伝達の持続時間)中に使用される様々なタイプの電力遮断メッセージの例が、(図1の)タイムライン50、(図2の)リンクインターフェース284及びマルチノードコンピューティングシステムの電力管理を実行するための(図4の)方法400についての先の説明内において提供されている。電力遮断要求を送信することによって、第1のリンクインターフェースは、タイムライン50の持続時間「D2」中に発生する電力遮断メッセージ伝達を開始している。方法600の説明は、電力遮断メッセージ伝達を開始する第1のリンクインターフェースを有するが、第2のリンクインターフェースは、第1のリンクインターフェースと第2のリンクインターフェースとの間の電力遮断メッセージ伝達を開始することが可能であり、企図されることに留意されたい。言い替えると、(図1の)ノード10A~10Bのリンクインターフェースと同様に、第1のリンクインターフェース及び第2のリンクインターフェースの各々は、リンクインターフェースの電力遮断を開始すること、及び、方法600について説明されたステップを実行することを可能にする。
第1のリンクインターフェースが、その第1のリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みを検出した場合(条件付きブロック606の「はい」)、第1のリンクインターフェースは、第1のノードと第2のノードとの間のリンク接続を維持する(ブロック608)。先に説明したように、これらの割り込みの例には、第1のリンクインターフェースの入力キューに格納されるための、同じノードのプロセッサから到達するメッセージ、別のノードから到達するメッセージ及び電力遮断要求の拒否を指定する指標とともに到達するメッセージがある。いくつかの実施形態では、第1のリンクインターフェースは、電力遮断要求の撤回を示すメッセージを第2のリンクインターフェースに送信する。
第1のリンクインターフェースが、その第1のリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みを検出しないが(条件付きブロック606の「いいえ」)、第1のリンクインターフェースが、第2のリンクインターフェースの電力遮断の準備ができていることを示す電力遮断応答を受信していない場合(条件付きブロック610の「いいえ」)、方法600の制御フローは、条件付きブロック606に戻り、そこでは、第1のリンクインターフェースは、第2のリンクインターフェースからの応答を待機し続ける。第1のリンクインターフェースが待機している間、そのリンクインターフェースは、リンクを介して送信するメッセージを格納するために使用されるキュー、及び、リンクから受信されたメッセージを格納するために使用されるキューをモニタリングする。
第1のリンクインターフェースが待機している間、第2のリンクインターフェースは、第1のリンクインターフェースから電力遮断要求を受信し、それが活動動作状態又はアイドル動作状態を有するかどうかを判定する。第2のリンクインターフェースが、それが活動状態であると判定した場合、第2のリンクインターフェースは、第1のリンクインターフェースからの電力遮断要求を拒否する電力遮断応答等のメッセージを送信する。ある実施形態では、そのメッセージは、第2のリンクインターフェースの活動動作状態の指標を含む。第2のリンクインターフェースが、それがアイドル状態であると判定した場合、第2のリンクインターフェースは、第1のリンクインターフェースからの電力遮断要求を受諾/許可する電力遮断応答等のメッセージを送信する。ある実施形態では、そのメッセージは、第2のリンクインターフェースのアイドル動作状態の指標を含む。いくつかの実施形態では、このタイプのメッセージを送信した後、第2のリンクインターフェースは、電力遮断動作の実行を開始する。他の実施形態では、第2のリンクインターフェースは、電力遮断を継続することを示す、第1のリンクインターフェースからの確認応答を待機する。この時点は、(図1の)タイムライン50内の持続時間「D3」の開始と同等である。
第1のリンクインターフェースが、その第1のリンクインターフェースが目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みを検出せず(条件付きブロック606の「いいえ」)、第1のリンクインターフェースが、第2のリンクインターフェースの電力遮断の準備ができていることを示す電力遮断応答を受信した場合(条件付きブロック610の「はい」)、第1のリンクインターフェース及び第2のリンクインターフェースは、電力遮断する(ブロック612)。この電力遮断応答は、(図1の)タイムライン50の持続時間「D2」の電力遮断メッセージ伝達で使用されるメッセージと同等であるメッセージである。更に、方法600のブロック612に到達することは、(図1の)タイムライン50内の持続時間「D2」から持続時間「D3」への移行と同等であり、1つ以上の電力遮断動作が開始される。先に説明したように、第1のリンクインターフェースを電力遮断することには、ドライバを無効にすること、1つ以上のクロック信号を無効にすること、第1のリンクインターフェースの1つ以上の構成要素への電力供給を無効にすること、及び、1つ以上の構成要素をスリープモード又は最低性能の電力管理状態に移行させること、のうち1つ以上が含まれる。様々な実施形態では、第1のリンクインターフェースは、通信層の低速データ回線の現在の動作状態を維持しながら、物理層の高速データ回線に対応する構成要素を電力遮断する。
第2のリンクインターフェースが、電力遮断を受諾/許可する電力遮断応答を送信する場合に、第1のリンクインターフェースは、第1のノード及び第2のノード内のクライアントが活動状態又はアイドル状態であるかどうかにかかわらず電力遮断する。ある実施形態では、第1のリンクインターフェースは、第2のノードからの電力遮断応答とともに、第2のノードの1つ以上のクライアントの動作状態の指標を受信する。一例では、第2のノードの少なくとも1つのクライアントが活動状態である場合に、電力遮断応答内の指標は、第2のノードの活動ステータスを指定する。対照的に、第2のノードの各クライアントがアイドル状態である場合に、電力遮断応答内の指標は、第2のノードのアイドルステータスを指定する。更に、第1のリンクインターフェースが、先の電力遮断要求において、第1のノードの1つ以上のクライアントの動作状態の指標を送信することが可能である。いくつかの設計では、その指標は、電力遮断応答について説明された指標と同様である。更に、第1のノード及び第2のノードのうち1つ以上は、第1のノード及び第2のノードのうちの1つ以上におけるクライアントの動作状態の指標を含む(メッセージ内の)通知を1つ以上の他のノードに送信することが企図される。これらの指標は、以下の考察で説明されるように、ノードを電力遮断すべきかどうかを判定するために使用される。
図8を参照すると、マルチノードコンピューティングシステムの電力管理を実行するための方法700の一実施形態が示されている。複数のノードのプロセッサは、割り当てられたタスクを処理する(ブロック702)。複数のノードのうち第1のノードが、第1のノードのリンクインターフェースが電力遮断されていると判定しない場合(条件付きブロック706の「いいえ」)、パーティションの活動状態ノードは、残りのタスクを処理し続ける(ブロック708)。その後、方法700の制御フローは、条件付きブロック706に戻る。複数のノードのうち第1のノードが、第1のノードのリンクインターフェースが電力遮断されているが(条件付きブロック706の「はい」)、第1のノードのプロセッサが活動状態である(条件付きブロック710の「いいえ」)と判定した場合、第1のノードの電力コントローラは、プロセッサの電力管理状態をより高い性能の電力管理状態に変更する(ブロック712)。その後、方法700の制御フローは、ブロック708に移動し、そこでは、パーティションの活動状態ノードは、残りのタスクを処理し続ける。各リンクではなく閾値の数のリンクがノードに対して電力遮断され、プロセッサが、実行するべき残りのタスクを有することを示している場合、ある実施形態では、第1のノードの電力コントローラは、プロセッサの電力管理状態をより高い性能の電力管理状態に変更することに留意されたい。閾値の数のリンクは、電力を消費していないため、プロセッサは、より高い性能の電力管理状態でタスクを実行することができる。
複数のノードのうち第1のノードが、第1のノードのリンクインターフェースが電力遮断され(条件付きブロック706の「はい」)、第1のノードのクライアントがアイドル状態である(条件付きブロック710の「はい」)と判定した場合、第1のノードは、その第1のノードがアイドル状態であることを指定する指標を、パーティションの1つ以上の他のノードのプロセッサに送信する(ブロック714)。いくつかの実施形態では、高速物理層が電力遮断されているため、第1のノードは、通信層上で、その第1のノードのクライアントの活動ステータスからアイドルステータスへの移行の指標を送信する。第1のノードの電力コントローラは、第1のノードのクライアント及び他の構成要素を電力遮断する(ブロック716)。例えば、ローカルメモリが自己リフレッシュモードに置かれ、1つ以上のクロック信号が第1のノードのプロセッサに対して無効にされ、プロセッサの1つ以上の電力供給がゲート制御される。場合によっては、第1のノードは、電力管理のための分散型アプローチをサポートする、コンピューティングシステム内で電力遮断する最後に残っているノードである。他の場合には、第1のノードは、コンピューティングシステム内で電力遮断するために最後に残っているノードではないが、1つ以上の他の活動状態ノードは、第1のノードが、ブロック714において送信された指標により、電力遮断されていることを認識している。タスクを処理するために第1のノードが再度必要とされる場合に、第1のノードは、割り当てられたタスクの準備ができていることを指定する指標を受信し、第1のノードは、電力投入ステップを実行する。そのような時点において、ブロック702のステップは、タスクを処理する1つ以上の活動状態ノードのうち何れかである第1のノードを用いて再度実行される。
図9を参照すると、マルチノードコンピューティングシステム900の一実施形態の一般化されたブロック図が示されている。先に説明された回路は、全く同様に番号付けされている。例示された実施形態では、ホストプロセッサ302は、スイッチ304を介して、コマンド、メッセージ及びデータを、マルチノードパーティション340及びマルチノードパーティション940に転送する。いくつかの実施形態では、パーティション340及び940の各々は、サーバ内のマルチソケットマザーボードのソケット内に配置されたマルチチップモジュール(MCM)である。2つのパーティションが図示されているが、他の実施形態では、コンピューティングシステム900は、別の数のパーティションを含む。
様々な実施形態では、パーティション240の処理ノード210A~210Dの各々、及び、パーティション640の処理ノード910A~910Dの各々は、(図2の)処理ノード100について先に説明された機能を有する。ある実施形態では、リンク920~930、932及び934は、リンク220~230によってサポートされるものと同じ通信プロトコルをサポートする。いくつかの設計では、ノード210A~210D及びノード910A~910Dは、タスクを処理するためのGPUを利用する不均一メモリアクセス(NUMA)ノードである。様々な実施形態では、コンピューティングシステム900は、(図2~図4の)コンピューティングシステム100~300について先に説明したように、電力管理のための分散型アプローチを使用する。いくつかのケースでは、リンク932及び934のうち1つ以上が電力遮断されているのに対し、パーティション340及び940のリンク及びノードのうちの1つ以上は電力投入されたままである。場合によっては、パーティション340及び940のうち一方が電力遮断されているのに対し、パーティション340及び940のうち他の1つは電力投入されたままである。
図10を参照すると、マルチノードコンピューティングシステム1200の別の実施形態の一般化されたブロック図が示されている。様々な実施形態では、処理ノード(又はノード)1210A~1210Hの各々は、(図2の)処理ノード100、(図3~図4の)ノード210A~210D、及び、(図10の)ノード910A~910Dについて先に説明された機能を有する。更に、リンク1220~1234の各々は、(図3の)リンクインターフェース280~284等の付随するリンクインターフェースを有する(図3の)リンク220~230と同等の機能を有する。いくつかの実施形態では、コンピューティングシステム1200は、リンク1220~1234に加えて、ノード1210A~1210H間に他のリンクを含む。これらの他のリンク(図示省略)は、データ通信のために使用されるのに対し、リンク1220~1234は、電力管理メッセージ伝達のために使用される。したがって、ある実施形態では、これらの他のリンクは、サービス要求へのデータ移送のために使用されるのに対し、リンク1220~1234は、集中型システム全体の電力遮断及び分散型構成要素レベルの電力遮断をネゴシエーションするためのメッセージ等のメッセージ伝達のために使用される。
例示された実施形態では、ノード1210Aは、コンピューティングシステム1200のルートノード(マスターノード)であるのに対し、ノード1210G及びノード1210Hの各々は、リーフノードである。ノード1210B~1210Fの各々は、ルートノード1210Aと、リーフノード1210G~1210Hとの間の中間ノードである。したがって、リングデータ通信トポロジーが使用される。様々な実施形態では、コンピューティングシステム900は、(図2~図4の)コンピューティングシステム100~300について先に説明したように、電力管理のための分散型アプローチを使用する。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、以前に説明された方法及び/又はメカニズムを実装する。それらのプログラム命令は、C言語等の高級プログラミング言語でハードウェアの挙動を記述する。あるいは、Verilog等のハードウェア設計言語(HDL)が使用される。それらのプログラム命令は、非一時的なコンピュータ可読記憶媒体に格納される。多数のタイプの記憶媒体が利用可能である。記憶媒体は、使用中、コンピューティングシステムによってアクセス可能であり、その結果、プログラム実行のために、プログラム命令及び付随するデータをコンピューティングシステムに提供する。コンピューティングシステムは、少なくとも1つ以上のメモリと、プログラム命令を実行する1つ以上のプロセッサと、を含む。
上述した実施形態は、単に非限定的な実施態様の例であることを強調しておきたい。上記の開示が十分に理解されると、多数の変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含すると解釈されることが意図されている。

Claims (20)

  1. コンピューティングシステムであって、
    第1のパーティションであって、タスクを処理するように構成された複数のノードと、前記複数のノード間の複数のリンクと、を含む第1のパーティションを備え、
    前記複数のノードのうち第1のノードは、前記第1のノードと第2のノードとの間の前記複数のリンクのうち第1のリンク上でデータを転送するように構成された前記第1のノードの第1のリンクインターフェースの電源遮断を、
    前記第1のリンクインターフェースのアイドル状態が発生したことと、
    前記アイドル状態が、少なくとも目標アイドル閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながるという予測と、
    を判定したことに応じて開始するように構成されている、
    コンピューティングシステム。
  2. 前記第1のノードは、前記目標アイドル閾値期間よりも長い待機閾値期間の間、前記第1のリンクインターフェースの電力遮断の開始を、
    前記第1のリンクインターフェースの前記アイドル状態が発生したことと、
    前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながらないという予測と、
    を判定したことに応じて遅延させるように更に構成されている、
    請求項1のコンピューティングシステム。
  3. 前記第1のノードは、
    前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながるより高い信頼度を示すために、電力遮断予測値を、
    前記目標アイドル閾値期間が経過する前に、前記第1のリンクインターフェースが前記目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みが発生していないと判定したことに応じて、更新するように更に構成されている、
    請求項1のコンピューティングシステム。
  4. 前記第1のノードは、
    前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながるより低い信頼度を示すために、電源遮断予測値を、
    前記目標アイドル閾値期間が経過する前に、前記第1のリンクインターフェースが前記目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みが発生したと判定したことに応じて、更新するように更に構成されている、
    請求項3のコンピューティングシステム。
  5. 前記割り込みが発生したと判定するために、前記第1のノードは、メッセージが、前記第1のリンク上で送信するための前記第1のインターフェースに到達したと判定するように更に構成されている、
    請求項4のコンピューティングシステム。
  6. 前記第1のリンクインターフェースは、
    前記電力遮断予測値が閾値未満であると判定したことに応じて、前記第1のリンクインターフェースの次の検出されたアイドル状態が、前記閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながらないことを示すように予測を更新するように更に構成されている、
    請求項4のコンピューティングシステム。
  7. 前記第1のリンクインターフェースは、
    前記電力遮断予測値が閾値以上であると判定したことに応じて、前記第1のリンクインターフェースの次の検出されたアイドル状態が、前記閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながることを示すように予測を更新するように更に構成されている、
    請求項4のコンピューティングシステム。
  8. 前記コンピューティングシステムは、第2のパーティションを更に備え、
    前記第1のパーティションが、前記第1のパーティションの各ノードが電力遮断されていると判定したことに応じて、前記第2のパーティションが1つ以上の活動状態ノードを有する間に、前記第1のパーティションの残りの構成要素を電力遮断するように構成されている、
    請求項1のコンピューティングシステム。
  9. 方法であって、
    第1のパーティションが複数のタスクを処理することであって、前記第1のパーティションは、タスクを処理するように構成された複数のノードと、前記複数のノード間の複数のリンクと、を含む、ことと、
    前記複数のノードのうち第1のノードが、前記第1のノードと第2のノードとの間の前記複数のリンクのうち第1のリンク上でデータを転送するように構成された前記第1のノードの第1のリンクインターフェースの電力遮断を、
    前記第1のリンクインターフェースのアイドル状態が発生したことと、
    前記アイドル状態が、少なくとも目標アイドル閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながるという予測と、
    を判定したことに応じて開始することと、を含む、
    方法。
  10. 前記目標アイドル閾値期間よりも長い待機閾値期間の間、前記第1のリンクインターフェースの電力遮断の開始を、
    前記第1のリンクインターフェースの前記アイドル状態が発生したことと、
    前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながらないという予測と、
    を判定したことに応じて遅延させることを更に含む、
    請求項9の方法。
  11. 前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながるより高い信頼度を示すために、電力遮断予測値を、
    前記目標アイドル閾値期間が経過する前に、前記第1のリンクインターフェースが前記目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みが発生していないと判定したことに応じて、更新することを更に含む、
    請求項9の方法。
  12. 前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながるより低い信頼度を示すために、電力遮断予測値を、
    前記目標アイドル閾値期間が経過する前に、前記第1のリンクインターフェースが前記目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みが発生したと判定したことに応じて、更新することを更に含む、
    請求項11の方法。
  13. 前記割り込みが発生したと判定するために、前記方法は、メッセージが、前記第1のリンク上で送信するための前記第1のインターフェースに到達したと判定することを更に含む、
    請求項12の方法。
  14. 前記電力遮断予測値が閾値未満であると判定したことに応じて、前記第1のリンクインターフェースの次の検出されたアイドル状態が、前記閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながらないことを示すように予測を更新することを更に含む、
    請求項12の方法。
  15. 前記電力遮断予測値が閾値以上であると判定したことに応じて、前記第1のリンクインターフェースの次の検出されたアイドル状態が、前記閾値期間の間、前記第1のリンクインターフェースがアイドル状態のままであることにつながることを示すように予測を更新することを更に含む、
    請求項14の方法。
  16. 装置であって、
    第1のノードと第2のノードとの間のリンク上でデータ転送を管理するように構成されている物理ユニットと、
    電力遮断ユニットと、を備え、
    前記電力遮断ユニットは、前記装置の電力遮断を、
    前記装置のアイドル状態が発生したことと、
    前記アイドル状態が、少なくとも目標アイドル閾値期間の間、前記装置がアイドル状態のままであることにつながるという予測と、
    を判定したことに少なくとも部分的に基づいて開始するように構成されている、
    装置。
  17. 前記電力遮断ユニットは、前記目標アイドル閾値期間よりも長い待機閾値期間の間、前記装置の電力遮断の開始を、
    前記装置の前記アイドル状態が発生したことと、
    前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記装置がアイドル状態のままであることにつながらないという予測と、
    を判定したことに応じて遅延させるように更に構成されている、
    請求項16の装置。
  18. 前記電力遮断ユニットは、
    前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記装置がアイドル状態のままであることにつながる高い信頼度を示すために、電力遮断予測値を、
    前記目標アイドル閾値期間が経過する前に、前記装置が前記目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みが発生していないと判定したことに応じて、更新するように更に構成されている、
    請求項16の装置。
  19. 前記電力遮断ユニットは、
    前記アイドル状態が、少なくとも前記目標アイドル閾値期間の間、前記装置がアイドル状態のままであることにつながるより低い信頼度を示すために、電力遮断予測値を、
    前記目標アイドル閾値期間が経過する前に、前記装置が前記目標アイドル閾値期間の間アイドル状態のままであることを妨げる割り込みが発生したと判定したことに応じて、更新するように更に構成されている、
    請求項18の装置。
  20. 前記電力遮断ユニットは、
    前記電力遮断予測値が閾値未満であると判定したことに応じて、前記装置の次の検出されたアイドル状態が、前記閾値期間の間、前記装置がアイドルの状態のままであることにつながらないことを示すように予測を更新するように更に構成されている、
    請求項19の装置。
JP2023518226A 2020-09-24 2021-09-23 マルチgpuシステムの分散型電力管理を実行するためのメカニズム Pending JP2023543723A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/031,739 2020-09-24
US17/031,739 US20220091657A1 (en) 2020-09-24 2020-09-24 Mechanism for performing distributed power management of a multi-gpu system
PCT/US2021/051814 WO2022066951A2 (en) 2020-09-24 2021-09-23 Mechanism for performing distributed power management of a multi-gpu system

Publications (1)

Publication Number Publication Date
JP2023543723A true JP2023543723A (ja) 2023-10-18

Family

ID=78483474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023518226A Pending JP2023543723A (ja) 2020-09-24 2021-09-23 マルチgpuシステムの分散型電力管理を実行するためのメカニズム

Country Status (6)

Country Link
US (1) US20220091657A1 (ja)
EP (1) EP4217824A2 (ja)
JP (1) JP2023543723A (ja)
KR (1) KR20230073224A (ja)
CN (1) CN116490839A (ja)
WO (1) WO2022066951A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11960596B2 (en) * 2021-03-11 2024-04-16 Xilinx, Inc. Network interface device
US20230051225A1 (en) * 2021-08-10 2023-02-16 Visa International Service Association System, Method, and Computer Program Product for Segmenting Accounts
US20240073058A1 (en) * 2022-08-23 2024-02-29 Mellanox Technologies Ltd. Predicting inactivity patterns for a signal conductor

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984314B2 (en) * 2007-05-14 2011-07-19 Intel Corporation Power management of low power link states
US8156362B2 (en) * 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8112651B2 (en) * 2008-09-25 2012-02-07 Intel Corporation Conserving power in a computer system
US20130003559A1 (en) * 2011-06-30 2013-01-03 Broadcom Corporation Adaptive Power Savings for Aggregated Resources
US8868955B2 (en) * 2011-07-01 2014-10-21 Intel Corporation Enhanced interconnect link width modulation for power savings
US8689028B2 (en) * 2011-07-01 2014-04-01 Intel Corporation Method and apparatus to reduce idle link power in a platform
US20130332764A1 (en) * 2012-06-08 2013-12-12 Apple Inc. Intelligent inter-processor communication with power optimization
US10320577B2 (en) * 2014-10-27 2019-06-11 Hewlett-Packard Development Company, L.P. Disregarding input in wake-on-LAN boot
US9563261B2 (en) * 2014-11-25 2017-02-07 International Business Machines Corporation Management of power consumption in large computing clusters
US20160314024A1 (en) * 2015-04-24 2016-10-27 Mediatek Inc. Clearance mode in a multicore processor system
US10275008B2 (en) * 2016-09-22 2019-04-30 Intel Corporation Methods and apparatus to reduce computing device power consumption
US20180188797A1 (en) * 2016-12-29 2018-07-05 Intel Corporation Link power management scheme based on link's prior history

Also Published As

Publication number Publication date
KR20230073224A (ko) 2023-05-25
WO2022066951A2 (en) 2022-03-31
EP4217824A2 (en) 2023-08-02
WO2022066951A3 (en) 2022-04-28
US20220091657A1 (en) 2022-03-24
CN116490839A (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
JP2023543723A (ja) マルチgpuシステムの分散型電力管理を実行するためのメカニズム
JP7383631B2 (ja) システムオンチップ(SoC)エージェントのリセットおよび電力管理のためのプロトコルレベル制御
TWI569202B (zh) 用於基於網路負載來調整處理器電力使用之設備及方法
US10671148B2 (en) Multi-node system low power management
TW201137753A (en) Methods and apparatus to improve turbo performance for events handling
US20210333860A1 (en) System-wide low power management
TW201217954A (en) Power management in a multi-processor computer system
JP2006506736A (ja) システム管理信号を分配する方法および装置
WO2022271239A1 (en) Queue scaling based, at least, in part, on processing load
US10572183B2 (en) Power efficient retraining of memory accesses
JP6425492B2 (ja) 情報処理装置、情報処理方法およびプログラム
US20220263770A1 (en) Application-to-application resource reservation schemes for precision networking
US9285865B2 (en) Dynamic link scaling based on bandwidth utilization
BR112014024206B1 (pt) Equipamento, método implementado por computador e sistema para controle de gerenciamento de energia em microsservidores.
JP2010009570A (ja) マルチパス・データ通信においてエネルギーを節約するためのコンピュータ実行される方法、コンピュータ使用可能なプログラム製品、およびデータ処理システム
US20230153121A1 (en) Accelerator usage prediction for improved accelerator readiness
US20240085972A1 (en) Chiplet state aware and dynamic voltage regulator event handling
US20230009970A1 (en) In-band communication interface power management fencing
US20230098742A1 (en) Processor Power Management Utilizing Dedicated DMA Engines
US20220158865A1 (en) Asynchronous communication in multiplexed topologies
TW202328931A (zh) 用於可重組態處理器的強制停止