IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

特開2024-25647コンピューティングシステム制御装置及び方法
<>
  • 特開-コンピューティングシステム制御装置及び方法 図1
  • 特開-コンピューティングシステム制御装置及び方法 図2
  • 特開-コンピューティングシステム制御装置及び方法 図3
  • 特開-コンピューティングシステム制御装置及び方法 図4
  • 特開-コンピューティングシステム制御装置及び方法 図5
  • 特開-コンピューティングシステム制御装置及び方法 図6
  • 特開-コンピューティングシステム制御装置及び方法 図7
  • 特開-コンピューティングシステム制御装置及び方法 図8
  • 特開-コンピューティングシステム制御装置及び方法 図9A
  • 特開-コンピューティングシステム制御装置及び方法 図9B
  • 特開-コンピューティングシステム制御装置及び方法 図9C
  • 特開-コンピューティングシステム制御装置及び方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024025647
(43)【公開日】2024-02-26
(54)【発明の名称】コンピューティングシステム制御装置及び方法
(51)【国際特許分類】
   G06F 1/3206 20190101AFI20240216BHJP
   G06F 1/3296 20190101ALI20240216BHJP
   G06F 1/324 20190101ALI20240216BHJP
   G06F 1/3234 20190101ALI20240216BHJP
   G06F 9/50 20060101ALI20240216BHJP
