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

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

▶ 富士通株式会社の特許一覧

特開2024-93916テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置
<>
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図1
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図2
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図3
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図4
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図5
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図6
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図7
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図8
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図9
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図10
  • 特開-テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024093916
(43)【公開日】2024-07-09
(54)【発明の名称】テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置
(51)【国際特許分類】
   G06N 10/00 20220101AFI20240702BHJP
【FI】
G06N10/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022210565
(22)【出願日】2022-12-27
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】中尾 鷹詔
(57)【要約】
【課題】使用可能なメモリ容量の範囲内でテンソルネットワークの縮約演算が可能か否かを迅速に判断する。
【解決手段】テンソルネットワーク縮約制御プログラムは、相互に連結された複数のテンソルを含むテンソルネットワークに含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内でテンソルネットワークの縮約を完遂可能か否かについて判断する、処理をコンピュータに実行させる。
【選択図】図6
【特許請求の範囲】
【請求項1】
相互に連結された複数のテンソルを含むテンソルネットワークに含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内で前記テンソルネットワークの縮約を完遂可能か否かについて判断する、
処理をコンピュータに実行させる、テンソルネットワーク縮約制御プログラム。
【請求項2】
前記エッジ数は、前記テンソルネットワークをそれぞれ1以上のテンソルを含むように分割して得られる複数の群の間を結ぶエッジ数である、
請求項1に記載のテンソルネットワーク縮約制御プログラム。
【請求項3】
前記縮約を完遂可能か否かについて判断する処理において、
前記テンソルネットワークを縮約するために要する推定メモリ量が、基準値以下か否かについて、前記エッジ数に基づいて判断する、
処理をコンピュータに実行させる、請求項2に記載のテンソルネットワーク縮約制御プログラム。
【請求項4】
さらに、前記テンソルネットワークを縮約する順序の算出を開始し、
前記推定メモリ量が前記基準値以下と判断される場合には、前記順序の算出を続行し、前記推定メモリ量が前記基準値よりも大きいと判断される場合には、前記テンソルネットワークの縮約を完遂できない旨を出力し、前記順序の算出を終了する、
処理をコンピュータに実行させる、請求項3に記載のテンソルネットワーク縮約制御プログラム。
【請求項5】
さらに、前記順序の算出をする処理過程において前記テンソルネットワークを分割することによって前記複数の群を得る、
処理を前記コンピュータに実行させる、請求項4に記載のテンソルネットワーク縮約制御プログラム。
【請求項6】
前記テンソルネットワークは、シミュレーションの対象となる量子回路に対応づけられ、
前記推定メモリ量が、前記基準値以下か否かについて前記エッジ数に基づいて判断する処理において、
前記複数の群の間を結ぶ前記エッジ数がm本である場合に、前記推定メモリ量を、少なくとも22m+a(但し、aは定数)以上であると算出する、
処理を前記コンピュータに実行させる、請求項3から5のいずれか1項に記載のテンソルネットワーク縮約制御プログラム。
【請求項7】
相互に連結された複数のテンソルを含むテンソルネットワークに含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内で前記テンソルネットワークの縮約を完遂可能か否かについて判断する、
処理をコンピュータが実行する、テンソルネットワーク縮約制御方法。
【請求項8】
相互に連結された複数のテンソルを含むテンソルネットワークに含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内で前記テンソルネットワークの縮約を完遂可能か否かについて判断する、
プロセッサを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テンソルネットワーク縮約制御プログラム,テンソルネットワーク縮約制御方法及び情報処理装置に関する。
【背景技術】
【0002】
テンソルネットワークは、複数のテンソルが互いに連結されたネットワーク構造を有する。テンソルネットワークは、統計物理及び機械学習などの種々の分野で利用される。近年、テンソルネットワークは、量子コンピュータではないコンピュータ(すなわち、古典コンピュータ)を用いて、量子コンピュータ等の量子回路をシミュレートするためのシミュレータとしても利用される。
【0003】
テンソルネットワークにおいて、エッジと呼ばれる連結線によって互いに連結された複数のテンソルは、縮約することができる。隣り合うテンソルを1つのペアとして縮約する過程を繰り返すことによって、テンソルネットワークに含まれる複数のテンソルを最終的に1つのテンソルに統合することができる。この得られた1つのテンソルが、所望のシミュレーション結果等の演算結果に対応する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2022-003501号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
縮約を演算するために要するメモリ量が、装置において使用可能なメモリ容量を超えてしまう場合には、テンソルネットワークの縮約の演算を完遂することが難しい。さらに、縮約順序によって縮約演算に要求されるメモリ量は変化する。そこで、従来は、縮約順序を算出した後に、縮約演算に要求されるメモリ量が推定されていた。
【0006】
しかしながら、全ての縮約順序の算出が完了するのを待つのでは、使用可能なメモリ容量の範囲内でテンソルネットワークの縮約演算が可能か否かを判断するのに時間が長くかかるおそれがある。
【0007】
1つの側面では、使用可能なメモリ容量の範囲内でテンソルネットワークの縮約演算が可能か否かを迅速に判断することを目的とする。
【課題を解決するための手段】
【0008】
1つの側面では、テンソルネットワーク縮約制御プログラムは、相互に連結された複数のテンソルを含むテンソルネットワークに含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内で前記テンソルネットワークの縮約を完遂可能か否かについて判断する、処理をコンピュータに実行させる。
【発明の効果】
【0009】
1つの側面では、使用可能なメモリ容量の範囲内でテンソルネットワークの縮約演算が可能か否かを迅速に判断することができる。
【図面の簡単な説明】
【0010】
図1】テンソルとテンソルダイアグラムの一例を示す図である。
図2】テンソルの縮約を説明する図である。
図3】テンソルネットワークの縮約処理を説明する図である。
図4】テンソルネットワークの縮約順序の算出処理を説明する図である。
図5】テンソルネットワークを分割して得られる複数のサブグラフ間を結ぶエッジの一例を示す図である。
図6】テンソルネットワークを分割して得られる複数のサブグラフ間を結ぶ複数のエッジの他の例を示す図である。
図7】実施形態に係る情報処理装置の機能構成例を示すブロック図である。
図8】実施形態に係る情報処理装置の機能を実現するコンピュータのハードウェア(HW)構成例を示すブロック図である。
図9】実施形態に係る情報処理装置による動作の一例を示すフローチャートである。
図10】比較例に係る情報処理装置による動作の一例を示すフローチャートである。
図11】実施形態に係る情報処理装置において、縮約するために要する推定メモリ量が、基準値以下か否かについての判断処理についての一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
〔A〕テンソル201についての説明
図1は、テンソル201とテンソルダイアグラムの一例を示す図である。本実施形態の情報処理装置1(図7等を参照)は、テンソルネットワークを処理する。テンソルネットワークは、テンソル201を含む。
【0012】
テンソル201は多次元配列であってよい。ベクトルを一次元(すなわち、階数が1)の数字の並び、行列を二次元(すなわち、階数が2)の数字の並びと考えて、r次元(すなわち、階数がr)に一般化したものがテンソル201になる。図1は、三次元(すなわち、階数が3)のテンソル201を示す。
【0013】
テンソル201を丸等の図形部と当該図形部から延びる線で表現することができる。当該表現はテンソルダイアグラム(換言すれば、テンソル図)と称される。図形部は、テンソル201の種類を示す場合がある。線の本数は、次元(すなわち、階数)を示す。図1において、丸と線による表現では、三次元テンソルに対応して、3本の線が設けられている。3本の線には添え字(図1に示す例では右側の線から時計回りに4,3,3)が表記される場合がある。添え字は、それぞれの線で示される軸の要素数(次数、長さという場合がある)を示す。
【0014】
図2は、テンソル201の縮約を説明する図である。テンソルダイアグラムにおいて、複数のテンソル201aの線とテンソル201bの線とがエッジ202と呼ばれる連結線で連結される場合がある。エッジ202は、隣り合う複数のテンソル201a、201bの次元を示す線同士を連結する。図2において、隣り合う複数のテンソル201a(テンソルAと表記)、201b(テンソルBと表記)は、縮約の関係にある。縮約は、行列積を一般化したものである。縮約は、有限次元のベクトル空間とその双対空間の間の自然な内積から生じる、一つ以上のテンソル201に対する演算である。隣り合う複数のテンソル201a、201bを縮約することによって、1つのテンソル201c(テンソルC)とすることができる。図2においては、テンソル201c(テンソルC)は、cijk=Σl(ailljk)で計算されてよい。但し、i,lは、テンソルAの各要素の添え字であり、l,i,kは、テンソルBの各要素の添え字であり、cijkは、テンソルCの要素である。
【0015】
〔B〕実施形態
〔B-1〕テンソルネットワーク200の縮約制御についての説明
以下、図面を参照して一実施形態が説明される。但し、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0016】
本実施形態の情報処理装置1(図7等を参照)は、テンソルネットワーク縮約制御を実行する。テンソルネットワーク縮約制御は、テンソルネットワーク200の縮約処理の制御である。図3は、テンソルネットワーク200の縮約処理を説明する図である。
【0017】
図3には、テンソルネットワーク200が示される。テンソルネットワーク200は、複数のテンソル201-1~201-5(テンソル#T1~#T5と表示、テンソル201と総称する場合がある)を含む。隣り合うテンソル201がエッジ202-1~202-8(図においてa~hで示す。エッジ202と総称する場合がある)によって相互に連結される。エッジ202によって連結されるテンソル201は、縮約の関係にある。テンソルネットワーク200に含まれる複数のテンソル201を縮約して、テンソルネットワーク200を1つのテンソルで表すことをテンソルネットワーク200の縮約(あるいは縮約結果)と称する場合がある。
【0018】
本実施形態においては、量子コンピュータをシミュレートするためにテンソルネットワーク200が用いられる場合を例にとって説明する。この場合、テンソルネットワーク200は、シミュレーションの対象となる量子回路(一例において、量子コンピュータ)に対応づけられる。量子回路における期待値は、量子回路に対応づけられるテンソルネットワーク200の縮約結果としてシミュレートされる。対象となる量子回路に基づいて当該量子回路に対応するテンソルネットワーク200を生成する手法については、従来と同様であるので説明が省略される。
【0019】
なお、テンソルネットワーク200は、量子回路に対応づけられるものに限られず、統計力学または機械学習等の分野において用いられてもよい。統計力学または機械学習において、所望の演算に対応するテンソルネットワーク200を生成する手法については、従来と同様であるので説明を省略する。
【0020】
取得されるテンソルネットワーク200を縮約する場合に、縮約順序が算出される。縮約順序によって、テンソルネットワーク200を縮約するために要する推定メモリ量が異なる。可能性がある複数通りの縮約順序のなかから適切な縮約順序が算出される。
【0021】
縮約順序は、縮約ツリー210として示すことができる。図3においては、第1例、第2例として、縮約ツリー210a及び縮約ツリー210b(縮約ツリー210と総称する場合がある)が示される。
【0022】
縮約ツリー210aは、根(#L1)、節(#L2,#L3,#L4)、葉(#T1,#T2,#T3,#T4,#T5)を構成要素として含み、隣り合う構成要素間を結ぶ枝を含むグラフとして表示されてよい。根(#L1)は、枝分かれのはじめの部分である。1つの構成要素からみて根側を入力、葉側を出力とすると、根は、入力枝が0で、出力枝が1以上である構成要素である。節は、入力枝が1で出力枝が1以上の構成要素である。葉は、入力枝が1で出力枝が0である構成要素である。
【0023】
二つの葉(第1例では、#T5、#T4)にそれぞれ1つの枝を介して連結される節(#L4)が検索される。そして、この節に連結される二つの葉(#T5,#T4)が縮約される(処理(1))。葉(#T5)は、テンソルネットワーク200においてエッジ(egh)が連結されるテンソル201-5であり、葉(#T4)は、テンソルネットワーク200においてエッジ(cdh)が連結されるテンソル201-4である。縮約によって共通するエッジhが消去され、残りのエッジ(cdeg)が連結されるテンソル#L4が得られる。テンソル#L4は、新たに葉となる。
【0024】
次に、新しく葉になった#L4を含む二つの葉(#L4,#T3)に節を介さずに枝によって連結される節(#L3)が検索される。二つの葉(#L4,#T3)を縮約して、テンソル#L3が得られる(処理(2))。#L4、#T3に共通するエッジgが消去され、残りのエッジ(bcdef)がテンソル#L3に連結される。以下、同様に、二つの葉(#T2,#L3)が縮約され、テンソル#L2が得られる(処理(3))。そして、最後に、二つの葉(#T1,#L2)が縮約されて、テンソル#L1が得られる(処理(4))。このようにテンソルネットワーク200は、1つのテンソル#L1に縮約され、この縮約結果が、量子回路における期待値等に対応する。
【0025】
第2例においても、二つの葉(第2例では、#T2、#T3)に他の節を経ずに枝を介して連結される節が検索される。この節に連結される二つの葉(#T2,#T3)が縮約される(処理(5))。さらに、この縮約されたテンソルとテンソル#T4とが縮約する(処理(6))。そして、処理(6)の結果とテンソル#T5とが縮約される(処理(7))。最後に、処理(7)の結果とテンソル#T1とが縮約される。このようにテンソルネットワーク200が、1つのテンソル201に縮約され得る。
【0026】
図4は、テンソルネットワーク200の縮約順序の算出処理を説明する図である。テンソルネットワーク200の縮約順序の算出は、換言すれば、縮約ツリー210の算出を意味する。
【0027】
縮約順序を算出するためには、木(ツリー図)を上側(根)から作っていくトップダウン方式と、下側(葉)から作って行くボトムアップ方式がある。トップダウン方式では複数のテンソル201を二分割することを繰り返して木が作成される。本実施形態では、トップダウン方式が採用される。但し、本発明は、トップダウン方式に限定されない。テンソルネットワーク200が2つの群に分割されて、群間のエッジの数が取得される場合であれば、本発明のテンソルネットワークの縮約制御を利用することができる。
【0028】
複数のテンソル201を二分割する順番、分割面の位置を決定するために種々の既存の方法を採用することができるので、詳しい説明を省略する。一例において、Lars Gottesburen等「Advanced Flow-Based Multilevel Hypergraph Partitioning」(www.sea2020.dmi.unict.it/SLIDES/Gottesburen.pdf)に示されるフローカッター(flowcutter)という手法が用いられてよい。但し、本実施形態は、フローカッター以外のアルゴリズムを用いて、複数のテンソル201を分割する場合にも適用することができる。
【0029】
図4では、分割面#P1によって、テンソルネットワーク200は、1つのテンソル#T1を含む第1サブグラフと、それ以外のテンソル(#T2~#T5)を含む第2サブグラフとに二分割される。第1サブグラフは、第1の群の一例であり、第2サブグラフは、第2の群の一例である。
【0030】
次に、分割面#P2によって、分割可能なサブグラフであるテンソルネットワーク(#T2~#T5)が1つのテンソル#T2を含むサブグラフと残りのテンソルネットワーク(#T3~#T5)を含むサブグラフとに二分割される。一例において、分割されたサブグラフのうち、1つのテンソル#T2を含むサブグラフが第1サブグラフに加えられ、新たな第1サブグラフとして更新されてよい。そして、残りのテンソルネットワークが新たな第2サブグラフとして更新されてよい。この場合、テンソルネットワーク200は、テンソル#T1,#T2を含む第1サブグラフと、それ以外の#T3~#T5を含む第2サブグラフとに二分割される。
【0031】
次に、分割面#P3によって、テンソルネットワーク(#T3~#T5)がテンソル#T3と残りのテンソル#T4,#T5とに二分割される。一例において、テンソル#T3が第1サブグラフに加えられる。これにより、テンソルネットワーク200は、テンソル#T1~#T3を含む第1サブグラフと、それ以外の#T4,#T5を含む第2サブグラフとに二分割されてよい。
【0032】
最後に、分割面#P4によってテンソル#T4,#T5がテンソル#T4とテンソル#T5とに二分割される。一例において、テンソル#T4が第1サブグラフに加えられる。これにより、テンソルネットワーク200は、テンソル#T1~#T4を第1サブグラフとし、それ以外の#T5を第2サブグラフとして、二分割される。この時点において、第2サブグラフは、テンソル201(#T5)を1つしか含まないので、分割できない。従って、テンソル201の縮約順序を算出する処理が終了する。
【0033】
本実施形態においては、情報処理装置1は、テンソルネットワーク200に含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内でテンソルネットワーク200の縮約を完遂可能か否かについて判断する。
【0034】
例えば、テンソルネットワーク200を縮約するために要する推定メモリ量が基準値以下に収まるか否かが判断される。一例において、テンソルネットワーク200をそれぞれ1以上のテンソルを含むように分割して得られる複数の群間を結ぶエッジの数(m)に基づいて、推定メモリ量が基準値以下か否かが判断されてよい。一例において、図4に示したように、縮約順序の算出をする処理過程においてテンソルネットワーク200が複数の群に分割される。複数の群間のエッジ数(すなわち、m)が特定の値以下か否かに基づいて、推定メモリ量が基準値以下か否かが判断されてよい。
【0035】
図5は、テンソルネットワーク200をそれぞれ1以上のテンソルを含むように分割して得られる複数のサブグラフ間を結ぶエッジの一例を示す図である。図5は、縮約順序の算出をする処理過程において、分割面#P1によって、テンソルネットワーク200が、テンソル#T1を含む第1サブグラフ220-1と、それ以外のテンソル(#T2~#T5)を含む第2サブグラフ222-1とに二分割された状態を示す。第1サブグラフ220-1と第2サブグラフ222-1は、テンソルネットワーク200をそれぞれ1以上のテンソルを含むように分割して得られる複数の群の一例である。
【0036】
本明細書において、テンソルネットワーク200の第1サブグラフ220-1と第2サブグラフ222-1との間を結ぶエッジを群間エッジ223と称する。群間エッジ223の数は、テンソルネットワーク200に含まれるエッジ数の一例である。図5において、群間エッジ223の数(m)は、エッジa、b、cの3本(m=3)である。縮約順序の算出が進むにつれて、第1サブグラフ220(220-1,220-2等)に含まれるテンソル201の数や連結関係、並びに第2サブグラフ222(222-1,222-2等)に含まれるテンソル201の数や連結関係が変化する(図5図6を参照)。従って、縮約順序の算出が進むにつれて、群間エッジ223の数も変化する。
【0037】
群間エッジ223の数(m)が、定められた値よりも大きい場合に、テンソルネットワーク200を縮約するために要する推定メモリ量が基準値より大きいと判断される。この場合、図4において説明した縮約順序を算出する処理が、全ての縮約順序の算出完了を待たずに終了する。
【0038】
一方、群間エッジ223の数(m)が予め定められた値以下である場合には、テンソルネットワーク200を縮約するために要する推定メモリ量が基準値以下であると判断される。この場合、図4において説明した縮約順序を算出する処理が、続行される。
【0039】
例えば、予め定められた値が4である場合を考える。図5に示される時点においては、群間エッジ223の数が3であり、予め定められた値4以下であるので、テンソルネットワーク200を縮約するために要する推定メモリ量が基準値以下であると判断される。この場合、図4において説明した縮約順序を算出する処理が、続行され、次に分割面#P2による分割がされる。
【0040】
図6は、テンソルネットワーク200をそれぞれ1以上のテンソルを含むように分割して得られる複数のサブクラス間を結ぶ複数のエッジの他例を示す図である。図6は、分割面#P2によって、テンソルネットワーク200が、テンソル#T1,#T2を含む第1サブグラフ220-2と、それ以外のテンソル(#T3~#T5)を含む第2サブグラフ222-2とに二分割された状態を示す。換言すれば、図6は、図5に後続する状態を示す。図6に示される時点において、第1サブグラフ220-2と第2サブグラフ222-2との間を結ぶ群間エッジ223の数(m)は、エッジb,c,d,e,fの5本(m=5)である。
【0041】
予め定められた値が4である場合には、図6に示される時点においては、群間エッジ223の数が5であり、予め定められた値4よりも大きい。従って、テンソルネットワーク200を縮約するために要する推定メモリ量が基準値よりも大きいと判断される。この場合、縮約順序を算出する処理が終了する。従って、図4において説明した、以後の分割面#P3、#P4による分割等はされない。
【0042】
テンソルネットワーク200を縮約するために要する推定メモリ量が基準値よりも大きいと判断された場合には、メモリ容量が足りないために縮約不可である旨が出力される。従って、メモリ容量が足りない場合には、縮約順序の算出を終了するのを待たずに、縮約不可である旨が出力されるので、使用可能なメモリ容量の範囲内でテンソルネットワークの縮約演算が可能か否かを迅速に判断することができる。
【0043】
〔C〕機能構成例
図7は、実施形態に係る情報処理装置1の機能構成例を示すブロック図である。情報処理装置1は、制御部100,テンソルネットワーク情報記録部102,及びメモリ容量記録部104を含む。
【0044】
テンソルネットワーク情報記録部102は、テンソルネットワーク200の情報を取得して記憶する。テンソルネットワーク200は、一例において、シミュレーションの対象となる量子回路の構成103に対応づけられて生成される。
【0045】
メモリ容量記録部104は、情報処理装置1が、テンソルネットワーク200の縮約を実行するために使用可能なハードウェアのメモリ容量の情報を記憶する。使用可能なハードウェアのメモリ容量は、後述する図8に示すメモリ部12及び記憶装置14のうちの一方または双方が有する記憶領域の容量であってよい。一例において、使用可能なハードウェアのメモリ容量は、2バイトであり、100GB以上10TB以下であってよい。換言すれば、一例において、nは、36以上44以下である。
【0046】
制御部100は、図3から図6を用いて説明したテンソルネットワーク縮約制御を実行する。制御部100は、取得部111,テンソルネットワーク分割部112,縮約不可判定部113,及び終了判定部114を含んでよい。
【0047】
取得部111は、テンソルネットワーク情報記録部102からテンソルネットワーク200についての情報を取得する。また、取得部111は、メモリ容量記録部104から、使用可能なハードウェアのメモリ容量の情報を取得する。
【0048】
テンソルネットワーク分割部112は、取得したテンソルネットワーク200を分割して、複数の群、すなわち第1の群及び第2の群である第1サブグラフ220及び第2サブグラフ222を得る。
【0049】
テンソルネットワーク分割部112は、縮約順序の算出をする処理過程においてテンソルネットワーク200を分割する結果を用いて第1サブグラフ220及び第2サブグラフ222を得てよい。この場合、テンソルネットワーク分割部112は、縮約順序の算出をする処理過程の少なくとも一部を第1サブグラフ220(すなわち、第1の群)及び第2サブグラフ222(すなわち、第2の群)を得るための分割処理として兼用してよい。
【0050】
縮約順序の算出をする処理過程が進展するにつれて、第1サブグラフ220及び第2サブグラフ222にそれぞれ含まれるテンソル201の数及び内訳は変化する。従って、テンソルネットワーク分割部112は、縮約順序を算出する処理が進むのに応じて、適宜に第1サブグラフ220及び第2サブグラフ222を得る。
【0051】
一例において、図4において説明したとおり、テンソルネットワーク分割部112は、分割可能なサブグラフ(一例において第2サブグラフ222)を選択する。テンソルネットワーク分割部112は、一定のアルゴリズムに従ってサブグラフを二つのサブグラフに分割する。
【0052】
テンソルネットワーク分割部112は、分割処理の進展によって、第1サブグラフ220と第2サブグラフ222のそれぞれの内容を更新してよい。分割の順序及び位置を決定するためには、一例において、上記した既存のフローカッター(flowcutter)等の手法を用いたアルゴリズムが用いられてよい。但し、フローカッター以外の手法を用いたアルゴリズムが用いられてもよい。
【0053】
縮約不可判定部113は、使用可能なメモリ容量内で、テンソルネットワーク200の縮約を完遂可能か否かについて、テンソルネットワークに含まれるエッジ数に基づいて判断する。エッジ数は、テンソルネットワーク分割部112によって得られた第1サブグラフ220と第2サブグラフ222との間を結ぶ群間エッジ223の数(すなわち、m)であってよい。
【0054】
縮約不可判定部113は、テンソルネットワーク200を縮約するために要する推定メモリ量が、基準値以下か否かについて、テンソルネットワークに含まれるエッジ数に基づいて判断する。一例において、縮約不可判定部113は、推定メモリ量が、基準値以下か否かについて、群間エッジ223の数に基づいて判断する。縮約不可判定部113は、群間エッジ223の数が、特定の値よりも大きい場合に、推定メモリ量が基準値よりも大きいと判断してよい。
【0055】
群間エッジ223の数をmとし、テンソル201の各次元(軸)の要素数をqとすると、2つのサブグループ(すなわち、第1サブグラフ220と第2サブグラフ222)間を縮約するために必要なメモリ容量は、群間エッジの数mの2倍を要素数の指数とした値q2mと、数値表現に必要なメモリ数である2とを積算した値q2m×2(バイト)になる。量子回路に対応させて生成したテンソルネットワーク200においては各テンソル201の各次元(軸)の要素数は2となる。この場合、縮約不可判定部113は、2つのサブグループ(すなわち、第1サブグラフ220と第2サブグラフ222)間を縮約するために、22m+a(バイト)のメモリ容量を要すると判断する。但し、aは、計算に使われる数値のバイト数で決まる定数である。一例において、コンピュータの数値表現が倍精度浮動小数ならa=8であり、単精度浮動小数点数ならa=4である。換言すれば、縮約不可判定部113は、テンソルネットワーク200を縮約するために要する推定メモリ量を少なくとも22m+a(バイト)と算出する。
【0056】
2m+a>2の場合、すなわち、2m+a>nの場合には、第1サブグラフ220に含まれるテンソル201と第2サブグラフ222に含まれるテンソル201との間を縮約するためのメモリ容量が確保できないと判断することができる。テンソルネットワーク200の全体を縮約する方が、第1サブグラフ220に含まれるテンソル201と第2サブグラフ222に含まれるテンソル201との間を縮約よりも、多くのメモリ容量が必要となる。従って、縮約不可判定部113は、使用可能なメモリ容量内で、テンソルネットワーク200を縮約できる可能性がないと判断してよい。
【0057】
2m+a>nは、m>(n-a)/2と変形することができる。従って、上記の判断は、mが特定の値より大きい場合に、推定メモリ量が基準値より大きいと判断することを意味する。この場合、(n-a)/2が、テンソルネットワーク200の縮約を実行するために使用可能なハードウェアのメモリ容量によって定まる特定の値となる。但し、特定の値は、この場合に限られず、要素数,数値表現,その他の安全率等によって異なってよい。
【0058】
縮約不可判定部113は、縮約不可能であると判断された場合に、縮約不可の旨を、図8を用いて後述する表示制御部13によって表示装置130に表示させる。
【0059】
終了判定部114は、縮約順序の算出処理を終了すべきか継続すべきかを判定する。終了判定部114は、第2サブグラフ222が分割可能か否かを判断する。一例において、終了判定部114は、第2サブグラフ222が含むテンソル201が1つであり、それ以上に分割できない場合には、すべての縮約順序の算出処理が完了したと判断する。
【0060】
また、終了判定部114は、すべての縮約順序の算出処理が完了する前であっても、推定メモリ量が基準値より大きいと判断される場合には、縮約順序の算出を終了する。終了判定部114は、推定メモリ量が基準値以下と判断される場合に、縮約順序の算出を続行する。
【0061】
終了判定部114は、群間エッジ223の数(すなわち、m)を取得し、mが特定の値、例えば、(n-a)/2より大きい場合に、縮約順序の処理過程の途中であっても縮約順序の処理を終了してよい。
【0062】
〔D〕ハードウェア構成例
図8は、実施形態に係る情報処理装置1の機能を実現するコンピュータのハードウェア(HW)構成例を示すブロック図である。
【0063】
図8に示すように、情報処理装置1は、CPU11,メモリ部12,表示制御部13,記憶装置14,入力IF15,外部記録媒体処理部16及び通信IF17を備える。
【0064】
メモリ部12は、記憶部の一例であり、例示的に、Read Only Memory(ROM)及びRandom Access Memory(RAM)などである。メモリ部12のROMには、Basic Input/Output System(BIOS)等のプログラムが書き込まれてよい。メモリ部12のソフトウェアプログラムは、CPU11に適宜に読み込まれて実行されてよい。また、メモリ部12のRAMは、一時記録メモリあるいはワーキングメモリとして利用されてよい。
【0065】
表示制御部13は、表示装置130と接続され、表示装置130を制御する。表示装置130は、液晶ディスプレイやOrganic Light-Emitting Diode(OLED)ディスプレイ,Cathode Ray Tube(CRT),電子ペーパーディスプレイ等であり、オペレータ等に対する各種情報を表示する。表示装置130は、入力装置と組み合わされたものでもよく、例えば、タッチパネルでもよい。
【0066】
記憶装置14は、高IO性能の記憶装置であり、例えば、Dynamic Random Access Memory(DRAM)やSSD,Storage Class Memory(SCM),HDDが用いられてよい。
【0067】
入力IF15は、マウス150やキーボード152等の入力装置と接続され、マウス150やキーボード152等の入力装置を制御してよい。マウス150やキーボード152は、入力装置の一例であり、これらの入力装置を介して、オペレータが各種の入力操作を行う。
【0068】
外部記録媒体処理部16は、記録媒体160が装着可能に構成される。外部記録媒体処理部16は、記録媒体160が装着された状態において、記録媒体160に記録されている情報を読み取り可能に構成される。本例では、記録媒体160は、可搬性を有する。例えば、記録媒体160は、フレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、または、半導体メモリ等である。
【0069】
通信IF17は、外部装置との通信を可能にするためのインタフェースである。
【0070】
CPU11は、プロセッサ(別言すれば、コンピュータ)の一例であり、種々の制御や演算を行う処理装置である。CPU11は、メモリ部12に読み込まれたOperating System(OS)やプログラム(テンソルネットワーク縮約制御プログラム)を実行することにより、種々の機能を実現する。なお、CPU11は、複数のCPUを含むマルチプロセッサであってもよいし、複数のCPUコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0071】
情報処理装置1全体の動作を制御するための装置は、CPU11に限定されず、例えば、MPUやDSP,ASIC,PLD,FPGAのいずれか1つであってもよい。また、情報処理装置1全体の動作を制御するための装置は、CPU,MPU,DSP,ASIC,PLD及びFPGAのうちの2種類以上の組み合わせであってもよい。なお、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称であり、ASICはApplication Specific Integrated Circuitの略称である。また、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
【0072】
〔E〕動作例
図9は、実施形態に係る情報処理装置1による動作の一例を示すフローチャートである。
【0073】
取得部111は、テンソルネットワーク情報記録部102からテンソルネットワーク200についての情報を取得する(ステップS10)。
【0074】
取得部111は、メモリ容量記録部104から、使用可能なハードウェアのメモリ容量の情報を取得する(ステップS11)。
【0075】
テンソルネットワーク分割部112は、取得したテンソルネットワーク200をサブグラフの一覧に追加する(ステップS12)。本実施形態では、テンソルネットワーク200もサブグラフの一例としてよい。
【0076】
終了判定部114は、一覧において分割可能なサブグラフがあるか否かを判断する(ステップS13)。ステップS13,ステップS14,及びステップS16の処理は、縮約順序の算出処理の一部であってよい。従って、ステップS13は、縮約順序の算出処理の開始に対応する。
【0077】
分割可能なサブグラフがある場合には(ステップS13のYESルート参照)、テンソルネットワーク分割部112は、分割可能なサブグラフを選択する(ステップS14)。図4を例にとれば、最初は、テンソルネットワーク200自体が、サブグラフ(グラフ)として追加される。そして、テンソルネットワーク200自体が、分割可能なサブグラフ(グラフ)として選択される。
【0078】
一方、分割可能なサブグラフがない場合には(ステップS13のNOルート参照)、終了判定部114は、縮約順序の算出がすべて完了したと判断する。一例において、テンソル201を複数含むサブグラフが存在しない場合には、それ以上分割できないため、終了判定部114は、縮約順序の算出がすべて完了したと判断する。この場合、テンソルネットワーク分割部112は、縮約順序を示す縮約ツリーを出力する(ステップS15)。
【0079】
テンソルネットワーク分割部112は、選択したサブグラフを一定のアルゴリズムに従って二つのサブグラフに分割する(ステップS16)。最初は、テンソルネットワーク200自体が、分割可能なサブグラフ(グラフ)として選択される。分割面#P1によって、テンソルネットワーク200自体が、テンソル#T1を含む第1サブグラフ220-1と、それ以外のテンソル(#T2~#T5)を含む第2サブグラフ222-1とに二分割される。
【0080】
使用可能なメモリ容量内で、テンソルネットワーク200を縮約できる可能性がある場合には(ステップS17のYESルート参照)、テンソルネットワーク分割部112は、分割に応じて(縮約順序を示す)縮約ツリーを更新する(ステップS18)。換言すれば、テンソルネットワーク200を縮約できる可能性がある場合には(ステップS17のYESルート参照)、テンソルネットワーク分割部112は、縮約順序の算出処理を続行する。
【0081】
一方、使用可能なメモリ容量内で、テンソルネットワーク200を縮約できる可能性がない場合には(ステップS17のNOルート参照)、終了判定部114は、縮約順序の算出を終了して、テンソルネットワーク200の縮約不可を出力する(ステップS19)。そして、制御部100は、テンソルネットワーク縮約制御を終了する。なお、ステップS17の判定は、縮約不可判定部113によって判定されてよい。縮約不可判定部113の処理内容については後述される。
【0082】
縮約順序の算出処理が続行される場合には、再び、終了判定部114は、分割可能なサブグラフ(あるいはグラフ)があるか否かを判断する(ステップS13)。図4に示した例においては、テンソル#T1を含む第1サブグラフ220-1と、それ以外のテンソル(#T2~#T5)を含む第2サブグラフ222-1のうち、第2サブグラフ222-1は、分割可能である。従って、終了判定部114は、分割可能なサブグラフが存在すると判断する(ステップS13のYESルート参照)。
【0083】
テンソルネットワーク分割部112は、選択したサブグラフ(#T2~#T5)を一定のアルゴリズムに従って、分割面#P2によって二つのサブグラフに分割する(ステップS16)。
【0084】
一例において、テンソルネットワーク分割部112は、選択したサブグラフ(#T2~#T5)を、1つのテンソル#T2を含む部分と、残りのテンソル(#T3~#T5)を含む部分とに分割してよい。テンソルネットワーク分割部112は、分割によって得られた1つのテンソル#T2を含む部分を第1サブグラフ220に加えて新たな第1サブグラフ220として更新してよい。テンソルネットワーク分割部112は、残りのテンソル(#T3~#T5)を含む部分を新たな第2サブグラフ222として更新してよい。
【0085】
使用可能なメモリ容量内で縮約できる可能性がある限り(ステップS17のYESルート)、テンソルネットワーク分割部112は、複数のテンソル201を含むサブグラフが無くなるまで、ステップS18,S13,S14,S16の処理を繰り返す。
【0086】
一方、使用可能なメモリ容量内で縮約できる可能性がない場合(ステップS17のNOルート)、終了判定部114は、複数のテンソル201を含むサブグラフがあっても、縮約順序の算出処理を終了する(ステップS19)。また、終了判定部114は、使用可能なメモリ容量の範囲内でテンソルネットワーク200の縮約不可である旨を出力する(ステップS19)。換言すれば、終了判定部114は、縮約順序の算出の完了(すなわち、縮約ツリーの完成)を待たずに、使用可能なメモリ容量の範囲内でテンソルネットワーク200の縮約を完遂可能か否かの情報を出力することができる。
【0087】
図10は、比較例に係る情報処理装置による動作の一例を示すフローチャートである。比較例の構成は、図7における縮約不可判定部120を有しない点を除いて図7に示す構成と同様であってよい。
【0088】
比較例に係る情報処理装置においては、図9のフローチャートのうち、点線で表示したステップS11、S17及びS19の処理が省略される。図10におけるステップS20~26の処理は、図9のステップS10、S12~S16、S18における処理と同様である。
【0089】
図10に示された比較例に係る情報処理装置による場合には、複数のテンソル201を含むサブグラフが存在しなくなって、それ以上のサブグラフの分割ができない状態になるまで、縮約順序の算出処理を継続して、縮約順序の算出を完了する。そして、全ての縮約順序の算出が完了することによって、縮約に必要なメモリ容量が確定するのを待って、テンソルネットワーク200の縮約演算が可能か否かを出力する。
【0090】
一方、図9に示される実施形態に係る情報処理装置1による場合には、全ての縮約順序の算出が完了するのを待つことなく、使用可能なメモリ容量の範囲内でテンソルネットワークの縮約演算が可能か否かについて迅速に出力することができる。
【0091】
図11は、実施形態に係る情報処理装置1において、縮約するために要する推定メモリ量が、基準値以下か否かについての判断処理についての一例を示すフローチャートである。
【0092】
図11の処理は、図9における、使用可能なメモリ容量内でテンソルネットワーク200の縮約を完遂可能か否かについて判断する処理の一例である。
【0093】
縮約不可判定部113は、縮約順序を算出する過程において分割されたサブグラフ(図9のステップS16)に基づいて、テンソルネットワーク200を2分割した群を結ぶ群間エッジ223の数を取得する(ステップS30)。群間エッジ223の例は、図5及び図6に示される。2分割した群は、第1サブグラフ220と第2サブグラフ222であってよい。
【0094】
縮約不可判定部113は、群間エッジ223の数であるmが、ハードウェアの使用可能なメモリ容量(2)によって定まる値、例えば(n-a)/2(但し、aは、計算に使われる数値のバイト数で決まる定数)より大きいかを判定する(ステップS31)。
【0095】
mが、当該値より大きい場合(ステップS31のYESルート参照)、テンソルネットワーク200の縮約を実行するために要する推定メモリ量が、ハードウェアにおける使用可能なメモリ容量である2(バイト)より大きいと判断される(ステップS32)。推定メモリ量は、少なくとも22m+a(バイト)であると算出される。
【0096】
従って、縮約不可判定部113は、使用可能なメモリ容量内でテンソルネットワーク200を縮約できる可能性が低いと推測する。この結果、上述したとおり、終了判定部114は、縮約順序の算出を終了し、使用可能なメモリ容量の範囲内でテンソルネットワーク200の縮約を完遂することが不可能であることを出力する。
【0097】
一方、mが、当該値以下である場合(ステップS31のNOルート参照)、テンソルネットワーク200の縮約を実行するために要する推定メモリ量が、ハードウェアにおける使用可能なメモリ容量より明らかに大きいとまでは判断されない(ステップS33)。従って、縮約不可判定部113は、使用可能なメモリ容量内でテンソルネットワーク200を縮約できる可能性が低いとまでは推測しない(ステップS32)。この結果、テンソルネットワーク分割部112は、縮約順序の算出を継続する。
〔F〕効果
上述した実施形態の一例によれば、例えば、以下の作用効果を奏することができる。
【0098】
制御部100は、相互に連結された複数のテンソル201を含むテンソルネットワーク200に含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内でテンソルネットワーク200の縮約を完遂可能か否かについて判断する。
【0099】
これにより、使用可能なメモリ容量の範囲内でテンソルネットワーク200の縮約演算が可能か否かについて、迅速に判断することができる。
【0100】
エッジ数は、テンソルネットワーク200をそれぞれ1以上のテンソルを含むように分割して得られる複数の群の間を結ぶ群間エッジ223の数である。
【0101】
これにより、使用可能なメモリ容量の範囲内でテンソルネットワーク200の縮約演算が可能か否かを判断するために取得するエッジ202の数を限定することができ、判断処理にかかる負荷を軽減することができる。
【0102】
制御部100は、縮約を完遂可能か否かについて判断する処理において、テンソルネットワーク200を縮約するために要する推定メモリ量が、基準値以下か否かについて、エッジ数に基づいて判断する。
【0103】
これにより、推定メモリ量が基準値以下か否かについて迅速に判断することができる。
【0104】
制御部100は、さらに、テンソルネットワーク200を縮約する順序の算出を開始する。制御部100は、推定メモリ量が基準値以下と判断される場合には、順序の算出を続行し、推定メモリ量が基準値より大きいと判断される場合には、テンソルネットワークの縮約を完遂できない旨を出力し、順序の算出を終了する。
【0105】
これにより、縮約する順序の算出の途中であっても、使用可能なメモリ容量の範囲内でテンソルネットワーク200の縮約演算が可能か否かを迅速に判断することができる。さらに、推定メモリ量が基準値以下と判断される場合には、その後の縮約順序の算出を省略することができる。従って、処理負荷を軽減することができる。
【0106】
さらに、制御部100は、縮約順序の算出をする処理過程においてテンソルネットワーク200を分割することによって複数の群を得る。
【0107】
これによって、縮約順序の算出をする処理過程において生じる分割処理を、推定メモリ量が基準値以下か否かの判断に利用することができる。従って、縮約順序を算出する処理とは別に分割処理をする場合に比べて、処理負荷を軽減することができる。また、縮約順序の算出処理の進展に応じて、複数の群に含まれるテンソルの数や連結関係を新たに取得することができるので、推定メモリ量が基準値以下となるか否かの判断精度を高めることができる。
【0108】
テンソルネットワーク200は、シミュレーションの対象となる量子回路に対応づけられる。制御部100は、推定メモリ量が、基準値以下か否かについてエッジ数に基づいて判断する処理において、複数の群の間を結ぶエッジ数がm本である場合に、推定メモリ量を、少なくとも22m+a以上であると算出する。但し、aは、定数である。
【0109】
これにより、縮約する順序の算出の途中であっても、使用可能なメモリ容量として、少なくとも要求される水準を迅速に知ることができる。
【0110】
〔G〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0111】
〔H〕付記
以上の実施形態に関し、さらに以下の付記が開示される。
【0112】
(付記1)
相互に連結された複数のテンソルを含むテンソルネットワークに含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内で前記テンソルネットワークの縮約を完遂可能か否かについて判断する、処理をコンピュータに実行させる、テンソルネットワーク縮約制御プログラム。
【0113】
(付記2)
前記エッジ数は、前記テンソルネットワークをそれぞれ1以上のテンソルを含むように分割して得られる複数の群の間を結ぶエッジの数である、付記1に記載のテンソルネットワーク縮約制御プログラム。
【0114】
(付記3)
前記縮約を完遂可能か否かについて判断する処理において、
前記テンソルネットワークを縮約するために要する推定メモリ量が、基準値以下か否かについて、前記エッジ数に基づいて判断する、処理をコンピュータに実行させる、付記2に記載のテンソルネットワーク縮約制御プログラム。
【0115】
(付記4)
さらに、前記テンソルネットワークを縮約する順序の算出を開始し、
前記推定メモリ量が前記基準値以下と判断される場合には、前記順序の算出を続行し、前記推定メモリ量が前記基準値より大きいと判断される場合には、前記テンソルネットワークの縮約を完遂できない旨を出力し、前記順序の算出を終了する、処理をコンピュータに実行させる、付記3に記載のテンソルネットワーク縮約制御プログラム。
【0116】
(付記5)
さらに、前記順序の算出をする処理過程において前記テンソルネットワークを分割することによって前記複数の群を得る、処理を前記コンピュータに実行させる、付記4に記載のテンソルネットワーク縮約制御プログラム。
【0117】
(付記6)
前記テンソルネットワークは、シミュレーションの対象となる量子回路に対応づけられ、
前記推定メモリ量が、前記基準値以下か否かについて前記エッジ数に基づいて判断する処理において、
前記複数の群の間を結ぶ前記エッジの数がm本である場合に、前記推定メモリ量を、少なくとも22m+a(但し、aは定数)以上であると算出する、処理を前記コンピュータに実行させる、付記3から5のいずれか1項に記載のテンソルネットワーク縮約制御プログラム。
【0118】
(付記7)
相互に連結された複数のテンソルを含むテンソルネットワークに含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内で前記テンソルネットワークの縮約を完遂可能か否かについて判断する、処理をコンピュータが実行する、テンソルネットワーク縮約制御方法。
【0119】
(付記8)
前記エッジ数は、前記テンソルネットワークをそれぞれ1以上のテンソルを含むように分割して得られる複数の群の間を結ぶエッジの数である、付記7に記載のテンソルネットワーク縮約制御方法。
【0120】
(付記9)
前記縮約を完遂可能か否かについて判断する処理において、
前記テンソルネットワークを縮約するために要する推定メモリ量が、基準値以下か否かについて、前記エッジ数に基づいて判断する、処理をコンピュータが実行する、付記8に記載のテンソルネットワーク縮約制御方法。
【0121】
(付記10)
さらに、前記テンソルネットワークを縮約する順序の算出を開始し、
前記推定メモリ量が前記基準値以下と判断される場合には、前記順序の算出を続行し、前記推定メモリ量が前記基準値より大きいと判断される場合には、前記テンソルネットワークの縮約を完遂できない旨を出力し、前記順序の算出を終了する、処理をコンピュータが実行する、付記9に記載のテンソルネットワーク縮約制御方法。
【0122】
(付記11)
さらに、前記順序の算出をする処理過程において前記テンソルネットワークを分割することによって前記複数の群を得る、処理を前記コンピュータが実行する、付記10に記載のテンソルネットワーク縮約制御方法。
【0123】
(付記12)
前記テンソルネットワークは、シミュレーションの対象となる量子回路に対応づけられ、
前記推定メモリ量が、前記基準値以下か否かについて前記エッジ数に基づいて判断する処理において、
前記複数の群の間を結ぶ前記エッジの数がm本である場合に、前記推定メモリ量を、少なくとも22m+a(但し、aは定数)以上であると算出する、処理を前記コンピュータが実行する、付記9から11のいずれか1項に記載のテンソルネットワーク縮約制御方法。
【0124】
(付記13)
相互に連結された複数のテンソルを含むテンソルネットワークに含まれるエッジ数に基づいて、使用可能なメモリ容量の範囲内で前記テンソルネットワークの縮約を完遂可能か否かについて判断するプロセッサを備える、情報処理装置。
【0125】
(付記14)
前記エッジ数は、前記テンソルネットワークをそれぞれ1以上のテンソルを含むように分割して得られる複数の群の間を結ぶエッジの数である、付記13に記載の情報処理装置。
【0126】
(付記15)
前記縮約を完遂可能か否かについて判断する処理は、
前記テンソルネットワークを縮約するために要する推定メモリ量が、基準値以下か否かについて、前記エッジ数に基づいて判断する処理を含む、付記14に記載の情報処理装置。
【0127】
(付記16)
前記プロセッサは、さらに、
前記テンソルネットワークを縮約する順序の算出を開始し、
前記推定メモリ量が前記基準値以下と判断される場合には、前記順序の算出を続行し、前記推定メモリ量が前記基準値より大きいと判断される場合には、前記テンソルネットワークの縮約を完遂できない旨を出力し、前記順序の算出を終了する、付記15に記載の情報処理装置。
【0128】
(付記17)
前記プロセッサは、さらに、前記順序の算出をする処理過程において前記テンソルネットワークを分割することによって前記複数の群を得る、付記16に記載の情報処理装置。
【0129】
(付記18)
前記テンソルネットワークは、シミュレーションの対象となる量子回路に対応づけられ、
前記推定メモリ量が、前記基準値以下か否かについて前記エッジ数に基づいて判断する処理は、前記複数の群の間を結ぶ前記エッジの数がm本である場合に、前記推定メモリ量を、少なくとも22m+a(但し、aは定数)以上であると算出する処理を含む、付記15から17のいずれか1項に記載の情報処理装置。
【符号の説明】
【0130】
1 :情報処理装置
11 :プロセッサ
12 :メモリ部
13 :表示制御部
130 :表示装置
14 :記憶装置
15 :入力IF
150 :マウス
152 :キーボード
16 :外部記録媒体処理部
160 :記録媒体
17 :通信IF
100 :制御部
102 :テンソルネットワーク情報記録部
103 :量子回路の構成
104 :メモリ容量記録部
111 :取得部
112 :テンソルネットワーク分割部
113 :縮約不可判定部
114 :終了判定部
200 :テンソルネットワーク
201 :テンソル
202 :エッジ
210 :縮約ツリー
220 :第1サブグラフ
222 :第2サブグラフ
223 :群間エッジ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11