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

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

▶ 日本電気株式会社の特許一覧

特開2024-132396情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラム
<>
  • 特開-情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラム 図1
  • 特開-情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラム 図2
  • 特開-情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラム 図3
  • 特開-情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラム 図4
  • 特開-情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラム 図5
  • 特開-情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132396
(43)【公開日】2024-10-01
(54)【発明の名称】情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240920BHJP
   G06F 1/3206 20190101ALI20240920BHJP
   G06F 1/3287 20190101ALI20240920BHJP
【FI】
G06F9/50 120A
G06F1/3206
G06F1/3287
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023043138
(22)【出願日】2023-03-17
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】小林 竜也
【テーマコード(参考)】
5B011
【Fターム(参考)】
5B011DA01
5B011EA01
5B011EA02
5B011LL07
(57)【要約】
【課題】処理の実行に必要なGPUの数を把握する方法を提供する。
【解決手段】情報処理装置は、処理対象の全データの一部を抜き出して、抜き出した前記データを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する手段、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する手段、
を備える情報処理装置。
【請求項2】
前記算出する手段は、前記抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、前記GPUの数と前記実行時間の関係を示す近似式を導出し、前記近似式に基づいて、前記GPUの数の最小値を算出する、
請求項1に記載の情報処理装置。
【請求項3】
前記全データのデータ数と抜き出した前記データのデータ数の比と、前記実行時間と、に基づいて、前記全データを処理対象として前記処理を実行したときの全実行時間を予測する手段、
をさらに備え、
前記最小値を算出する手段は、前記全実行時間と前記期待実行時間とを比較して、前記期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する、
請求項1又は請求項2に記載の情報処理装置。
【請求項4】
前記予測する手段は、全ての前記GPUを用いたときの前記全実行時間を予測し、
前記最小値を算出する手段は、当該全実行時間の予測値が前記期待実行時間以内となるときに前記GPUの数の最小値を算出する、
請求項3に記載の情報処理装置。
【請求項5】
前記処理は深層学習処理である、
請求項1又は請求項2に記載の情報処理装置。
【請求項6】
請求項1又は請求項2に記載の情報処理装置と、複数のGPUが搭載された1台のサーバ、又は、1つ又は複数のGPUが搭載された1台又は複数台のサーバと、を備え、
前記情報処理装置は、
前記GPUの数の最小値分の前記GPUの電源をオンとし、それ以外の前記GPUの電源をオフにするよう前記サーバに指示する手段、
をさらに備え、
前記サーバは、
前記指示に基づいて、前記GPUの電源のオンとオフを制御する手段、
を備える情報処理システム。
【請求項7】
前記情報処理装置は、
前記サーバが備える前記GPUの数を変化させて前記サーバに前記処理を実行させる手段と、
前記GPUの数ごとの前記実行時間を測定する手段と、
をさらに備える請求項6に記載の情報処理システム。
【請求項8】
処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する、
GPU枚数計算方法。
【請求項9】
複数のGPUが搭載された1台のサーバ、又は、1つ又は複数のGPUが搭載された1台又は複数台のサーバを含む情報処理システムの制御方法であって、
請求項8に記載のGPU枚数計算方法を実行するステップと、
前記GPUの数の最小値分の前記GPUの電源をオンとし、それ以外の前記GPUの電源をオフするステップと、
を有する制御方法。
【請求項10】
コンピュータに、
処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する処理、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラムに関する。
【背景技術】
【0002】
分散深層学習の学習処理では、GPU(Graphics Processing Unit)の枚数に性能(スループット)がスケールするわけではない。GPU枚数が増えるほど1枚当たりの性能が落ちるため、GPU枚数を増やすほど電力効率が悪くなる。そのため、GPU単体の電力効率は、学習に使用するGPU枚数が少ないほど高くなる。また、GPUはアイドル状態でも電力を消費するため、使用しないGPUは無駄に電力を消費する。
【0003】
特許文献1には、マルチプロセッサシステムにおいて複数のプロセッサが動作すると、電力消費量が増加することを課題として、待ち状態にあるプロセッサの動作周波数を減らすことにより消費電力を削減する技術が開示されている。特許文献1の技術は、CPU(Central Processing Unit)を対象としているが、分散深層学習システムにおけるGPUに対して、プロセッサ単位で動作周波数を変えることにより消費電力を削減する制御を適用することはできない。
【0004】
一般的に、分散深層学習において、学習処理の際に使用するGPU枚数は明示的に指定され、指定された数のGPUを使用して学習が行われる。このとき、学習に使用しないGPUは常にアイドル状態となる。また、学習内容によっては多くのGPUを使用せずとも十分高速に処理することができるが、そのような場合でも使用しない全てのGPUがアイドル状態となり、無駄な電力を消費する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008-77640号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
GPUの電力効率を上げるためには、学習に使用するGPUのみを使用し、残りのGPUの電源をオフにすることが好ましい。その為には、学習に使用するGPUの数を把握する必要がある。
【0007】
そこでこの発明は、上述の課題を解決する情報処理装置、情報処理システム、GPU枚数計算方法、制御方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、情報処理装置は、処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する手段、を備える。
【0009】
本発明の一態様によれば、情報処理システムは、上記の情報処理装置と、複数のGPUが搭載された1台のサーバ、又は、1つ又は複数のGPUが搭載された1台又は複数台のサーバと、を備え、前記情報処理装置は、前記GPUの数の最小値分の前記GPUの電源をオンとし、それ以外の前記GPUの電源をオフにするよう指示する手段をさらに備え、前記サーバは、前記指示に基づいて、前記GPUの電源のオンとオフを制御する手段、を備える。
【0010】
本発明の一態様によれば、GPU枚数計算方法は、処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する。
【0011】
本発明の一態様によれば、制御方法は、複数のGPUが搭載された1台のサーバ、又は、1つ又は複数のGPUが搭載された1台又は複数台のサーバを含む情報処理システムの制御方法であって、上記のGPU枚数計算方法を実行するステップと、前記GPUの数の最小値分の前記GPUの電源をオンとし、それ以外の前記GPUの電源をオフするステップと、を有する。
【0012】
本発明の一態様によれば、プログラムは、コンピュータに、処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する処理、を実行させる。
【発明の効果】
【0013】
本発明によれば、処理の実行に必要なGPUの数を把握することができる。
【図面の簡単な説明】
【0014】
図1】実施形態に係る分散深層学習システムの一例を示す図である。
図2】実施形態に係る分散深層学習システムの要部のブロック図である。
図3】実施形態に係る分散深層学習システムの動作の一例を示すフローチャートである。
図4】実施形態に係るGPU枚数計算処理の一例を示すフローチャートである。
図5】最小構成を有する情報処理装置の構成を示すブロック図である。
図6】最小構成を有するGPU枚数計算方法のフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の各実施形態に係る分析装置について図面を参照して説明する。以下の説明に用いる図面において本発明に関係ない部分の構成については、記載を省略し、図示しない場合がある。
【0016】
<実施形態>
(構成)
図1は、本発明の実施形態に係る分散深層学習システムの一例を示す図である。一般に、分散深層学習システムは、複数のGPUを搭載した複数台GPUサーバをインフィニバンド等で接続したシステム構成を有する。図1に示すように、分散深層学習システム10は、サーバ1~5と、クライアント端末6とを含む。サーバ1~4はGPUを搭載している。サーバ1~4をGPUサーバ1~4と呼ぶ。GPUサーバ1~4は、1枚又は複数枚のGPUを搭載している。図1には、GPUサーバを4台含む構成を例示しているが、GPUサーバの台数は1台であってもよいし、5台以上であってもよい。また、1台のGPUサーバに搭載されるGPUの枚数は1枚でも複数枚でもよい。但し、1台の場合には、そのGPUサーバには、複数枚のGPUが搭載されているとする。一例として、GPUサーバ1~4が複数枚のGPUを備える構成を前提として説明を行う。また、GPUサーバ1~4に搭載されたGPUは全て同種のモデル(同一性能)であるとする。
【0017】
GPUサーバ1~4は、ハブ7を通じて、互いに通信可能に接続されている。また、GPUサーバ1~4は、ハブ7を通じて、サーバ5と通信可能に接続されている。サーバ5は、GPUサーバ1~4を用いて、分散深層学習の実行を制御する。サーバ5を管理サーバ5と呼ぶ。例えば、GPUサーバ1~4がそれぞれ3枚のGPUを搭載しており、3枚のGPUで学習が可能な処理が存在する場合、1台のGPUサーバ(例えば、GPUサーバ1)が備える3枚のGPUを用いて学習を実行してもよいし、GPUサーバ1が備える2枚のGPUと他のGPUサーバ(例えば、GPUサーバ2)が備える1枚のGPUとを用いて学習処理を実行するようにしてもよい。管理サーバ5とクライアント端末6は、通信可能に接続されている。クライアント端末6は、ユーザの操作に用いられる。例えば、ユーザは、クライアント端末6を操作して、管理サーバ5に分散深層学習の実行や停止の指示を行う。
【0018】
図2は、分散深層学習システム10の要部の機能を表したブロック図である。図2には、GPUサーバ1~4を代表して、GPUサーバ1の構成例を示しているが、GPUサーバ2~4についても同様である。
【0019】
管理サーバ5は、GPU枚数計算部51と、制御部52と、通信部53とを備える。
GPU枚数計算部51は、分散深層学習に必要なGPUの最適な枚数(最小枚数)を計算する。この計算のアルゴリズムについては、後に図4を参照して詳しく説明する。
制御部52は、分散深層学習処理を制御する。例えば、制御部52は、GPU枚数計算部51にGPUの最適な数を計算させ、その計算結果に基づいてGPUサーバ1~4に搭載されたGPUのうち、必要な数のGPUを電源オンとし、残りのGPUの電源をオフにするよう指示する。そして、制御部52は、GPUサーバ1~4に分散深層学習を実行させる。
通信部53は、GPUサーバ1などの他装置とのデータ通信を行う。例えば、制御部52がGPUサーバ1~4にGPUの電源オンや電源オフを指示する場合、あるいは、深層学習の実行を指示する場合、通信部53を通じて、これらの指示情報が、GPUサーバ1~4へ送信される。
【0020】
GPUサーバ1は、GPU電源制御部11と、学習実行部12と、通信部13と、GPU14と、を備える。
GPU電源制御部11は、GPU14の電源のオンとオフを切り替える。
学習実行部12は、管理サーバ5の指示に基づいて、分散深層学習を行う。
通信部13は、管理サーバ5などの他装置とのデータ通信を行う。例えば、管理サーバ5からGPU14の電源オンや電源オフの指示、あるいは、深層学習の実行指示を受け取る場合、GPUサーバ1は、通信部13を通じて、これらの指示情報を受け取る。
【0021】
GPU14は、GPUサーバ1に搭載されたGPUである。図2のブロック図では、GPU14を1つ備えるように記載しているが、これは1枚のGPUを意味するのではなく、GPUサーバ1が備えるGPU全体を表している。つまり、GPUサーバ1に複数枚のGPUが搭載されている場合、GPU14は、複数のGPUを含む。GPU14が複数のGPUを含む場合、GPU電源制御部11は、それぞれのGPUの電源オンと電源オフを個別に切り替えることができる。
【0022】
(動作)
次に本実施形態の省電力制御を適用したときの情報処理システムの動作について図3図4を参照して説明する。分散深層学習システム10は、以下に説明する制御により、GPUの電力効率を改善し、システム全体の総消費電力を抑制しつつ、学習処理を行う。
【0023】
(1)学習処理全体のフロー
図3は、実施形態に係る情報処理システムの動作の一例を示すフローチャートである。
図3に本実施形態に係る省電力制御を適用した分散深層学習システム10の学習処理の全体フローを示す。
最初に、クライアント端末6から学習処理に必要となる学習用プログラム、データセット、期待学習時間などのデータを管理サーバ5へ送信し、管理サーバ5を通じてGPUサーバ1~4に転送し、学習処理の開始を管理サーバに依頼する(ステップS101)。
【0024】
次に管理サーバ5からGPUサーバ1~4に対して全GPUの電源オンを指示する(ステップS102)。制御部52は、通信部53を通じて、電源オンの指示情報をGPUサーバ1~4へ送信する。GPUサーバ1~4のそれぞれは、管理サーバ5からの指示を受信し、自装置に搭載された全てのGPUの電源をオンにする(ステップS103)。例えば、GPUサーバ1では、GPU電源制御部11がGPU14の電源をオンにする。
【0025】
次に管理サーバ5のGPU枚数計算部51が、本実施形態に係るGPU枚数計算処理のアルゴリズムを用いて、学習に使用するGPU枚数を計算する(ステップS104)。GPU枚数計算方法のアルゴリズムの詳細については、次に図4を参照して説明する。
【0026】
次に管理サーバ5の制御部52は、GPU枚数の計算結果に基づいて、GPUサーバ1~4に使用しないGPUの電源オフを指示する(ステップS105)。GPUサーバ1~4のそれぞれは、管理サーバ5からの電源オフの指示を受信し、自装置に搭載された使用しないGPUの電源をオフにする(ステップS106)。例えば、GPUサーバ1では、GPU電源制御部11がGPU14のうち使用しないGPUの電源をオフにする。
【0027】
次に管理サーバ5の制御部52は、GPUサーバ1~4に対して学習処理の実行を指示する(ステップS107)。GPUサーバ1~4のそれぞれは、管理サーバ5からの学習処理の実行指示を受信し、学習処理を実行する(ステップS108)。
【0028】
次に学習処理の実行が完了すると、管理サーバ5の制御部52はGPUサーバ1~4に対して学習処理に使用した全てのGPUの電源オフを指示する(ステップS109)。GPUサーバ1~4のそれぞれは、管理サーバ5からの電源オフの指示を受信し、学習処理に使用した全GPUの電源をオフにする(ステップS110)。例えば、GPUサーバ1では、GPU電源制御部11がGPU14のうち学習処理に使用したGPUの電源をオフにする。最後にクライアント端末6が、学習結果を出力する(ステップS111)。
【0029】
(2)GPU枚数計算処理のフロー
次に、学習に必要な最適なGPU枚数を計算する処理について説明する。
図4は、実施形態に係るGPU枚数計算処理の一例を示すフローチャートである。
最初に、管理サーバ5のGPU枚数計算部51は、学習用のデータセットの中から一部分を抜き出し、データ数の少ないデータセットを作成する(ステップS201)。例えば、GPU枚数計算部51は、学習用のデータセット全体からランダムにデータセットを選択する。
【0030】
次に、管理サーバ5のGPU枚数計算部51は、学習に使用するGPU枚数に最大枚数を設定し、制御部52がGPUサーバ1~4にデータ数の少ないデータセットを転送し、このデータセットで学習を行わせる。GPU枚数計算部51は、学習時間を測定する(ステップS202)。ここで、GPUサーバ1~4は、同一性能のGPUを搭載している。また、GPU以外の構成(CPU、メモリ、ディスク等)が性能に与える影響は少ない。そのためGPUサーバ1~4の性能差は無視できる。
【0031】
次に、管理サーバ5のGPU枚数計算部51は、学習時間の測定結果から、GPU枚数最大時における、実際の学習に使用するデータセットでの学習時間を予測する(ステップS203)。例としてSGD(Stochastic Gradient Descent:確率的勾配降下法)で学習する場合、1エポックあたりの学習時間はデータ数に比例するため、最終的な実行時間は、おおよそ「データ数の少ないデータセットで学習にかかった時間」に「実際のデータセットのデータ数」と「データ数の少ないデータセットのデータ数」の比を乗じ、さらに終了条件となるエポック数をかけたものとなる。なお、学習時間の測定に用いる最適化手法は、SDG以外にもバッチ勾配降下法、ミニバッチ勾配降下法などがあり、SGDに代えてこれらの手法を用いて学習時間を測定してもよい。バッチ勾配降下法、ミニバッチ勾配降下法においても、最終的な実行時間の計算方法は上記した計算方法と同様である。
【0032】
なお、ステップS201で抜き出すデータに特徴があるような場合や学習するAIモデルに特徴がある場合、上記の計算方法では全データセットを学習する時に必要な学習時間を計算できない可能性がある。これは、抜き出すデータ数を多くすることで解決することができる。しかし、そのようなケースを検出することは難しいので、そうなる可能性があるAIモデルやデータセットの場合には、例えば、ユーザが、事前にステップS201にて抜き出すデータセットを増やすような設定しておくことで対処する。
【0033】
次にGPU枚数計算部51は、予測した学習時間が、所定の期待学習時間以内かどうかを判定する(ステップS204)。予測した学習時間が期待学習時間を超えていた場合(ステップS204;No)、GPU枚数計算部51は、予測した学習時間を出力して処理を終了する(ステップS205)。この場合、GPUサーバ1~4が搭載する全てのGPUを使用して学習を実行することになるので、図3のステップS105にて、電源オフが指示されるGPUはない。
【0034】
一方、予測した学習時間が期待学習時間以内であれば(ステップS204;Yes)、のGPU枚数計算部51は、学習処理に使用するGPU枚数を1、2、4、8、・・・と変化させ、各GPU枚数にて、ステップS201で抜き出したデータセットの学習を行ったときの学習時間を測定する(ステップS206)。例えば、GPUサーバ1~4が3枚ずつGPUを搭載しているとする。変化させるGPU枚数が1や2の場合、例えば、制御部52は、GPUサーバ1に1枚または2枚のGPUを用いて学習させ、GPU枚数計算部51が、それぞれの学習時間を測定する。また、変化させるGPU枚数が4の場合、管理サーバ5は、例えば、GPUサーバ1に3枚のGPUを用いて学習させ、GPUサーバ2に1枚のGPUを用いて学習させ、このときの学習時間を測定する。GPU枚数が8の場合も同様にして、管理サーバ5は、GPUサーバ1~4に搭載されたGPUのうち8枚を指定して、データ数の少ないデータセットを学習したときの学習時間を測定する。なお、ここで示したGPUサーバ1~4へのGPUの割り当ては、一例であってこれに限定されない。例えば、GPU枚数が2の場合、GPUサーバ1~2の各々に1枚ずつのGPUを用いて学習させ、そのときの学習時間を測定してもよい。また、学習時間の測定に用いるGPUの割り当ては、GPUサーバ1~4側で決定してもよい。
【0035】
学習時間が測定できると、次に管理サーバ5は、測定により得られたGPU枚数と学習時間の関係から最小二乗法などを用いてそれらに対する近似式を導出する(ステップS207)。GPU枚数計算部51は、ステップS203で説明した方法で、測定した学習時間から全データセットを学習した場合の学習時間を予測する。GPU枚数計算部51は、GPU枚数と学習に必要な時間(全データセットの学習時間の予測値)の関係を示す近似式を導出する。最後にGPU枚数計算部51は、導出した近似式から所定の期待学習時間以内で学習が完了する最小のGPU枚数を算出する(ステップS208)。管理サーバ5の制御部52は、ステップS208にて算出された最小のGPU枚数のGPUサーバ1~4への割り当てを決定し、図3のステップS105にて、割り当てから外れたGPUの電源オフをGPUサーバ1~4へ指示する。
【0036】
一般にサーバの台数を減らし、1台のサーバにより多くのGPUを搭載したほうが、全体の消費電力は少なくなる。これは、GPU以外の構成(例えば、CPU、メモリ、ディスク等)が消費する電力を減らすことが出来るためである。また、サーバ間の通信がボトルネックになりやすいため、使用するGPUを1台のサーバに集中したほうが学習時間は短くなる傾向がある。例えば、ステップS208で算出した最小のGPU枚数が3枚の場合、管理サーバ5は、学習に使用する3枚のGPUの割り当てをGPUサーバ1に集中させてもよい。この場合、管理サーバ5は、図3のステップS105にて、GPUサーバ1にはGPUの電源オフを指示せず、GPUサーバ2~4には、全GPUの電源オフを指示する。
【0037】
なお、上記のGPU割り当ては一例である。管理サーバ5は、3枚のGPUの割り当てをGPUサーバ1に1枚、GPUサーバ2に2枚のように割り当ててもよいし、それ以外の方法で割り当てを決定してもよい(例えば、GPUを電源オンにする時間が均等になるように割り当てるなど)。GPUサーバ1に1枚、GPUサーバ2に2枚割り当てる場合、管理サーバ5は、図3のステップS105にて、GPUサーバ1には2枚のGPUを電源オフするように指示し、GPUサーバ2には1枚のGPUを電源オフするように指示し、GPUサーバ3~4には、全GPUの電源オフを指示する。
【0038】
また、図3のステップS105にて、管理サーバ5が、使用しないGPUの枚数と電源オフの指示をGPUサーバ1~4へ送信し、GPUサーバ1~4側で電源オフするGPUの割り当てを決定(例えば、GPUを電源オンにする時間が均等になるように割り当てるなど)するようにしてもよい。
【0039】
図4のフローチャートにおいて、ステップS205の出力処理は省略することができる。ステップS206にて学習時間を測定するGPU枚数は1、2、4、8、・・・でなくてもよい。例えば、1、3、5、・・・でもよいし、10、8、6、・・・のように徐々にGPU枚数を減らすように変化させてもよい。また、ステップS207にて近似式を導出するときに最小二乗法ではなく最小絶対値法を用いて近似式を導出してもよい。
【0040】
(効果)
一般的な分散深層学習システムであれば、使用するGPU枚数を明示的に指定する必要があり、その場合、必要以上に早く学習処理が完了するが電力効率が悪い、電力効率は良いが学習処理に時間がかかりすぎるというような状況になることがある。また、使用していないGPUはアイドル状態となりその分無駄に電力を消費してしまう。
【0041】
これに対し、本実施形態によれば、学習に使用するデータセットの一部を使って学習時間を予測し、期待する学習時間で学習が完了する最小のGPU枚数を計算する。このアルゴリズムを分散深層学習システムに適用し、使用しないGPUの電源をオフにすることで学習処理でのGPUの電力効率を向上するとともに、システム全体の総消費電力を抑制することができる。
【0042】
本実施形態の省電力制御、つまり、図4のGPU枚数計算処理により必要なGPU枚数を算出し、必要のないGPUの電源をオフにする制御は、分散深層学習システムだけではなく、各種のGPUクラスタシステム、GPUサーバ(複数枚のGPUが搭載された1台のGPUサーバでもよいし、1又は複数枚のGPUが搭載された1台のGPUサーバ群であってもよい。)に適用することができる。例えば、ディスアグリゲーテッドコンピューティングでは、アプリケーションの要件に応じてリソース構成を組むため、本実施形態のGPU枚数計算処理により、アプリケーションの要件を満たすGPU枚数を計算し、電源オンするGPU枚数の最適化に活用することができる。
【0043】
(最小構成)
図5は、最小構成を有する情報処理装置の構成を示すブロック図である。
情報処理装置800は、GPU枚数計算手段810を備える。
GPU枚数計算手段810は、処理対象のデータの一部を抜き出して、抜き出した前記データを処理対象として、GPUの数を変化させて前記処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数から、所定の期待時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する。これにより、電力効率が最大となるGPU枚数を算出することが可能であり、それによってGPUの電力効率を改善し、消費電力を抑制することが出来る。
管理サーバ5は、情報処理装置800の一例である。GPU枚数計算部51は、GPU枚数計算手段810の一例である。
【0044】
図6は、最小構成を有するGPU枚数計算方法のフローチャートである。
GPU枚数計算手段810は、処理対象のデータの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させつつ前記処理を実行したときのGPU数ごとの実行時間の測定値を取得する(ステップS801)。
次に、GPU枚数計算手段810は、GPUの数ごとの実行時間の測定値と処理に用いたGPUの数から、所定の期待時間以内に処理を完了させることができる最小のGPU枚数を算出する(ステップS802)。
【0045】
なお、上述した実施形態におけるGPUサーバ1~4、管理サーバ5、クライアント端末6の一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、GPUサーバ1~4、管理サーバ5、クライアント端末6に内蔵されたコンピュータシステムであって、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
【0046】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0047】
また、上述した実施形態におけるGPUサーバ1~4、管理サーバ5、クライアント端末6の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。GPUサーバ1~4、管理サーバ5、クライアント端末6の各機能部は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【0048】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、本発明の一態様は、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。また、上記各実施形態や変形例に記載された要素であり、同様の効果を奏する要素同士を置換した構成も含まれる。
【0049】
上記実施形態の一部または全部は、以下の付記のように記載されうるが、以下には限られない。
【0050】
(付記1)
処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、前記GPUの数と前記実行時間の関係を示す近似式を導出し、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する手段、を備える情報処理装置である。
【0051】
(付記2)
前記算出する手段は、前記抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、前記GPUの数と前記実行時間の関係を示す近似式を導出し、前記近似式に基づいて、前記GPUの数の最小値を算出する、付記1に記載の情報処理装置である。
【0052】
(付記3)
前記算出する手段は、前記抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、前記GPUの数と前記実行時間の関係を算出し、前記関係に基づいて、前記GPUの数の最小値を算出する、付記1に記載の情報処理装置である。
【0053】
(付記4)
前記全データのデータ数と抜き出した前記データのデータ数の比と、前記実行時間と、に基づいて、前記全データを処理対象として前記処理を実行したときの全実行時間を予測する手段、をさらに備え、前記最小値を算出する手段は、前記全実行時間と前記期待実行時間とを比較して、前記期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する、付記1から付記3の何れか1つに記載の情報処理装置である。
【0054】
(付記5)
前記予測する手段は、全ての前記GPUを用いたときの前記全実行時間を予測し、
前記最小値を算出する手段は、当該全実行時間の予測値が前記期待実行時間以内となるときに前記GPUの数の最小値を算出する、付記4に記載の情報処理装置である。
【0055】
(付記6)
前記処理は深層学習処理である、付記1から付記5の何れかに記載の情報処理装置である。
【0056】
(付記7)
付記1~付記6に記載の情報処理装置と、複数のGPUが搭載された1台のサーバ、又は、1つ又は複数のGPUが搭載された1台又は複数台のサーバと、を備え、前記情報処理装置は、前記GPUの数の最小値分の前記GPUの電源をオンとし、それ以外の前記GPUの電源をオフにするよう指示する手段、をさらに備え、前記サーバは、前記指示に基づいて、前記GPUの電源のオンとオフを制御する手段、を備える情報処理システムである。
【0057】
(付記8)
前記情報処理装置は、前記サーバが備える前記GPUの数を変化させて前記処理を実行させる手段と、前記GPUの数ごとの前記実行時間を測定する手段と、をさらに備える付記5に記載の情報処理システムである。
【0058】
(付記9)
処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する、GPU枚数計算方法である。
【0059】
(付記10)
複数のGPUが搭載された1台のサーバ、又は、1つ又は複数のGPUが搭載された1台又は複数台のサーバを含む情報処理システムの制御方法であって、付記9に記載のGPU枚数計算方法を実行するステップと、前記GPUの数の最小値分の前記GPUの電源をオンとし、それ以外の前記GPUの電源をオフするステップと、を有する制御方法である。
【0060】
(付記11)
コンピュータに、処理対象の全データの一部を抜き出して、抜き出したデータを処理対象として、GPUの数を変化させて処理を実行したときの前記GPUの数ごとの実行時間の測定値と、前記処理に用いた前記GPUの数と、に基づいて、所定の期待実行時間以内に前記処理を完了させることができる前記GPUの数の最小値を算出する処理、を実行させるプログラムである。
【符号の説明】
【0061】
1,2,3,4・・・GPUサーバ
11・・・GPU電源制御部
12・・・学習実行部
13・・・通信部
14・・・GPU
5・・・管理サーバ
51・・・GPU枚数計算部
52・・・制御部
53・・・通信部
6・・・クライアント端末
7・・・ハブ
図1
図2
図3
図4
図5
図6