【FI】
G06F1/3206
G06F1/3296
G06F1/324
G06F1/3234
G06F9/50 150A
【審査請求】未請求
【請求項の数】25
【出願形態】OL
(21)【出願番号】P 2023075975
(22)【出願日】2023-05-02
(31)【優先権主張番号】10-2022-0101576
(32)【優先日】2022-08-12
(33)【優先権主張国・地域又は機関】KR
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】權 亨達
(72)【発明者】
【氏名】金 成範
【テーマコード(参考)】
5B011
【Fターム(参考)】
5B011DA01
5B011EA01
5B011EB03
5B011LL02
5B011LL12
5B011LL13
(57)【要約】
【課題】コンピューティングシステム制御装置及び方法が開示される。
【解決手段】一実施形態に係るコンピューティングシステム制御装置は、コンピューティングシステム(computing system)を構成している複数のコンポーネントを制御するための駆動モードを受信する受信器と、前記駆動モード、演算を処理するための制限時間及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するためのパラメータを決定し、前記パラメータに基づいて前記複数のコンポーネントに対するワークロードを分配し、分配されたワークロードに基づいて演算を処理するプロセッサを含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピューティングシステムを構成している複数のコンポーネントを制御するための駆動モードを受信する受信器と、
前記駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するためのパラメータを決定し、
前記パラメータに基づいて前記複数のコンポーネントに対するワークロードを分配し、
分配されたワークロードに基づいて演算を処理するプロセッサと、
を含むコンピューティングシステム制御装置。
【請求項2】
前記駆動モードは高性能モード及び高効率モードを含む、請求項1に記載のコンピューティングシステム制御装置。
【請求項3】
前記複数のコンポーネントは、演算のコンポーネント、格納のコンポーネント、通信のコンポーネント、又は電源のコンポーネントを含む、請求項1に記載のコンピューティングシステム制御装置。
【請求項4】
前記プロセッサは、前記駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するための駆動電圧及び駆動周波数を決定する、請求項1に記載のコンピューティングシステム制御装置。
【請求項5】
前記プロセッサは、前記複数のコンポーネントが消耗する電力、前記複数のコンポーネントの性能、及び前記複数のコンポーネントの温度に基づいて前記パラメータを決定する、請求項1に記載のコンピューティングシステム制御装置。
【請求項6】
前記プロセッサは、前記駆動モードが高性能モードである場合、前記複数のコンポーネントの電力消耗を比較し、前記電力消耗の比較結果に基づいて前記複数のコンポーネントに互いに異なるワークロードを割り当てる、請求項1に記載のコンピューティングシステム制御装置。
【請求項7】
前記受信器は、前記コンピューティングシステムのユーザから前記駆動モードの変更のための命令をリアルタイムに受信し、
前記プロセッサは、前記命令に応答して前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを応答して手動に変更したり、予め決定された値に基づいて前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを自動に変更する、請求項1に記載のコンピューティングシステム制御装置。
【請求項8】
前記複数のコンポーネントは第1コンポーネント及び第2コンポーネントを含み、
前記互いに異なるワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、
前記プロセッサは、前記第1コンポーネントの電力消耗が前記第2コンポーネントに比べて大きい場合、前記第1コンポーネントに前記第1ワークロードを割り当て、前記第2コンポーネントに前記第2ワークロードを割り当てる、請求項6に記載のコンピューティングシステム制御装置。
【請求項9】
前記プロセッサは、前記駆動モードが高効率モードである場合、前記複数のコンポーネントの動作周波数による駆動電圧を比較し、前記駆動電圧の比較結果に基づいて前記複数のコンポーネントに互いに異なるワークロードを割り当てる、請求項1に記載のコンピューティングシステム制御装置。
【請求項10】
前記複数のコンポーネントは、第1コンポーネント及び第2コンポーネントを含み、
前記互いに異なるワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、
前記プロセッサは、同じ駆動周波数で前記第1コンポーネントの駆動電圧が前記第2コンポーネントに比べて低い場合、前記第1コンポーネントに前記第2ワークロードを割り当て、前記第2コンポーネントに前記第1ワークロードを割り当てる、請求項9に記載のコンピューティングシステム制御装置。
【請求項11】
前記分配されたワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、
前記プロセッサは、前記複数のコンポーネントのDVFS(DynamicVoltage and Frequency Scaling)特性に基づいて前記複数のコンポーネントをクラスタリングすることにより第1クラスタ及び第2クラスタを生成し、
前記第1クラスタと前記第2クラスタのうち前記DVFS特性に良好なクラスタに前記第2ワークロードを割り当て、残りのクラスタに前記第1ワークロードを割り当てる、請求項1に記載のコンピューティングシステム制御装置。
【請求項12】
前記プロセッサは、前記複数のコンポーネントの温度、前記複数のコンポーネントの駆動電圧、前記複数のコンポーネントの駆動周波数、前記複数のコンポーネントの消耗電力、前記複数のコンポーネントのピーク性能、及び前記複数のコンポーネントの電力効率に基づいてニューラルネットワークを強化学習することにより前記パラメータを決定する、請求項1に記載のコンピューティングシステム制御装置。
【請求項13】
コンピューティングシステムを構成している複数のコンポーネントを制御するための駆動モードを受信するステップと、
前記駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するためのパラメータを決定するステップと、
前記パラメータに基づいて前記複数のコンポーネントに対するワークロードを分配するステップと、
分配されたワークロードに基づいて演算を処理するステップと、
を含むコンピューティングシステム制御方法。
【請求項14】
前記駆動モードは高性能モード及び高効率モードを含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項15】
前記複数のコンポーネントは、演算コンポーネント、格納コンポーネント、通信コンポーネント、又は電源コンポーネントを含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項16】
前記パラメータを決定するステップは、前記駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するための駆動電圧及び駆動周波数を決定するステップを含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項17】
前記パラメータを決定するステップは、前記複数のコンポーネントが消耗する電力、前記複数のコンポーネントの性能、及び前記複数のコンポーネントの温度に基づいて前記パラメータを決定するステップを含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項18】
前記ワークロードを分配するステップは、前記駆動モードが高性能モードである場合、
前記複数のコンポーネントの電力消耗を比較するステップと、
前記電力消耗の比較結果に基づいて前記複数のコンポーネントに互いに異なるワークロードを割り当てるステップと、
を含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項19】
前記受信するステップは、前記コンピューティングシステムのユーザから前記駆動モードの変更のための命令をリアルタイムに受信するステップを含み、
前記パラメータを決定するステップは、前記命令に応答して前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを応答して手動に変更したり、予め決定された値に基づいて前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを自動に変更するステップを含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項20】
前記複数のコンポーネントは第1コンポーネント及び第2コンポーネントを含み、
前記互いに異なるワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、
前記複数のコンポーネントに互いに異なるワークロードを割り当てるステップは、前記第1コンポーネントの電力消耗が前記第2コンポーネントに比べて大きい場合、
前記第1コンポーネントに前記第1ワークロードを割り当てるステップと、
前記第2コンポーネントに前記第2ワークロードを割り当てるステップと、
を含む、請求項18に記載のコンピューティングシステム制御方法。
【請求項21】
前記ワークロードを分配するステップは、前記駆動モードが高効率モードである場合、
前記複数のコンポーネントの動作周波数による駆動電圧を比較するステップと、
前記駆動電圧の比較結果に基づいて前記複数のコンポーネントに互いに異なるワークロードを割り当てるステップと、
を含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項22】
前記複数のコンポーネントは第1コンポーネント及び第2コンポーネントを含み、
前記互いに異なるワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、
前記複数のコンポーネントに互いに異なるワークロードを割り当てるステップは、同じ駆動周波数で前記第1コンポーネントの駆動電圧が前記第2コンポーネントに比べて低い場合、
前記第1コンポーネントに前記第2ワークロードを割り当てるステップと、
前記第2コンポーネントに前記第1ワークロードを割り当てるステップと、
を含む、請求項21に記載のコンピューティングシステム制御方法。
【請求項23】
前記分配されたワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、
前記ワークロードを分配するステップは、
前記複数のコンポーネントのDVFS(DynamicVoltage and Frequency Scaling)特性に基づいて前記複数のコンポーネントをクラスタリングすることにより第1クラスタ及び第2クラスタを生成するステップと、
前記第1クラスタと前記第2クラスタのうち、前記DVFS特性に良好なクラスタに前記第2ワークロードを割り当てるステップと、
残りのクラスタに前記第1ワークロードを割り当てるステップと、
を含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項24】
前記パラメータを決定するステップは、前記複数のコンポーネントの温度、前記複数のコンポーネントの駆動電圧、前記複数のコンポーネントの駆動周波数、前記複数のコンポーネントの消耗電力、前記複数のコンポーネントのピーク性能、及び前記複数のコンポーネントの電力効率に基づいてニューラルネットワークを強化学習することにより前記パラメータを決定するステップを含む、請求項13に記載のコンピューティングシステム制御方法。
【請求項25】
ハードウェアと結合して請求項13~請求項24のいずれか一項に記載の方法を実行させるためにコンピュータで読み出し可能な媒体に格納されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、コンピューティングシステム制御装置及び方法に関する。
【背景技術】
【0002】
コンピューティングシステムの性能を向上させたり電力消耗を減らすために、コンピューティングシステムの電圧及び周波数を調節するDVFS(Dynamic Voltage and Frequency Scaling)技術を活用することができる。
【0003】
DVFSは、コンピュータアーキテクチャで省電力技術の1つとして、使用される部品の印加電圧を動的に高めたり下げ、コア周波数を調整することで性能及び電力を制御する技術を意味する。
【0004】
従来の技術は、コンピューティングシステムを構成している様々なコンポーネントの電力特性を反映できなくて電力効率が低く、性能の制御が難しい。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の目的は、コンピューティングシステム制御装置及び方法を提供することにある。
【課題を解決するための手段】
【0006】
一実施形態に係るコンピューティングシステム制御装置は、コンピューティングシステムを構成している複数のコンポーネントを制御するための駆動モードを受信する受信器と、前記駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するためのパラメータを決定し、前記パラメータに基づいて前記複数のコンポーネントに対するワークロードを分配し、分配されたワークロードに基づいて演算を処理するプロセッサとを含む。
【0007】
前記駆動モードは高性能モード及び高効率モードを含むことができる。
【0008】
前記複数のコンポーネントは、演算のコンポーネント、格納のコンポーネント、通信のコンポーネント、又は電源のコンポーネントを含むことができる。
【0009】
前記プロセッサは、前記駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するための駆動電圧及び駆動周波数を決定することができる。
【0010】
前記プロセッサは、前記複数のコンポーネントが消耗する電力、前記複数のコンポーネントの性能、及び前記複数のコンポーネントの温度に基づいて前記パラメータを決定することができる。
【0011】
前記プロセッサは、前記駆動モードが高性能モードである場合、前記複数のコンポーネントの電力消耗を比較し、前記電力消耗の比較結果に基づいて前記複数のコンポーネントに互いに異なるワークロードを割り当てることができる。
【0012】
前記受信器は、前記コンピューティングシステムのユーザから前記駆動モードの変更のための命令をリアルタイムに受信し、前記プロセッサは、前記命令に応答して前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを応答して手動に変更したり、予め決定された値に基づいて前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを自動に変更することができる。
【0013】
前記複数のコンポーネントは第1コンポーネント及び第2コンポーネントを含み、前記互いに異なるワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、前記プロセッサは、前記第1コンポーネントの電力消耗が前記第2コンポーネントに比べて大きい場合、前記第1コンポーネントに前記第1ワークロードを割り当て、前記第2コンポーネントに前記第2ワークロードを割り当てることができる。
【0014】
前記プロセッサは、前記駆動モードが高効率モードである場合、前記複数のコンポーネントの動作周波数による駆動電圧を比較し、前記駆動電圧の比較結果に基づいて前記複数のコンポーネントに互いに異なるワークロードを割り当てることができる。
【0015】
前記複数のコンポーネントは、第1コンポーネント及び第2コンポーネントを含み、前記互いに異なるワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、前記プロセッサは、同じ駆動周波数で前記第1コンポーネントの駆動電圧が前記第2コンポーネントに比べて低い場合、前記第1コンポーネントに前記第2ワークロードを割り当て、前記第2コンポーネントに前記第1ワークロードを割り当てることができる。
【0016】
前記分配されたワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、前記プロセッサは、前記複数のコンポーネントのDVFS(DynamicVoltage and Frequency Scaling)特性に基づいて前記複数のコンポーネントをクラスタリングすることにより第1クラスタ及び第2クラスタを生成し、前記第1クラスタと前記第2クラスタのうち前記DVFS特性に良好なクラスタに前記第2ワークロードを割り当て、残りのクラスタに前記第1ワークロードを割り当てることができる。
【0017】
前記プロセッサは、前記複数のコンポーネントの温度、前記複数のコンポーネントの駆動電圧、前記複数のコンポーネントの駆動周波数、前記複数のコンポーネントの消耗電力、前記複数のコンポーネントのピーク性能、及び前記複数のコンポーネントの電力効率に基づいてニューラルネットワークを強化学習することにより前記パラメータを決定することができる。
【0018】
一実施形態に係るコンピューティングシステム制御方法は、コンピューティングシステムを構成している複数のコンポーネントを制御するための駆動モードを受信するステップと、前記駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するためのパラメータを決定するステップと、前記パラメータに基づいて前記複数のコンポーネントに対するワークロードを分配するステップと、分配されたワークロードに基づいて演算を処理するステップとを含む。
【0019】
前記駆動モードは高性能モード及び高効率モードを含むことができる。
【0020】
前記複数のコンポーネントは、演算コンポーネント、格納コンポーネント、通信コンポーネント、又は電源コンポーネントを含むことができる。
【0021】
前記パラメータを決定するステップは、前記駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて前記複数のコンポーネントを制御するための駆動電圧及び駆動周波数を決定するステップを含ことができる。
【0022】
前記パラメータを決定するステップは、前記複数のコンポーネントが消耗する電力、前記複数のコンポーネントの性能、及び前記複数のコンポーネントの温度に基づいて前記パラメータを決定するステップを含むことができる。
【0023】
前記ワークロードを分配するステップは、前記駆動モードが高性能モードである場合、前記複数のコンポーネントの電力消耗を比較するステップと、前記電力消耗の比較結果に基づいて前記複数のコンポーネントに互いに異なるワークロードを割り当てるステップとを含むことができる。
【0024】
前記受信するステップは、前記コンピューティングシステムのユーザから前記駆動モードの変更のための命令をリアルタイムに受信するステップを含み、前記パラメータを決定するステップは、前記命令に応答して前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを応答して手動に変更したり、予め決定された値に基づいて前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを自動に変更するステップを含むことができる。
【0025】
前記複数のコンポーネントは第1コンポーネント及び第2コンポーネントを含み、前記互いに異なるワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、前記複数のコンポーネントに互いに異なるワークロードを割り当てるステップは、前記第1コンポーネントの電力消耗が前記第2コンポーネントに比べて大きい場合、前記第1コンポーネントに前記第1ワークロードを割り当てるステップと、前記第2コンポーネントに前記第2ワークロードを割り当てるステップとを含むことができる。
【0026】
前記ワークロードを分配するステップは、前記駆動モードが高効率モードである場合、前記複数のコンポーネントの動作周波数による駆動電圧を比較するステップと、前記駆動電圧の比較結果に基づいて前記複数のコンポーネントに互いに異なるワークロードを割り当てるステップとを含むことができる。
【0027】
前記複数のコンポーネントは第1コンポーネント及び第2コンポーネントを含み、前記互いに異なるワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、前記複数のコンポーネントに互いに異なるワークロードを割り当てるステップは、同じ駆動周波数で前記第1コンポーネントの駆動電圧が前記第2コンポーネントに比べて低い場合、前記第1コンポーネントに前記第2ワークロードを割り当てるステップと、前記第2コンポーネントに前記第1ワークロードを割り当てるステップとを含むことができる。
【0028】
前記分配されたワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含み、前記ワークロードを分配するステップは、前記複数のコンポーネントのDVFS(DynamicVoltage and Frequency Scaling)特性に基づいて前記複数のコンポーネントをクラスタリングすることにより第1クラスタ及び第2クラスタを生成するステップと、前記第1クラスタと前記第2クラスタのうち、前記DVFS特性に良好なクラスタに前記第2ワークロードを割り当てるステップと、残りのクラスタに前記第1ワークロードを割り当てるステップとを含むことができる。
【0029】
前記パラメータを決定するステップは、前記複数のコンポーネントの温度、前記複数のコンポーネントの駆動電圧、前記複数のコンポーネントの駆動周波数、前記複数のコンポーネントの消耗電力、前記複数のコンポーネントのピーク性能、及び前記複数のコンポーネントの電力効率に基づいてニューラルネットワークを強化学習することにより前記パラメータを決定するステップを含むことができる。
【発明の効果】
【0030】
本発明によると、コンピューティングシステム制御装置及び方法を提供することができる。
【図面の簡単な説明】
【0031】
図1】一実施形態に係るコンピューティングシステム制御装置の概略的なブロック図を示す。
図2図1に示されたコンピューティングシステム制御装置のコンピューティングシステム制御方式の一例を示す。
図3】高性能モードにおける複数のコンポーネントの動作の例を示す。
図4】高効率モードにおける複数のコンポーネントの動作の例を示す。
図5図1に示されたコンピューティングシステム制御装置のコンピューティングシステム制御方式の他の例を示す。
図6図1に示されたコンピューティングシステム制御装置のコンピューティングシステム制御方式の更なる例を示す。
図7】パラメータを含む表に基づいてコンピューティングシステムを制御する動作を説明するための図である。
図8】強化学習に基づいてコンピューティングシステムを制御する動作を説明するための図である。
図9A図1に示されたコンピューティングシステム制御装置が実現されるハードウェアの例を示す。
図9B図1に示されたコンピューティングシステム制御装置が実現されるハードウェアの例を示す。
図9C図1に示されたコンピューティングシステム制御装置が実現されるハードウェアの例を示す。
図10図1に示されたコンピューティングシステム制御装置の動作のフローチャートを示す。
【発明を実施するための形態】
【0032】
実施形態に対する特定な構造的又は機能的な説明は単なる例示のための目的として開示されたものとして、様々な形態に変更される。したがって、実施形態は特定な開示形態に限定されるものではなく、本明細書の範囲は技術的な思想に含まれる変更、均等物ないし代替物を含む。
【0033】
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に第2構成要素は第1構成要素にも命名することができる。
【0034】
いずれかの構成要素が他の構成要素に「連結」されているか「接続」されていると言及されたときには、その他の構成要素に直接的に連結されているか又は接続されているが、中間に他の構成要素が存在し得るものと理解されなければならない。
【0035】
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0036】
異なるように定義さがれない限り、技術的であるか又は科学的な用語を含んで、ここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0037】
本文書で使用される用語「モジュール」は、ハードウェア、ソフトウェア、又はファームウェアで具現されたユニットを含んでもよく、例えば、ロジック、論理ブロック、部品、又は、回路のような用語と相互互換的に使用されてもよい。モジュールは、一体に構成された部品又は1つ又はそれ以上の機能を行う、前記部品の最小単位又はその一部であってもよい。例えば、一実施形態によれば、モジュールは、ASIC(application-specific integrated circuit)の形態に実現されることができる。
【0038】
本文書で使用される「~部」という用語は、ソフトウェア又はFPGA又はASICのようなハードウェアの構成要素を意味し、「~部」はいずれかの役割を行う。ところが、「~部」はソフトウェア又はハードウェアに限定される意味ではない。「~部」は、アドレッシングできる格納媒体にあるように構成されてもよく、1つ又はそれ以上のプロセッサを再生させるように構成されてもよい。例えば、「~部」は、ソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素及びタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、及び変数を含んでもよい。構成要素と「~部」の中で提供される機能は、さらに小さい数の構成要素及び「~部」に結合されたり追加的な構成要素と「~部」にさらに分離してもよい。それだけでなく、構成要素及び「~部」は、デバイス又はセキュリティーマルチメディアカード内の1つ又はそれ以上のCPUを再生させるように実現されてもよい。また、「~部」は、1つ以上のプロセッサを含んでもよい。
【0039】
以下、添付する図面を参照しながら実施形態を詳細に説明する。添付図面を参照して説明するにおいて、図面符号に関係なく同じ構成要素には同じ参照符号を付与し、これに対する重複する説明は省略する。
【0040】
図1は、一実施形態に係るコンピューティングシステム制御装置の概略的なブロック図を示す。
【0041】
図1を参照すると、コンピューティングシステム制御装置10は、コンピューティングシステムを制御する。コンピューティングは、1つ以上の目的を達相するためにコンピュータを活用して開発、算出する動作を意味する。コンピューティングシステムは、ハードウェア、ソフトウェア、データ及び/又はネットワークと共にコンピューティングを行うための全ての資源(例えば、ハードウェア資源)と入力、出力、処理装置及び/又は格納装置の機能を含んでいるシステム(ソフトウェア)を意味する。
【0042】
コンピューティングシステム制御装置10は、PC(personal computer)、データサーバ、又は、携帯用装置内に実現され得る。
【0043】
携帯用装置は、ラップトップ(laptop)コンピュータ、移動電話機、スマートフォン(smart phone)、タブレット(tablet)PC、モバイルインターネットデバイス(mobile internet device(MID))、PDA(personal digital assistant)、EDA(enterprise digital assistant)、デジタルスチールカメラ(digital still camera)、デジタルビデオカメラ(digital video camera)、PMP(portable multimedia player)、PND(personal navigation device又はportable navigation device)、携帯用ゲームコンソール(handheld game console)、e-ブック(e-book)、又は、スマートデバイス(smart device)のように実現されてもよい。スマートデバイスは、スマートワッチ(smart watch)、スマートバンド(smart band)、又は、スマートリング(smart ring)のように実現されてもよい。
【0044】
コンピューティングシステム制御装置10は、複数のコンポーネント(component)で構成される。複数のコンポーネントは、演算(operation)コンポーネント、格納(storage)コンポーネント、通信(communication)コンポーネント、又は電源(power)コンポーネントを含む。
【0045】
演算コンポーネントは、様々な形態のプロセッサ200を含むことができる。例えば、演算コンポーネントは、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、NPU(Neural Processing Unit)、TPU(Tensor Processing Unit)、又はFPGA(Field Programmable Gate Array)を含んでもよい。
【0046】
格納コンポーネントは、データを格納するための手段を含む。格納コンポーネントは、メモリ300を含んでもよい。複数のコンポーネントに含まれる格納コンポーネントは、ホストのストレージ、メインメモリ、演算コンポーネント内のメインメモリ又はフラッシュメモリを含んでもよい。
【0047】
メモリ300は、演算のためのデータ又は演算結果を格納する。メモリ300は、プロセッサ200によって実行可能な命令(又は、プログラム)を格納する。例えば、命令は、プロセッサ200の動作及び/又はプロセッサ200の各構成の動作を実行するための命令を含んでもよい。
【0048】
メモリ300は、揮発性メモリ装置又は不揮発性メモリ装置に実現される。
【0049】
揮発性メモリ装置は、DRAM(dynamic random access memory)、SRAM(static random access memory)、T-RAM(thyristor RAM)、Z-RAM(zero capacitor RAM)、又は、TTRAM(Twin Transistor RAM)に実現される。
【0050】
揮発性メモリ装置は、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ、MRAM(Magnetic RAM)、スピン伝達トルクMRAM(Spin-Transfer Torque(STT)-MRAM)、Conductive Bridging RAM(CBRAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase change RRAM)、抵抗メモリ(Resistive RRAM(RRAM)、ナノチューブRRAM(Nanotube RRAM)、ポリマーRAM(Polymer RAM)、ナノ浮遊ゲートメモリ(Nanoating Gate Memmologory(NFGM))、ホログラフィックメモリ(holographic memory)、分子電子メモリ素子(Molecular Electronic Memory Device)、又は絶縁抵抗変化メモリ(Insulator Resistance Change Memory)に具現されてもよい。
【0051】
通信コンポーネントは、通信を行う手段を含む。例えば、通信コンポーネントは、ネットワークスイッチ(Network switch)及び/又はNIC(Network Interface Card)を含んでもよい。
【0052】
電源(power)コンポーネントは、他のコンポーネントに電力を供給する手段を含む。
【0053】
コンピューティングシステム制御装置10は、受信器100、プロセッサ200及び/又はメモリ300を含む。
【0054】
受信器100は、コンピューティングシステムを構成している複数のコンポーネントを制御するための駆動モードを受信する。駆動モードは、高性能モード(high performance mode)及び/又は高効率モード(high efficiency mode)を含んでもよい。受信器100は、コンピューティングシステムのユーザから駆動モードの変更のための命令をリアルタイム受信することができる。受信器100は、駆動モードの変更のために予め決定されたデータを受信する。
【0055】
駆動モードは、電気的な信号から構成される。駆動モードは、プロセッサ200によって決定されて受信器100に伝達されたり、外部から伝達される。受信器100は、受信インターフェースを含んでもよい。受信器100は、駆動モードをプロセッサ200に出力する。
【0056】
プロセッサ200は、メモリ300に格納されたデータを処理する。プロセッサ200は、メモリ300に格納されたコンピュータで読出し可能なコード(例えば、ソフトウェア)及びプロセッサ200によって誘発された命令(instruction)を実行する。
【0057】
「プロセッサ200」は、目的とする動作(desired operations)を実行させるための物理的な構造を有する回路を有するハードウェアで具現されたデータ処理装置である。例えば、目的とする動作は、プログラムに含まれているコード又は命令を含んでもよい。
【0058】
例えば、ハードウェアで具現されたデータ処理装置は、マイクロプロセッサー(microprocessor)、中央処理装置(central processing unit)、プロセッサコア(processor core)、マルチ-コアプロセッサ(multi-core processor)、マルチプロセッサ(multiprocessor)、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)を含んでもよい。
【0059】
プロセッサ200は、駆動モード、演算を処理するための制限時間、及び複数のコンポーネントの演算時間に基づいて複数のコンポーネントを制御するためのパラメータを決定する。
【0060】
プロセッサ200は、駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて複数のコンポーネントを制御するための駆動電圧及び駆動周波数(frequency)を決定する。駆動周波数は、クロック周波数(clock frequency)を含んでもよい。
【0061】
プロセッサ200は、複数のコンポーネントが消耗する電力、複数のコンポーネントの性能、及び複数のコンポーネントの温度に基づいてパラメータを決定する。
【0062】
複数のコンポーネントの性能は、コンポーネントの種類によって互いに異なってもよい。演算コンポーネントの性能は演算処理速度を含むことができる。例えば、処理速度は、FLOPS(FLoating point Operations Per Second)単位を有してもよい。格納コンポーネントの性能は、格納容量又はデータ送信のための帯域幅を含んでもよい。電源コンポーネントの性能は供給可能な電力を含むことができる。
【0063】
プロセッサ200は、複数のコンポーネントの温度、複数のコンポーネントの駆動電圧、複数のコンポーネントの駆動周波数、複数のコンポーネントの消耗電力、複数のコンポーネントのピーク性能、及び複数のコンポーネントの電力効率に基づいてニューラルネットワークを強化学習(enforcement training)することで、パラメータを決定することができる。
【0064】
ニューラルネットワークは、シナプスの結合でネットワークを形成した人工ニューロン(ノード)が学習を介してシナプスの結合強度を変化させ、問題解決能力を有するモデルの全般を意味する。
【0065】
ニューラルネットワークのニューロンは、加重値又はバイアスの組み合わせを含んでもよい。ニューラルネットワークは、1つ以上のニューロン又はノードから構成された1つ以上のレイヤを含んでもよい。ニューラルネットワークは、ニューロンの加重値を学習を介して変化させることによって任意の入力から予測しようとする結果を推論することができる。
【0066】
ニューラルネットワークは、深層ニューラルネットワーク(Deep Neural Network)を含む。ニューラルネットワークは、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、パーセプトロン(perceptron)、多層パーセプトロン(multilayer perceptron)、FF(Feed Forward)、RBF(Radial Basis Network)、DFF(Deep Feed Forward)、LSTM(Long Short Term Memory)、GRU(Gated Recurrent Unit)、AE(Auto Encoder)、VAE(Variational Auto Encoder)、DAE(Denoising Auto Encoder)、SAE(Sparse Auto Encoder)、MC(Markov Chain)、HN(Hopfield Network)、BM(Boltzmann Machine)、RBM(Restricted Boltzmann Machine)、DBN(Depp Belief Network)、DCN(Deep Convolutional Network)、DN(Deconvolutional Network)、DCIGN(Deep Convolutional Inverse Graphics Network)、GAN(Generative Adversarial Network)、LSM(Liquid State Machine)、ELM(Extreme Learning Machine)、ESN(Echo State Network)、DRN(Deep Residual Network)、DNC(Differentiable Neural Computer)、NTM(Neural Turning Machine)、CN(Capsule Network)、KN(Kohonen Network)及びAN(Attention Network)を含んでもよい。
【0067】
プロセッサ200は、パラメータに基づいて複数のコンポーネントに対するワークロード(workload)を分配することができる。ワークロードは、与えられた時間内にコンピューティングシステムが処理しなければならない作業(task)の量及び/又は作業の性格を含んでもよい。
【0068】
プロセッサ200は、命令に応答して複数のコンポーネントのうち一部のコンポーネントの駆動モードを応答して手動に変更する。又は、プロセッサ200は、予め決定された値に基づいて前記複数のコンポーネントのうち一部のコンポーネントの駆動モードを自動に変更してもよい。プロセッサ200は、コンピューティングシステムのユーザに駆動モードの変更のための情報をリアルタイムに提供することができる。
【0069】
プロセッサ200は、駆動モードが高性能モードである場合、複数のコンポーネントの電力消耗を比較する。プロセッサ200は、電力消耗の比較結果に基づいて複数のコンポーネントに互いに異なるワークロードを割り当てることができる。
【0070】
複数のコンポーネントは、第1コンポーネント及び第2コンポーネントを含んでもよい。互いに異なるワークロード又は分配されたワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含む。
【0071】
プロセッサ200は、第1コンポーネントの電力消耗が第2コンポーネントに比べて大きい場合、第1コンポーネントに第1ワークロードを割り当てる。プロセッサ200は、第2コンポーネントに第2ワークロードを割り当てる。
【0072】
プロセッサ200は、駆動モードが高効率モードである場合、複数のコンポーネントの動作周波数による駆動電圧を比較する。プロセッサ200は、駆動電圧の比較結果に基づいて複数のコンポーネントに互いに異なるワークロードを割り当てる。
【0073】
プロセッサ200は、同じ駆動周波数で第1コンポーネントの駆動電圧が第2コンポーネントに比べて低い場合、第1コンポーネントに第2ワークロードを割り当てる。プロセッサ200は、2コンポーネントに第1ワークロードを割り当てる。
【0074】
プロセッサ200は、複数のコンポーネントのDVFS(DynamicVoltage and Frequency Scaling)特性に基づいて、複数のコンポーネントをクラスタリング(clustering)することで、第1クラスタ及び第2クラスタを生成することができる。クラスタは、複数のコンポーネントを含むコンポーネントの集合を意味する。
【0075】
プロセッサ200は、第1クラスタと第2クラスタのうち、DVFS特性に良好なクラスタに第2ワークロードを割り当てることができる。プロセッサ200は、残りのクラスタに第1ワークロードを割り当てる。
【0076】
プロセッサ200は、分配されたワークロードに基づいて演算を処理する。
【0077】
以下、図2図7を参照してコンピューティングシステムを制御する過程について詳しく説明する。
【0078】
図2は、図1に示されたコンピューティングシステム制御装置のコンピューティングシステム制御方式の一例を示し、図3は、高性能モードにおける複数のコンポーネントの動作の例を示し、図4は、高効率モードにおける複数のコンポーネントの動作の例を示す。
【0079】
図2図4を参照すると、コンピューティングシステム制御装置(例えば、図1のコンピューティングシステム制御装置10)は、コンピューティングシステムを制御する。コンピューティングシステムは、演算コンポーネント(例えば、CPU、GPU又はFPGA)、格納コンポーネント(例えば、SSD(Solid-State Drive)又はHDD(Hard Disk Drive))、通信コンポーネント(例えば、ネットワークスイッチ)、電源コンポーネント(例えば、PDU(Power Distribution Unit)又はPSU(Power Supply Unit))を含んでもよい。
【0080】
それぞれのコンポーネントは、単一のコンポーネントであるか複数のサブコンポーネントを含んでもよい。それぞれのコンポーネントは、製造プロセスに起因する偏差のことから固有のDVFS特性を有することができる。プロセッサ(例えば、図1のプロセッサ200)はそれぞれのコンポーネントの固有特性を分析し、分析した特性を効率よく利用することで、最大の性能を達成しながらも電力消耗を節減することができる。また、プロセッサ200は、コンピューティングシステムの電力効率を最大化させ得る。
【0081】
プロセッサ200は、それぞれのコンポーネントの電力値を調節して固有のDVFS特性を測定する。図3の例示において、コンピューティングシステムが複数のサーバ230,271,273,275,277及び複数のスイッチ251,253,255をコンポーネントとして含む場合を例示的に示している。
【0082】
図2の例示において、プロセッサ200は、サーバ230の内部に実現されてもよい。実施形態に応じて、プロセッサ200は他のサーバ内に実現されてもよい。
【0083】
プロセッサ200は、ユーザ290から命令を受信する。プロセッサ200は、ユーザ290から駆動モードの変更のための命令をリアルタイムに受信する。プロセッサ200は、駆動モードの変更のための情報をユーザ290にリアルタイム提供することができる。
【0084】
プロセッサ200は、命令に応答して、複数のコンポーネントのうち一部のコンポーネントの駆動モードを応答して手動に変更したり、予め決定された値に基づいて複数のコンポーネントのうち一部のコンポーネントの駆動モードを自動に変更することができる。
【0085】
また、プロセッサ200は、パワーメーター(power meter)210の内部に実現されてもよい。プロセッサ200は、複数のコンポーネントに対するDVFS特性を測定し、DVFS測定に基づいて複数のコンポーネントを制御するためのパラメータを決定することができる。
【0086】
プロセッサ200は、複数のコンポーネントの性能及び電力に対する特性を測定し、性能及び電力に対する特性に基づいて複数のコンポーネントの駆動電圧及び駆動周波数を制御することができる。
【0087】
プロセッサ200は、コンピューティングシステムを構成している複数のコンポーネントに対する電力及び性能を調節する。プロセッサ200は、複数のコンポーネントのDVFS特性と温度を分析し、ワークロードを処理するための最適な駆動電圧及び駆動周波数を決定することができる。
【0088】
プロセッサ200は、マイクロベンチマークのテストを介して複数のコンポーネントの温度、電圧、周波数、電力によるピーク性能、又は電力効率を取得する。プロセッサ200は、取得した温度、電圧、周波数、電力によるピーク性能、又は電力効率を表又はjson(JavaScript Object Notation)の形態にメモリ(例えば、図1のメモリ300)に格納してもよい。
【0089】
プロセッサ200は、格納された温度、電圧、周波数、電力によるピーク性能、又は電力効率に基づいて、コンピューティングシステムの性能又は電力効率を調節することができる。取得したデータの量が増加するほど、ピーク性能、ピーク効率、ピーク性能を達成する確率及び/又はピーク効率を達成する確率が向上され得る。
【0090】
プロセッサ200は、相対的に品質が優れたコンポーネントには低い電圧を印加して他のコンポーネントが到達できる最高の性能を達成可能にする。プロセッサ200は、このような特性を用いて演算が変わるごとに、最適な電圧又は電力レベルを設定することができる。
【0091】
プロセッサ200は、複数のコンポーネントの最適電圧又は電力レベルを予め把握し、全てのコンポーネントが消耗する電力又は性能の合計を用いて最適な電力効率を達成するためのパラメータを決定する。
【0092】
プロセッサ200は、正常動作の範囲を示すMTBF(Mean Time Between Failure)を調節してワークロードの処理時間を確認することができる。プロセッサ200は、MTBFが減少する場合、現在のワークロードの予想時間よりも小さいかを確認する。MTBFがワークロードの実行時間よりも短い場合、プロセッサ200は、温度を調節したり駆動電圧を高めることによってMTBFを増加させることができる。
【0093】
プロセッサ200は、エイジング(aging)効果によって複数のコンポーネントが最適な性能を示す条件、マージン、又は最適な電力効率を示す条件が変わる場合、これを追跡してコンピューティングシステムの正常動作を保障できる。
【0094】
プロセッサ200は、一部のコンポーネントでエイジング効果により条件に対する結果(例えば、性能又は電力効率)に変化が発生する場合、回帰(regression)を介して性能又は電力効率を予測し、新しいパラメータを全体のコンポーネントに適用することができる。
【0095】
回帰分析のための入力値は、温度、電圧、駆動周波数、駆動電力、入力データの大きさ、入力データの形、駆動電圧の変化量、温度に対する電圧の変化量、駆動周波数に対する電圧の変化量及び/又は変化にかかった時間を含んでもよい。
【0096】
プロセッサ200は、高性能モード又は高効率モードに応じてコンピューティングシステムを制御する方式を変更し得る。
【0097】
プロセッサ200は、駆動モードが高性能モードである場合、複数のコンポーネントの電力消耗を比較する。プロセッサ200は、電力消耗の比較結果に基づいて複数のコンポーネントに互いに異なるワークロードを割り当てることができる。
【0098】
複数のコンポーネントは、第1コンポーネント及び第2コンポーネントを含んでもよい。互いに異なるワークロード又は分配されたワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含むことができる。
【0099】
プロセッサ200は、第1コンポーネントの電力消耗が第2コンポーネントに比べて大きい場合、第1コンポーネントに第1ワークロードを割り当てる。プロセッサ200は、第2コンポーネントに第2ワークロードを割り当てる。
【0100】
言い換えれば、高性能モードにおいて、コンピューティングシステムは、2つ以上の通信コンポーネント(例えば、ネットワークスイッチ又はNIC)及びストレージコンポーネント(例えば、DRAM、SSD又はHDD)を用いてワークロードを処理することができる。このとき、それぞれのコンポーネントを含むサーバ又は演算コンポーネントに割り当てられたワークロードのサイズ(又は、演算量)が均一でない場合、プロセッサ200は、同じ駆動周波数で電力消費の少ないコンポーネントにサイズの大きいワークロードを割り当てる。プロセッサ200は、同じ駆動周波数で電力消費の多いコンポーネントにサイズの小さいワークロードを割り当てる。これによって、プロセッサ200は、全体の性能に影響を及ぼさない範囲でピーク効率を達成できるパラメータの設定と最も近い設定でパラメータを決定することができる。プロセッサ200は、パラメータの一種である駆動電圧、駆動周波数、又は駆動電力を決定することで、コンピューティングシステムの電力消耗を減少させながらも性能を向上させることができる。互いに異なる演算コンポーネント(例えば、CPU及びGPU)が共に駆動される場合であっても、プロセッサ200は、クリティカルでない演算コンポーネントの駆動電圧及び/又は駆動周波数を電力効率の最大化できる条件に設定することができる。
【0101】
プロセッサ200は、駆動モードが高効率モードである場合、複数のコンポーネントの動作周波数による駆動電圧を比較することができる。プロセッサ200は、駆動電圧の比較結果に基づいて複数のコンポーネントに互いに異なるワークロードを割り当てる。
【0102】
プロセッサ200は、同じ駆動周波数で第1コンポーネントの駆動電圧が第2コンポーネントに比べて低い場合、第1コンポーネントに第2ワークロードを割り当てる。プロセッサ200は、第2コンポーネントに第1ワークロードを割り当てる。
【0103】
2つ以上の通信コンポーネント、演算コンポーネント、又は格納コンポーネントを使用する演算で各コンポーネントに割り当てられたワークロードの大きさが均一でないこともある。プロセッサ200は、同じ駆動周波数で駆動電圧をさらに低くするコンポーネントにサイズの大きいワークロードを割り当ててもよい。プロセッサ200は、性能に影響を与えない範囲内で駆動周波数を低くしたり高めることで、コンポーネントが電力効率の最も高い条件に制御することによって、全体lのコンピューティングシステムの電力効率を最大化することができる。
【0104】
プロセッサ200は、1つのコンポーネントから取得した温度及び演算の種類を特性テーブルの形態に生成することができる。プロセッサ200は、特性テーブルを用いて同じ種類の異なるコンポーネントの特性を探すことができる。
【0105】
プロセッサ200は、任意のコンポーネントが最大性能を達成したパラメータ又は最大効率を達成したパラメータから始まって、探索空間(search space)を拡張することで全体探索空間を探索しなくてもコンピューティングシステムを最適化するためのパラメータを決定することができる。
【0106】
図5は、図1に示されたコンピューティングシステム制御装置のコンピューティングシステム制御方式の他の例を示す。
【0107】
図5を参照すると、プロセッサ(例えば、図1のプロセッサ200)は、コンピューティングシステムのコンポーネントをクラスタリングすることによってクラスタを生成することができる。プロセッサ200は、DVFS特性に良好なコンポーネントから構成されたクラスタと、DVFS特性の悪いコンポーネントを別個に動作させるようクラスタを構成することができる。そのため、プロセッサ200は、DVFS特性に良好なクラスタをより頻繁に利用することによって電力消耗を低減させ得る。
【0108】
コンピューティングシステムは、複数のスイッチ531,533,535、複数のサーバ551,553,555,557を含む。コンピューティングシステム制御装置(例えば、図1のコンピューティングシステム制御装置10)は制御サーバ510内に実現されてもよい。
【0109】
プロセッサ200は、複数のコンポーネントのDVFS特性に基づいて複数のコンポーネントをクラスタリングすることで第1クラスタ及び第2クラスタを生成することができる。クラスタは、複数のコンポーネントを含むコンポーネントの集合を意味する。
【0110】
図5の例において、プロセッサ200は、相対的に良好なDVFS特性を有するサーバ551及びサーバ553をクラスタリングすることで第1クラスタを生成する。プロセッサ200は、相対的に悪いDVFS特性を有するサーバ555及びサーバ557をクラスタリングすることで第2クラスタを生成する。
【0111】
プロセッサ200は、第1クラスタと第2クラスタのうちDVFS特性に良好なクラスタに第2ワークロードを割り当てることができる。例えば、プロセッサ200は、第1クラスタに大きいワークロードである第2ワークロードを割り当て、残りのクラスタである第2クラスタに少ないワークロードである第1ワークロードを割り当ててもよい。
【0112】
プロセッサ200は、良好なDVFS特性を有するコンポーネントをクラスタリングしてクラスタ(例えば、ラック(rack)又はポッド(pod))を構成することによって構成されたクラスタが最大の性能を発揮しながらも、低い電力消耗ができるようにコンピューティングシステムを制御し、全体コンピューティングのコストを節減させることができる。
【0113】
図6は、図1に示されたコンピューティングシステム制御装置のコンピューティングシステム制御方式の更なる例を示す。
【0114】
図6を参照すると、プロセッサ(例えば、図1のプロセッサ200)は、良好なDVFS特性を有するコンポーネントと悪いDVFS特性を有するコンポーネントを均等に混合してクラスタを生成することができる。そのため、プロセッサ200は、クラスタの性能を最大に均一に保持することができる。
【0115】
コンピューティングシステムは、複数のスイッチ631,633,635、複数のサーバ651,653,655,657を含む。コンピューティングシステム制御装置(例えば、図1のコンピューティングシステム制御装置10)は制御サーバ610の内部に実現されてもよい。
【0116】
コンピューティングシステムを管理するためには、クラスタの性能を一定に保つ必要がある。プロセッサ200は、DVFS特性に良好なコンポーネントと悪いコンポーネントを混合してクラスタを構成することができる。これにより、それぞれのクラスタが消費する電力を類似にさせることで電力ネットワークの負担を軽減し、ワークロードの性能を測定する場合の変動を低減させ得る。
【0117】
言い換えれば、プロセッサ200は、DVFS特性が均等に分布するように複数のサーバ651,653,655,657を構成することができる。プロセッサ200は、DVFS特性の偏差が小さくなるようにクラスタリングを行うことで、コンピューティングシステムのユーザがハードウェアの性能差を検出せず、一定のレベル以上のコンピューティング性能が提供されることができる。
【0118】
図7は、パラメータを含む表に基づいてコンピューティングシステムを制御する動作を説明するための図である。
【0119】
図7を参照すると、プロセッサ(例えば、図1のプロセッサ200)は、コンピューティングシステムを制御するためのパラメータを決定する。プロセッサ200はテーブルの形態にパラメータを格納してもよい。
【0120】
プロセッサ200は、コンピューティングシステムを構成している複数のコンポーネントの固有な駆動電圧及び駆動周波数に関するテーブルを、温度値を考慮して補正しながら消耗電力を低減することができる。
【0121】
プロセッサ200は、メモリ(例えば、図1のメモリ300)に格納されているDVFSテーブルに基づいて算出された駆動電圧、駆動周波数、又は電力値を微細に調整することで、予め確保されたマージンを減らすことができる。
【0122】
プロセッサ200は、MTBFによるエラー発生を確認するために、演算を行った最大時間を設定条件ごとに共に格納することができる。プロセッサ200は、MTBFによる失敗(fail)が発生した場合、設定値が有効でないことを表記する値を各設定値と共に格納してもよい。
【0123】
プロセッサ200は、駆動電圧、駆動周波数、温度、及びMTBFの関係を周期的に確認しながら格納することができる。
【0124】
プロセッサ200は、コンポーネントのエイジング効果によってパラメータによる結果(例えば、性能又は電力効率)に変化が生じた場合、回帰分析を介して新しい結果を予測し、コンポーネント全体に変化されたパラメータを適用することができる。回帰分析の入力は、温度、電圧、周波数、電力、入力サイズ、入力形状、温度に対する結果変化量、電圧に対する結果変化量、温度に対する電圧変化量、周波数に対する電圧変化量、及び/又は変化にかかった時間を含んでもよい。
【0125】
プロセッサ200は、任意のコンポーネントで取得した最大性能及び最大効率を達成するためのパラメータを、他のコンポーネントの最大性能及び最大効率を達成するためのパラメータを探索するために使用する。プロセッサ200は、任意のコンポーネントで取得した駆動電圧、駆動周波数、又は電力を一定間隔に変更しながら、他のコンポーネントの最大性能及び最大効率を達成するためのパラメータを探索することができる。
【0126】
一部のアプリケーション(例えば、HPL(High-Performance Linpack))で演算コンポーネントに割り当てられるワークロードの大きさが時間の経過につれて小さくなる。プロセッサ200は、演算前に処理しなければならないワークロードの大きさ及び形状を把握できる。この場合、プロセッサ200は、駆動電圧、駆動周波数、又は電力を変更して新しく割り当てられるワークロードに適切な最大性能を達成するためのパラメータを設定した後、演算を開始することができる。
【0127】
プロセッサ200は、実行される演算がワークロードのAI(Arithmetic Intensity)又はOI(Operational Intensity)の低いメモリバウンド演算(memory-bound operation)であれば、演算コンポーネントのクロック周波数を低くし、格納コンポーネントのクロック周波数を低くすることによってコンピューティングシステムの性能を向上させることができる。
【0128】
図8は、強化学習に基づいてコンピューティングシステムを制御する動作を説明するための図である。
【0129】
演算コンポーネント(例えば、GPU)の個数が多くなると、事実上、すべてのパラメータに対応するケースをテストすることが困難である。プロセッサ(例えば、図1のプロセッサ200)は、コンピューティングシステムの性能及び電力効率に関する情報をメモリ(例えば、図1のメモリ300)に格納することができる。プロセッサ200は、複数のコンポーネント固有の製造年月、メーカー情報を複数の条件(例えば、データサイズ、データ形状、温度、電圧、周波数又は電力)を変更しながら測定したデータと共に格納することができる。
【0130】
プロセッサ200は、格納したデータを入力として使用し、駆動モードによる複数のコンポーネントの設定値をターゲット値に設定し、マシーンランニング(machine learning)の回帰方式を介してテストを行うことができなかった条件に対してもパラメータを決定することができる。
【0131】
プロセッサ200は、テーブルの形態にパラメータを格納する方式で特定の数以下の個数のコンポーネントを含むコンピューティングシステムでチップ(chip)が許容する温度範囲(例えば、チップが許容する最低温度からチップが許容する最高温度の間の範囲)内で温度を調節しながら駆動電圧、駆動周波数、又は電力特性を探索することができる。
【0132】
プロセッサ200は、特定の数以上の個数のコンポーネントを含むコンピューティングシステムに対して強化学習を用いてパラメータを決定することができる。プロセッサ200は、ニューラルネットワークを強化学習することによって高性能モード及び高効率モードに対応するパラメータを決定することができる。プロセッサ200は、決定されたパラメータを異なるコンポーネントに適用することで多くのテストを行わなくても、コンピューティングシステムの性能又は電力効率を最適化することができる。
【0133】
プロセッサ200は、エージェント810のアクション(action)に応答して環境830から状態(state)及びリウォード(reward)を抽出する。プロセッサ200は、リウォードを相違にすることで、エージェント810に割り当てられるパラメータを調節できる。リウォードは、最適な条件と現在の条件との間の差の逆数を含んでもよい。
【0134】
プロセッサ200は、抽出された状態及びリウォードに基づいてエージェント810の駆動電圧、駆動周波数及び/又は電力を調節する。状態は、調節された駆動電圧、駆動周波数又は温度を含む。リウォードは、高性能モードにおいて、任意のワークロードが実行されるとき、時間の流れに応じて各コンポーネントに割り当てられる入力データの大きさ及び形状が変わり得る。プロセッサ200は、コンピューティングシステムの性能を最大化するために駆動周波数を最大に設定し、駆動電圧又は電力を減らして性能を最大化するのに成功した場合、リウォード(reward)を高める方式で学習を行うことができる。プロセッサ200は、最大の駆動周波数条件で、駆動電圧又は電力が最も低い地点のリウォードを最大リウォードに設定し、設定された駆動周波数、駆動電圧又は電力条件と測定された条件の差に比例してリウォードを割り当てることができる。
【0135】
プロセッサ200は、一定の範囲を超える条件に対しては最低のリウォードを割り当てることによって、エージェント810が与えられた範囲を超えないように調節できる。
【0136】
高効率モードにおいて、特定のワークロードが実行されるとき、時間が経過しながらコンポーネントに割り当てられる入力データの大きさ及び形状が変わり得る。プロセッサ200は、電力効率を最大化する方向に駆動電圧及び駆動周波数を調節することによって電力効率の数値(例えば、TFLOPS/W)が高く測定されれば、リウォードを高める方式で学習を行うことができる。
【0137】
図9A図9Cは、図1に示されたコンピューティングシステム制御装置が実現されるハードウェアの例を示す。図9Aは、1つのOperating systemで管理されるサーバを示し、図9Bはサーバの集合であるRackあるいはClusterを示し、図9Cはサーバに含まれるハードウェア加速器を示す。
【0138】
コンピューティングシステム制御装置(例えば、図1のコンピューティングシステム制御装置10)は様々なハードウェア上に実現されることができる。
【0139】
コンピューティングシステム制御装置10は、IoT(Internet of Thing)、自律システム(autonomous system)、GPUサーバ、HPC(High Performance Computing)、クラウド又はスーパーコンピュータのようなコンピューティングシステムに適用され、電力消費を削減しながら最大の性能を達成することができる。
【0140】
図10は、図1に示されたコンピューティングシステム制御装置の動作のフローチャートを示す。
【0141】
図10を参照すると、受信器(例えば、図1の受信器100)は、コンピューティングシステムを構成している複数のコンポーネントを制御するための駆動モードを受信する(S1010)。駆動モードは、高性能モード及び/又は高効率モードを含む。
【0142】
プロセッサ200は、駆動モード、演算を処理するための制限時間、及び複数のコンポーネントの演算時間に基づいて複数のコンポーネントを制御するためのパラメータを決定する(S1030)。
【0143】
受信器100は、コンピューティングシステムのユーザから駆動モードの変更のための命令をリアルタイムに受信する。プロセッサ200は、命令に応答して複数のコンポーネントのうちの一部のコンポーネントの駆動モードを応答して手動に変更してもよい。又は、プロセッサ200は、予め決定された値に基づいて複数のコンポーネントのうちの一部のコンポーネントの駆動モードを自動に変更してもよい。
【0144】
プロセッサ200は、駆動モード、演算を処理するための制限時間、及び前記複数のコンポーネントの演算時間に基づいて、複数のコンポーネントを制御するための駆動電圧及び駆動周波数を決定することができる。
【0145】
プロセッサ200は、複数のコンポーネントが消耗する電力、複数のコンポーネントの性能、及び複数のコンポーネントの温度に基づいてパラメータを決定するすることができる。
【0146】
プロセッサ200は、複数のコンポーネントの温度、複数のコンポーネントの駆動電圧、複数のコンポーネントの駆動周波数、複数のコンポーネントの消耗電力、複数のコンポーネントのピーク性能、及び複数のコンポーネントの電力効率に基づいてニューラルネットワークを強化学習することによってパラメータを決定することができる。
【0147】
プロセッサ200は、パラメータに基づいて複数のコンポーネントに対するワークロードを分配する(S1050)。
【0148】
プロセッサ200は、駆動モードが高性能モードである場合、複数のコンポーネントの電力消耗を比較する。プロセッサ200は、電力消耗の比較結果に基づいて複数のコンポーネントに互いに異なるワークロードを割り当てる。
【0149】
複数のコンポーネントは、第1コンポーネント及び第2コンポーネントを含んでもよい。互いに異なるワークロード又は分配されたワークロードは、第1ワークロード及び前記第1ワークロードよりも大きい演算量を有する第2ワークロードを含んでもよい。
【0150】
プロセッサ200は、第1コンポーネントの電力消耗が第2コンポーネントに比べて大きい場合、第1コンポーネントに第1ワークロードを割り当てる。プロセッサ200は、第2コンポーネントに第2ワークロードを割り当てる。
【0151】
プロセッサ200は、駆動モードが高効率モードである場合、複数のコンポーネントの動作周波数による駆動電圧を比較する。プロセッサ200は、駆動電圧の比較結果に基づいて複数のコンポーネントに互いに異なるワークロードを割り当てる。
【0152】
プロセッサ200は、同じ駆動周波数で第1コンポーネントの駆動電圧が第2コンポーネントに比べて低い場合、第1コンポーネントに第2ワークロードを割り当てる。プロセッサ200は、第2コンポーネントに第1ワークロードを割り当てる。
【0153】
プロセッサ200は、複数のコンポーネントのDVFS特性に基づいて複数のコンポーネントをクラスタリングすることで、第1クラスタ及び第2クラスタを生成することができる。クラスタは、複数のコンポーネントを含むコンポーネントの集合を意味する。
【0154】
プロセッサ200は、第1クラスタと第2クラスタのうちDVFS特性に良好なクラスタに第2ワークロードを割り当てる。プロセッサ200は、残りのクラスタに第1ワークロードを割り当てる。
【0155】
プロセッサ200は、分配されたワークロードに基づいて演算を処理する(S1070)。
【0156】
以上述した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0157】
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成したり、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアはネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納されたり実行され得る。ソフトウェア及びデータは一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
【0158】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0159】
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順で実行されるし、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組み合わせられてもよいし、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
【0160】
したがって、本発明の範囲は、開示された実施形態に限定されて定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【0161】
10 コンピューティングシステム制御装置
100 受信器
200 プロセッサ
210 パワーメーター
230,271,273,275,277 サーバ
251,253,255 スイッチ
290 ユーザ
300 メモリ
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図10