JP2023510706A - 動的順序付けに基づいた分割による分散テンソルネットワーク縮約方式 - Google Patents
動的順序付けに基づいた分割による分散テンソルネットワーク縮約方式 Download PDFInfo
- Publication number
- JP2023510706A JP2023510706A JP2022538712A JP2022538712A JP2023510706A JP 2023510706 A JP2023510706 A JP 2023510706A JP 2022538712 A JP2022538712 A JP 2022538712A JP 2022538712 A JP2022538712 A JP 2022538712A JP 2023510706 A JP2023510706 A JP 2023510706A
- Authority
- JP
- Japan
- Prior art keywords
- edges
- tensor
- networks
- sub
- tensor network
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000009467 reduction Effects 0.000 title claims description 27
- 238000000638 solvent extraction Methods 0.000 title 1
- 230000008602 contraction Effects 0.000 claims abstract description 80
- 238000011156 evaluation Methods 0.000 claims description 28
- 238000000354 decomposition reaction Methods 0.000 claims description 17
- 239000002096 quantum dot Substances 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 8
- 238000012804 iterative process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000011946 reduction process Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/80—Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Geometry (AREA)
- Artificial Intelligence (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Complex Calculations (AREA)
Abstract
本開示の諸実施形態では、テンソルネットワークの縮約を行うための方法を提供する。この方法は、複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークをシステムで受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと;テンソルネットワークの縮約順序を決定するステップと;複数のエッジの中から、テンソルネットワークに基づいて複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと;複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うステップとを含むことができる。
Description
関連出願の相互参照
[0001] 本開示は、2020年1月6日に出願された米国特許仮出願第62/957,442号の優先権、および優先権の利益を主張する。同仮出願は、その全体が参照により本明細書に組み込まれる。
[0001] 本開示は、2020年1月6日に出願された米国特許仮出願第62/957,442号の優先権、および優先権の利益を主張する。同仮出願は、その全体が参照により本明細書に組み込まれる。
[0002] テンソルとは、多重線形写像の考え方を要約し一般化できる数学的概念のことである。テンソルネットワークは、縮約によって接続されたテンソルの可算コレクションとすることができる。テンソルネットワークには現代の科学および工学における幅広い用途が、機械学習、多体理論、勾配計算、量子計算などを含めてある。テンソルネットワークの利用が拡大し続けるにつれて、テンソルネットワークを用いて計算する効率が、多くの用途でのボトルネックになる。このテンソルネットワークの効率性の問題は、実施するのにかなりの計算パワーおよび時間を必要とすることが多いテンソルネットワークの複雑な性質によって、さらに悪化している。テンソルネットワークの利用を拡大し続けるために、テンソルネットワークの計算に必要な時間および計算資源の削減を求める強い要望がある。
[0003] 本開示の諸実施形態では、テンソルネットワークの縮約を行うための方法を提供する。この方法は、複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークをシステムで受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと;テンソルネットワークの縮約順序を決定するステップと;複数のエッジの中から、テンソルネットワークに基づいて複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと;複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うステップとを含むことができる。
[0004] 本開示の諸実施形態ではさらに、命令セットを記憶する非一時的コンピュータ可読媒体を提供し、命令セットは、システムの少なくとも1つのプロセッサによって、このシステムがテンソルネットワークの縮約を行うように実行可能であり、その方法は、複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークを受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと;テンソルネットワークの縮約順序を決定するステップと;複数のエッジの中から、テンソルネットワークに基づいて複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと;複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うステップとを含む。
[0005] 本開示の諸実施形態ではさらにシステムを提供し、このシステムは、複数のコンピュータノードと;命令セットを記憶する1つまたは複数のメモリと;1つまたは複数のプロセッサとを備え:1つまたは複数のプロセッサは、命令セットを実行してシステムに、複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークを受け取ることであって、各エッジが複数のインデックス要素と関連付けられている、受け取ること;テンソルネットワークの縮約順序を決定すること;複数のエッジの中から、テンソルネットワークに基づいて複数のサブネットワークを生成するための1つまたは複数のエッジを決定すること;および、複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うことを行わせるように構成されている。
[0006] 上記の一般的な説明および下記の詳細な説明は例示的および説明的なものにすぎず、請求項に記載の、開示された実施形態を制限するものではないことを理解されたい。
[0007] 本開示の実施形態および様々な態様が、以下の詳細な説明および添付の図で示される。図に示されている様々な機能は、原寸に比例して描かれていない。
[0018] 次に、添付の図面に例が示されている例示的な実施形態を詳細に参照する。以下の説明では、別々の図面中の同じ番号が、特にことわらない限り同一または同様の要素を表している添付の図面を参照する。例示的な実施形態についての以下の説明で示される実施態様は、本発明と整合するすべての実施態様を表すものではない。むしろ、これらの実施態様は、添付の特許請求の範囲に列挙された本発明に関連する態様と整合する装置および方法の例にすぎない。本開示の特定の態様については、以下でより詳細に説明される。本明細書で提示される用語および定義は、参照により組み込まれる用語および/または定義と対立する場合に、優位性を持つ。
[0019] テンソルネットワークは、複数のテンソルを含むことができる。テンソルは、複素数を含むことができる多次元配列を表すことができる。テンソルネットワークはまた、テンソルに付随する複数のインデックスを含むこともできる。各テンソルは、複数のインデックスの一部または全部を含むことができる。テンソルネットワークは、数学的ツールのセットとともに視覚的言語を提供するので、極めて困難な計算を単純化する、非常に有用なツールになることができる。
[0020] 図1は、本開示のいくつかの実施形態による、例示的なテンソルの図を示す。図1に示すように、テンソルは実線の形で表され、テンソルインデックスは、テンソルから出る1つまたは複数の線で表される。テンソルに付随するテンソルインデックスは、テンソルの下付き文字または上付き文字として表すことができる。たとえば、図1は、3つの異なるテンソル、すなわちベクトルテンソルVj、行列テンソルMi,j、および3インデックステンソルTi,j,kを含む。ベクトルテンソルVjは、スカラー値の1次元配列とすることができる。行列テンソルMi,jは、スカラー値の2次元配列とすることができる。3インデックステンソルTi,j,kは、スカラー値の3次元配列とすることができる。テンソルが3つより多いインデックスを有することができることを認識されたい。
[0021] テンソルネットワークでは、テンソルをテンソルインデックスによって結合することができる。テンソルネットワークの縮約は、異なるテンソルの同じ種類のインデックスをマージすること、および最終結果に現れないインデックスの総和をとることを含むことができる。図2は、本開示のいくつかの実施形態による、例示的なテンソル縮約の図を示す。図2に示すように、テンソルViとテンソルMi,jのテンソルネットワーク縮約は、ΣiViMi,jと表すことができる。縮約後、テンソルViとテンソルMi,jは、インデックスのマージをすることができる。1つのテンソルインデックスを2つより多いテンソルに接続できることを認識されたい。2つより多いテンソルに接続することができるこれらのインデックスは、ハイパーエッジと呼ぶことができる。本開示では、エッジとハイパーエッジを互換性があるようにして参照する。たとえば、1つのエッジを2つより多いテンソルに接続することもできる。
[0022] テンソルインデックスは、オープンインデックスまたはクローズドインデックスとすることができる。オープンインデックスとは、開放端があるインデックスのことである。たとえば、図2に示すように、インデックスjは、開放端があるのでオープンインデックスである。クローズドインデックスとは、開放端がないインデックスのことである。たとえば、図2に示すように、インデックスiは、開放端がないのでクローズドインデックスである。
[0023] 一般に、テンソルネットワークを縮約することは、オープンエッジおよびクローズドエッジの縮約を必要とする可能性がある。オープンエッジおよびクローズドエッジの縮約は、相互に絡み合わせることができる。たとえば、テンソルネットワークを縮約することは、クローズドエッジを順次マージし和をとること、およびオープンエッジをマージすることを必要とする可能性がある。
[0024] いくつかの場合において、テンソルネットワークを縮約することは、2つの段階を含む可能性がある。第1の段階では、クローズドインデックスを1つずつマージし和をとることができる。第2の段階では、オープンインデックスが1つずつマージされる。多くのシナリオでは、第1段階は第2段階と比較して、計算資源および時間の大部分を消費する可能性がある。さらに、クローズドインデックスが1つずつマージされて和がとられる順序は、最終結果は変えないが、縮約処理の時間および資源消費に大きく影響を及ぼす。したがって、縮約順序は、不必要な資源消費を避けるために賢明に選択されるべきである。
[0025] 従来のテンソルネットワークの設計には欠陥がある。たとえば、いくつかのテンソルネットワークは行列乗算に基づいており、この行列乗算が通信コストおよびメモリ空間の負担になる。いくつかのテンソルネットワークは、固定順序でのテンソルネットワークの縮約に基づいて設計される。しかし、固定順序が最適ではない可能性がある。
[0026] 上記の問題に対処するために、本開示の実施形態では、テンソルネットワークの縮約を行うための方法およびシステムを提供する。たとえば、テンソルネットワークを縮約する1つの方法は、いくつかのクローズドインデックスの和をとることを計算の終わりまで延期することである。計算の終わりに、最終和の各項が、元のテンソルネットワークよりも単純なサブテンソルネットワークに対応する。分散クラスタが使用されるシナリオでは、テンソルネットワークの縮約は、複数のサブテンソルネットワークをクラスタノードに分散させ、これらクラスタノードから送り返される縮約結果の和をとることによって実施することができる。
[0027] 図3は、本開示のいくつかの実施形態による、例示的なクラウドサービスシステム100の図を示す。クラウドサービスシステム100は、クラウドサービスをユーザに提供するための複数のコンピュータデバイスを含むことができる。図1に示すように、クラウドサービスシステム100は、コンピュータデバイス100a、100b、100c、...、100nを含むことができる。各コンピュータデバイス(たとえば、コンピュータデバイス100a)は、少なくとも1つのプロセッサ102(たとえば、プロセッサ102a、プロセッサ102b、およびプロセッサ102c)と、バス106を介して少なくとも1つのプロセッサ102に通信可能に結合されたメモリ104と、バス106に通信可能に結合されたインターフェース108とを含むことができる。
[0028] 少なくとも1つのプロセッサ102は、命令を実行できる任意の適切なプロセッサとすることができる。たとえば、プロセッサ102aは、X86プロセッサまたはARMプロセッサとすることができる。いくつかの実施形態において、少なくとも1つのプロセッサ102はまた、ニューラルネットワークの学習および推論などの、ニューラルネットワークに関連するコンピュータ機能を提供するためのアクセラレータ(たとえば、ニューラル処理ユニット)を含むこともできる。
[0029] メモリ104は、少なくとも1つのプロセッサ102からアクセス可能な命令およびデータを記憶するように構成することができる。たとえば、命令は、コンピュータデバイス100aが様々な機能を実行するように、少なくとも1つのプロセッサ102によって実行することができる。いくつかの実施形態において、メモリ104は、スタティックランダムアクセスメモリ(「SRAM」)、同期ダイナミックRAM(「SDRAM」)、不揮発性メモリなどの、任意の適切な技術によって実現することができる。
[0030] バス106は、コンピュータデバイス100aの構成要素間の接続をするように構成することができる。たとえば、少なくとも1つのプロセッサ102、メモリ104、およびネットワークインターフェース106は、バス106を介して互いに接続することができる。
[0031] インターフェース108は、有線または無線ネットワーク接続を可能にするネットワークインターフェースと、周辺デバイス(たとえば、カーソル制御デバイス、キーボード、ディスプレイなど)に通信可能に結合された入出力(「I/O」)インターフェースとを含むことができる。ネットワークインターフェースは、ネットワーク110を介してシステム100とクライアント端末120の間の通信を可能にするように構成することができる。ネットワーク110は、インターネット、プライベートネットワークなどとすることができる。いくつかの実施形態において、クライアント端末120は、パーソナルコンピュータ、サーバ、スマートフォン、タブレット、または任意のコンピュータデバイスとすることができる。I/Oインターフェースは、周辺デバイスと接続するための、ユニバーサルシリアルバス(USB)ポート、周辺コンポーネントインターコネクトエクスプレス(PCI-E)ポートなどのうちの少なくとも1つを含むことができる。
[0032] 図4は、本開示のいくつかの実施形態による、テンソルネットワークの縮約を行うための例示的な方法200のフローチャートを示す。方法200は、コンピュータデバイス(たとえば、図3のクラウドサービスシステム100またはコンピュータデバイス100a)によって実施することができる。方法200は、以下の工程を含むことができる。
[0033] 工程202で、テンソルネットワークを受け取る。テンソルネットワークは複数のテンソルを含むことができる。テンソルネットワークはさらに、複数のテンソル間のエッジを含むことができる。インデックスと呼ぶこともできるエッジは、テンソルの次元と関連付けられている。テンソルの次元は、ランクと呼ぶこともできる。たとえば、テンソルAi,j、Bj,k,l、Ci,lを含むテンソルネットワークTi,j,kは、エッジi、j、k、およびlを持つランク3のテンソルネットワークである。テンソルBj,k,lは、3つのエッジが付随するのでランク3のテンソルである。Ai,jとBj,k,lが両方ともエッジjを持っているので、エッジjはAi,jとBj,k,lの間に接続される。エッジlは、テンソルネットワークTi,j,k内でマージされ、したがってクローズドエッジと呼ぶことができることが分かる。テンソルネットワークのエッジは、ゼロであるか1つ以上のクローズドエッジと、ゼロであるか1つ以上のオープンエッジとを含むことができることを認識されたい。
[0034] 図5は、本開示のいくつかの実施形態による、例示的なテンソルネットワークを示す。図5に示すように、テンソルネットワーク300は、テンソルA、B、C、D、F、G、およびHを含むことができる。テンソルのそれぞれは、ゼロであるか1つ以上のクローズドエッジと、ゼロであるか1つ以上のオープンエッジとを含むことができる。たとえば、テンソルAとBの間を接続するエッジ302は、クローズドエッジである。一端がテンソルDに接続され、他端が開いているエッジiは、オープンエッジである。同様に、エッジj、k、l、およびmもまたオープンエッジである。したがって、テンソルネットワーク300はまた、テンソルネットワークT(i,j,k,l,m)と記述することもでき、ここで、エッジi、j、k、l、およびmは、テンソルネットワークのオープンエッジである。
[0035] 図4に戻ると、工程204で、テンソルネットワークの縮約順序を決定する。たとえば、縮約順序は、木分解によって決定することができる。上で論じたように、テンソルネットワークは、テンソルの複数のエッジと関連付けられており、各テンソルは、複数のエッジの一部または全部と関連付けることができる。テンソルネットワークの縮約には、異なるテンソルにおける同じ種類のエッジをマージする処理が含まれる。縮約順序は、エッジをマージする順序である。
[0036] 縮約順序を決定するために、1つまたは複数のオープンエッジを接続するための仮想テンソルを作成することができる。仮想テンソルを作成して、テンソルネットワークの一部または全部のオープンエッジを接続する。仮想テンソルはデータを含まないことがある。仮想テンソルのランクは、オープンエッジの数と関連付けることができる。たとえば、図5に示すように、テンソルネットワーク300は、5つのオープンエッジ(i,j,k,l,m)を含み、したがって、テンソルネットワーク300の仮想テンソルVは、5というランクを有することができる。言い換えると、仮想テンソルVは、オープンエッジ(i,j,k,l,m)に対応する5つのエッジを有し、たとえば、V(i,j,k,l,m)と表すことができる。
[0037] いくつかの実施形態において、木分解を使用してテンソルネットワークの縮約順序を決定することができる。木分解とは、グラフを木にマッピングすることであり、この木を使用して、グラフの計算タスクの解決を高速化することができる。テンソルネットワークを、木分解によって木としてマッピングすることができる。たとえば、木の各ノードは、テンソルネットワークからの1つまたは複数のインデックスを含むことができる。さらに、特定のインデックスを含むツリーノードは、サブツリーを形成することができる。いくつかの実施形態において、テンソルネットワーク内のすべてのテンソルが、ノードがテンソルに隣接するすべてのインデックスを含むように、ツリーの1つまたは複数のノードに対応することができる。
[0038] いくつかの実施形態において、木分解を実施するために、ツリーノードをルートノードとして選択することができる。縮約順序は、反復プロセスでルートツリーから、空の縮約順序から開始して生成することができる。反復プロセスでは、木の葉ノードがある場合、その葉ノードを木から取り除くことができる。葉ノードには存在するが新規の木にはもはや存在しないクローズドインデックスについては、クローズドインデックスを縮約順序の末尾に追加することができる。反復プロセスは、木が空になるまで繰り返すことができる。
[0039] 仮想テンソルが存在する場合、ツリーノードは、それが仮想テンソルに隣接するすべてのインデックスを含むならば、ルートノードとして選択することができる。
[0040] 縮約順序は、反復プロセスでルートツリーから生成することができる。反復プロセスは、空の縮約順序から開始することができる。木の葉ノードがある間、葉ノードは木から取り除くことができる。葉ノードには存在するが新規の木にはもはや存在しないすべてのクローズドインデックスについては、これらのクローズドインデックスを縮約順序の末尾に追加することができる。反復プロセスは、木が空になるまで繰り返すことができる。
[0041] 次に、コンピュータデバイス(たとえば、図3のクラウドサービスシステム100またはコンピュータデバイス100a)は、中間テンソルネットワークを生成することができる。図6は、本開示のいくつかの実施形態による、例示的な中間テンソルネットワークを示す。図6に示す中間テンソルネットワーク310は、図5に示すテンソルネットワーク300への中間テンソルネットワークとすることができることを認識されたい。図6に示すように、テンソルネットワーク(たとえば、図3Aのテンソルネットワーク300)のオープンエッジは、すべてのオープンエッジを含む仮想テンソルV(i,j,k,l,m)によって閉じることができる。仮想テンソル(たとえば、V(i,j,k,l,m))の追加後、テンソルネットワーク(たとえば、図3Aのテンソルネットワーク300)のオープンエッジは、クローズドテンソルになることができる。
[0042] いくつかの実施形態において、コンピュータデバイスは、中間テンソルネットワークの木分解を実施することができる。感覚的には、木分解とは、木のように見えるグラフを描画する方法のことである。そうするために、頂点の組、またはバッグを単一の頂点と見ることができる。グラフが木のように見える程度が少ないほど、バッグが大きくなる。いくつかの実施形態において、木分解は、木分解アルゴリズムまたは計算プログラム(たとえば、サブルーチン)を使用して実施することができる。テンソルネットワークの縮約順序はまた、木に基づいて決定することもできる。図7は、本開示のいくつかの実施形態による、例示的な樹形図を示す。図7に示すように、ツリーダイアグラム320は、図6に示す中間テンソルネットワーク310の木分解を実施することによって生成される。中間木320のテンソルは、1つまたは複数のツリーノードまたはバッグにグループ化することができる。たとえば、図7に示すように、テンソルA、B、およびCは、1つのツリーノードにグループ化することができる。木分解の後、中間テンソルネットワーク310は、木のような構造を有することができる。
[0043] 図4に戻ると、工程206で、コンピュータデバイスは、テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定することができる。いくつかの実施形態において、各エッジは、1つまたは複数の要素を含むことができる。一例として、図5に示すT(i,j,k,l,m)のエッジiは、i[0]、i[1]、i[2]、・・・、i[7]の要素を含むことができ、複数のサブネットワークを生成するように選択することができる。したがって、i[0]に対応する第1のサブネットワーク、i[1]に対応する第2のサブネットワーク、i[2]に対応する第3のサブネットワーク、・・・、i[7]に対応する第8のサブネットワークを生成することができる。
[0044] いくつかの実施形態において、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するために、コンピュータデバイスは、複数の評価サブネットワークを複数のエッジごとに生成することができる。図8は、本開示のいくつかの実施形態による、サブネットワークを生成する例示的な図を示す。図8に示すように、テンソルネットワーク402は、テンソル(A、B、C、D、およびE)およびエッジ(a、b、c、d、e、およびf)を含むことができる。エッジ(たとえば、エッジd)を分割することによって、サブネットワーク404および406を生成することができる。いくつかの実施形態において、エッジdは、{0、1}の範囲とすることができる。図8に示すサブネットワークの生成は、コンピュータデバイス(たとえば、図3のクラウドサービスシステム100またはコンピュータデバイス100a)によって実施できることを認識されたい。
[0045] 図8に示すように、エッジdを分割することによって、テンソルネットワーク402は、2つのサブネットワーク404と406の和に置き換えることができる。いくつかの実施形態において、サブネットワーク404および406は、同じ形状を有するが、サブネットワークの対応するノードと関連付けられているテンソルが異なる場合がある。より具体的には、サブネットワーク404は、エッジdが「0」であることに基づいて生成することができ、サブネットワーク406は、エッジdが「1」であることに基づいて生成される。
[0046] したがって、サブネットワーク404のテンソルA’bおよびC’eと、サブネットワーク406のテンソル
[0047] いくつかの実施形態において、リソース推定目的のためには、サブネットワークの形状だけが必要とされる。サブネットワークの形状は、エッジ(たとえば、エッジd)がグラフから除去されていること以外は、元のテンソルネットワーク(たとえば、テンソルネットワーク402)の形状と同じである。たとえば、図8に示すように、サブネットワーク404の形状は、エッジdがグラフから取り除かれていること以外は、テンソルネットワーク402の形状と同じである。
[0048] いくつかの実施形態において、複数の評価サブネットワークは、実サブネットワークである必要がないことを認識されたい。代わりに、複数の評価サブネットワークは、評価用の仮想サブネットワークとすることができる。上で論じたように、複数の評価サブネットワークは、各エッジの複数のインデックス要素をトラバースし、その複数のインデックス要素に対応する複数の評価サブネットワークを生成することによって、生成することができる。その場合、コンピュータデバイスは、複数の評価サブネットワークそれぞれに基づいて、テンソルネットワークの縮約を行うために必要なリソース消費を推定することができる。たとえば、図5に示すT(i,j,k,l,m)では、エッジi、j、k、l、mに基づいたリソース消費を推定することができる。推定されたリソース消費の中で、コンピュータデバイスは、その推定に基づいて、必要とするリソース消費がより少ない1つまたは複数のエッジを決定することができる。たとえば、コンピュータデバイスは、推定に基づいて、必要とするリソース消費が最少の1つまたは複数のエッジを決定することができる。
[0049] 図9は、本開示のいくつかの実施形態による、テンソルネットワークの例示的な縮約の図を示す。図9に示すテンソルネットワーク500の縮約は、コンピュータデバイス(たとえば、図3のクラウドサービスシステム100またはコンピュータデバイス100a)によって実施できることを認識されたい。
[0050] 図9に示すように、テンソルネットワーク500は、テンソル(A、B、C、D、およびE)およびエッジ(a、b、c、d、e、およびf)を含む。一例として、エッジbは、マージし総和をとることができる。その結果、テンソルネットワーク502が、エッジbによって接続されたテンソル(たとえば、テンソルA、B、およびD)を置き換える新規のテンソルFを用いて生成される。いくつかの実施形態において、テンソルFは、以下の式によって表すことができる。
Facd=ΣAbdBabDbc
Facd=ΣAbdBabDbc
[0051] 縮約を行うために、テンソルFの値を上記の式によって計算することができる。テンソルFを生成する際に、次元(a)×次元(c)×次元(d)の追加空間が必要になる。したがって、テンソルFの計算には、次元(a)×次元(c)×次元(d)の時間を要する。テンソルFを計算した後、テンソルA、B、Dをマージし、テンソルネットワーク500から除去して、テンソルネットワーク502を生成することができる。
[0052] いくつかの実施形態において、テンソルをマージすることは、行列の乗算を必要とする可能性がある。リソース推定の際に、実際の行列乗算をすぐに実行する代わりに、行列乗算のコストを最初に推定することができる。行列操作のコストの推定は、実際の値ではなく、中間テンソルの形状によって決まる可能性がある。その結果、リソース消費を推定するのに、実際の行列計算が省略されることがある。いくつかの実施形態において、リソース消費には、時間消費および空間消費が含まれる可能性がある。いくつかの実施形態において、総時間消費は、各工程の時間消費の和である。空間消費は、テンソルネットワークのテンソルのサイズの和の最大値になる可能性がある。
[0053] 図4に戻ると、工程208で、複数のサブネットワークの縮約を縮約順序に基づいて行うことができる。いくつかの実施形態において、コンピュータデバイスは、複数のサブネットワークの縮約を縮約順序に基づいて行うことができる。いくつかの実施形態において、複数のサブネットワークは、複数のサブネットワークのそれぞれの縮約を行うために、クラウドシステムの複数のコンピュータノード(たとえば、図1の複数のクラウドサービス装置100)それぞれに分散することができる。その結果、複数のサブネットワークの一部または全部の縮約を並行して行うことが可能になる。
[0054] いくつかの実施形態において、テンソルネットワークの縮約は、反復して実施することができる。いくつかの実施形態において、反復方法の各反復工程で、縮約順序の前方のエッジを選択し、縮約順序から除去することができる。選択されたエッジに隣接するすべてのテンソルは、単一の新規の中間テンソルにマージすることができる。この新規の中間テンソルは、選択されたエッジに隣接する1つまたは複数のテンソルに隣接していたすべてのエッジを含むことができる。この場合、テンソルネットワークの選択されたエッジおよびその近くにあるものは、新規の中間テンソルに置き換えることができる。いくつかの実施形態において、上記の反復工程は、縮約順序が空になるまで繰り返すことができる。
[0055] いくつかの実施形態において、1つより多いテンソルをテンソルネットワークに残すことができる。この場合、その1つより多いテンソルは、マージして最終テンソルを形成することができる。いくつかの実施形態において、最終テンソルは、すべてのオープンエッジに隣接している。
[0056] 上で論じたように、リソース消費推定は、縮約処理の時間消費および空間消費をそれぞれ推定することによって行うことができる。各工程で、中間テンソルを生成し、1つまたは複数のテンソルをテンソルネットワークから除去することができる。縮約の時間消費は、すべての中間テンソルのサイズの和で推定することができる。空間消費は、テンソルネットワークにおけるテンソルのサイズの和の最大値として推定することができる。このシナリオに応じて、時間消費と空間消費を、縮約の資源推定量として機能する単一の量にマージすることができる。消費される計算資源が同量であれば、サブネットワークを使用すると、テンソルネットワークの縮約の計算時間を100倍超改善することができる。
[0057] いくつかの実施形態において、複数のサブネットワークは、複数のサブネットワークのそれぞれの縮約を行うために、クラウドシステムの複数のコンピュータノード(たとえば、図1の複数のクラウドサービス装置100)それぞれに分散することができる。いくつかの実施形態において、複数のサブネットワークのそれぞれの縮約の間、コンピュータノードはさらに、複数のサブネットワークごとに最終縮約順序を決定し、次に、最終縮約順序に基づいて複数のサブネットワークのそれぞれの縮約を行うことができる。
[0058] いくつかの実施形態において、上に示した縮約処理(たとえば、図4の方法200)は、量子回路または量子回路のシミュレーションに使用することができる。量子回路とは、計算が量子ゲートのシーケンスで行われる計算ルーチンのことである。量子回路は、量子ゲート、測定、およびリセットの順序付けられたシーケンスとすることができる。量子ゲートにより、量子ビットの状態を変化させる演算を行うことができる。量子ビットとは、量子計算における基本変数、またはビットのバリアントのことである。
[0059] 量子回路をシミュレーションするために、当然ながら量子回路Cをテンソルネットワークとみなすことができる。量子回路Cのテンソルネットワークは、N(C)と表すことができる。いくつかの実施形態において、量子回路Cの各ゲートは、テンソルネットワークN(C)のテンソルとみなすことができる。量子ビット線は、ワイヤ、またはテンソル同士を接続するクローズドエッジ、または入力量子ビットおよび出力量子ビットに対応するオープンエッジとすることができる。テンソルネットワークN(C)に縮約が行われると、各エッジを1つずつ縮約することができ、対応するテンソルの畳み込みを1つの頂点が残されるまで行うことができる。次数を0とすると、この頂点には単一の数値でラベル付けすることができ、これにより、シミュレーションで求めるテンソルネットワークN(C)の最終測定確率を得ることができる。オープンエッジを含むテンソルネットワークでは、縮約後の最終的な測定値はベクトルとすることができる。テンソル縮約を用いて量子回路をシミュレーションすることの利点の一つは、回路内の個々の量子ゲートが必ずしもその元の順序でシミュレーションされなくてもよいことである。実際、所与のゲートは、シミュレーションのいくつかの段階では一部分だけシミュレーションされることがある。
[0060] 図10は、本開示のいくつかの実施形態による、テンソルネットワークを使用する量子回路の例示的な表現を示す図である。図10に示すように、量子回路Cが提示されており、4つの入力量子ビット(たとえば、量子回路Cの上方の4つの量子ビット線)および4つの出力量子ビット(たとえば、量子回路Cの下方の4つの量子ビット線)が付いている。量子回路Cは、1つまたは複数の量子ゲートを含むことができる。
[0061] 図10に示すように、量子回路Cは、テンソルネットワークN(C)として表すことができる。いくつかの実施形態において、図10に示すように、テンソルネットワークN(C)は、8つのオープンエッジを含む。オープンエッジのうちの4つ(たとえば、テンソルの上方の4つのエッジ)は、量子回路Cの入力部に対応することができ、オープンエッジのうちの他の4つ(たとえば、テンソルの下方の4つのエッジ)は、量子回路Cの出力部に対応することができる。いくつかの実施形態において、テンソルネットワークN(C)に示されるテンソルは、量子回路Cのゲートに対応することができる。いくつかの実施形態において、テンソルネットワークN(C)を縮約すると、量子回路Cにより実現される演算子のテンソルが与えられる。
[0062] 本開示の実施形態は、サブネットワークを使用して縮約順序の計算コストについての推定を行う方法およびシステムを提供する。これらの方法およびシステムは、オープンエッジを持つテンソルネットワークに使用することができ、上で論じたテンソルネットワークは、量子回路をシミュレーションするために使用することができる。サブネットワークを使用することによって。
[0063] 各図のフローチャートおよび図は、本明細書の様々な実施形態によるデバイス、方法、およびコンピュータプログラム製品の実現可能な実施態様のアーキテクチャ、機能、および動作を示す。この関連で、フローチャートまたは図中のブロックは、特定の機能を実現するための1つまたは複数の実行可能な命令を含むソフトウェアプログラム、セグメント、またはコード部を表すことができる。いくつかの代替実施態様において、ブロック内に示された機能は、図に示された順序から外れて行われる可能性があることに留意されたい。たとえば、連続して示された2つのブロックは、実際には実質的に同時に実行されることがあり、あるいはこれらのブロックは、必要とされる機能に応じて、場合によっては逆の順序で実行されることがある。図またはフローチャートの各ブロック、ならびに図およびフローチャートの各ブロックの組み合わせは、指定された機能または動作を実施する専用のハードウェアベースのシステムによって、または専用のハードウェアとコンピュータ命令の組み合わせによって実現できることにもまた留意されたい。
[0064] 本明細書では、用語の「含む(comprise)」、「含んでいる(comprising)」、またはその他のあらゆる変異体は、要素のリストを含むプロセス、方法、構成物、物品、または装置がこれらの要素だけを含むのではなく、明示的にはリストされていない他の要素またはそのようなプロセス、方法、構成物、物品、または装置に固有の要素を含むことができるように、非排他的な包含に及ぶものである。用語の「例示的(exemplary)」は、「理想的(ideal)」ではなく「例(example)」の意味で使用されている。
[0065] 本明細書では、特にことわらない限り、用語の「または」は、実現不可能な場合を除き、すべての可能な組み合わせを包含する。たとえば、データベースがAまたはBを含むことができると述べられている場合には、特にことわらない限り、または実行不可能ではない限り、データベースはAか、Bか、AおよびBかを含むことができる。第2の例として、データベースがA、B、またはCを含むことができると述べられている場合には、特にことわらない限り、または実行不可能ではない限り、データベースはAか、Bか、Cか、AおよびBか、AおよびCか、BおよびCか、A、BおよびCかを含むことができる。
[0066] 上述の実施形態は、ハードウェア、ソフトウェア(プログラムコード)、またはハードウェアとソフトウェアの組み合わせによって実現できることを認識されたい。ソフトウェアによって実現される場合、そのソフトウェアは、上述のコンピュータ可読媒体に記憶することができる。ソフトウェアは、プロセッサによって実行されると、開示された方法を実施することができる。本開示で説明したデータ記憶システム、二次記憶ユニット、他の機能ユニットは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実現することができる。当業者であればまた、上述の機能ユニットのうちの複数のものを1つの機能ユニットとして組み合わせることができること、および上述の機能ユニットのそれぞれはさらに、複数の機能サブユニットに分割できることもまた理解されよう。
[0067] 前述の明細書では、諸実施形態について、実施態様ごとに異なる可能性がある多数の具体的な細部に関連して説明した。説明した実施形態の特定の改造および修正を行うことができる。他の実施形態は、本明細書に開示された本発明の明細および実践を考察することにより、当業者には明らかにすることができる。これらの明細および例は、例示的なものにすぎないと考えられるものであり、本発明の真の範囲および趣旨は、添付の特許請求の範囲によって示されている。また、図に示された工程の順序は例示目的にすぎず、いかなる特定の工程の順序にも限定されるものではないことが意図されている。そのため、当業者には、同じ方法を実施しながら、これらの工程を異なる順序で実施できることを認識することができる。
[0068] 実施形態についてはさらに、以下の条項を用いて説明することができる。
1.テンソルネットワークの縮約を行うための方法であって、
複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークをシステムで受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと、
テンソルネットワークの縮約順序を決定するステップと、
テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと、
複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うステップと
を含む方法。
2.エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
テンソルネットワークの縮約順序を決定するステップがさらに、
1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
仮想テンソルによってクローズされている1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
中間テンソルネットワークの木分解を実施して木を構築すること、および
テンソルネットワークの縮約順序を木に基づいて決定すること
を含む、条項1に記載の方法。
3.テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップがさらに、
複数のエッジごとに複数の評価サブネットワークを生成すること、
テンソルネットワークの縮約を行うために必要なリソース消費を、複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い1つまたは複数のエッジを推定に基づいて決定すること
を含む、条項1または2に記載の方法。
4.複数のエッジごとに複数の評価サブネットワークを生成することがさらに、
各エッジの複数のインデックス要素をトラバースすること、および
複数のインデックス要素それぞれに対応する複数の評価サブネットワークを生成すること
を含む、条項3に記載の方法。
5.複数の計算ノードによって、複数のサブネットワークの縮約を並行して行うステップをさらに含む、条項1から4のいずれか1項に記載の方法。
6.複数のサブネットワークごとに最終縮約順序を決定するステップと、
複数のサブネットワークのそれぞれの縮約を最終縮約順序に基づいて行うステップとをさらに含む、条項1から5のいずれか1項に記載の方法。
7.テンソルネットワークが、1つまたは複数の量子ゲートと、1つまたは複数の量子ビット線とを含む量子回路をシミュレーションするために使用され、
複数のテンソルが1つまたは複数の量子ゲートに対応し、
複数のエッジが1つまたは複数の量子ビット線に対応する、条項1から6のいずれか1項に記載の方法。
8.システムがクラウドシステムである、条項1から7のいずれか1項に記載の方法。
9.命令セットを記憶する非一時的コンピュータ可読媒体であって、命令セットは、システムがテンソルネットワークの縮約を行うように、システムの少なくとも1つのプロセッサによって実行可能であり、その方法は、
複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークを受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと、
テンソルネットワークの縮約順序を決定するステップと、
テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと、
複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うステップと
を含む、非一時的コンピュータ可読媒体。
10.エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
仮想テンソルによってクローズされている1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
中間テンソルネットワークの木分解を実施して木を構築すること、および
テンソルネットワークの縮約順序を木に基づいて決定すること
を行わせるように実行可能である、条項9に記載の非一時的コンピュータ可読媒体。
11.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
複数のエッジごとに複数の評価サブネットワークを生成すること、
テンソルネットワークの縮約を行うために必要なリソース消費を、複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い1つまたは複数のエッジを推定に基づいて決定すること
を行わせるように実行可能である、条項9または10に記載の非一時的コンピュータ可読媒体。
12.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
各エッジの複数のインデックス要素をトラバースすること、および
複数のインデックス要素それぞれに対応する複数の評価サブネットワークを生成すること
を行わせるように実行可能である、条項11に記載の非一時的コンピュータ可読媒体。
13.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
各エッジの複数のインデックス要素をトラバースすること、および
複数のインデックス要素それぞれに対応する複数の評価サブネットワークを生成すること
を行わせるように実行可能である、条項11に記載の非一時的コンピュータ可読媒体。
14.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
複数の計算ノードによって、複数のサブネットワークの縮約を並行して行うことを行わせるように実行可能である、条項10から13のいずれか1項に記載の非一時的コンピュータ可読媒体。
15.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
複数のサブネットワークごとに最終縮約順序を決定すること、および
複数のサブネットワークのそれぞれの縮約を最終縮約順序に基づいて行うこと
を行わせるように実行可能である、条項10から14のいずれか1項に記載の非一時的コンピュータ可読媒体。
16.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
テンソルネットワークが、1つまたは複数の量子ゲートと、1つまたは複数の量子ビット線とを含む量子回路をシミュレーションするために使用されること、
複数のテンソルが1つまたは複数の量子ゲートに対応すること、ならびに、
複数のエッジが1つまたは複数の量子ビット線に対応すること
を行わせるように構成されている、条項10から15のいずれか1項に記載の非一時的コンピュータ可読媒体。
17.システムがクラウドシステムである、条項10から16のいずれか1項に記載の非一時的コンピュータ可読媒体。
18.複数のコンピュータノードと、
命令セットを記憶する1つまたは複数のメモリと、
1つまたは複数のプロセッサとを備えるシステムであって、1つまたは複数のプロセッサは、命令セットを実行してシステムに、
複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークを受け取ることであって、各エッジが複数のインデックス要素と関連付けられている、受け取ること、
テンソルネットワークの縮約順序を決定すること、
テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定すること、および
複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うこと
を行わせるように構成されている、システム。
19.エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
仮想テンソルによってクローズされている1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
中間テンソルネットワークの木分解を実施して木を構築すること、および
テンソルネットワークの縮約順序を木に基づいて決定すること
を行わせるように構成されている、条項18に記載のシステム。
20.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
複数のエッジごとに複数の評価サブネットワークを生成すること、
テンソルネットワークの縮約を行うために必要なリソース消費を、複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い1つまたは複数のエッジを推定に基づいて決定すること
を行わせるように構成されている、条項18または19に記載のシステム。
21.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
各エッジの複数のインデックス要素をトラバースすること、および
複数のインデックス要素それぞれに対応する複数の評価サブネットワークを生成すること
を行わせるように構成されている、条項20に記載のシステム。
22.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
複数の計算ノードによって、複数のサブネットワークの縮約を並行して行うことを行わせるように構成されている、条項18から21のいずれか1項に記載のシステム。
23.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
複数のサブネットワークごとに最終縮約順序を決定すること、および
複数のサブネットワークのそれぞれの縮約を最終縮約順序に基づいて行うこと
を行わせるように構成されている、条項18から22のいずれか1項に記載のシステム。
24.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
テンソルネットワークが、1つまたは複数の量子ゲートと、1つまたは複数の量子ビット線とを含む量子回路をシミュレーションするために使用されること、
複数のテンソルが1つまたは複数の量子ゲートに対応すること、ならびに、
複数のエッジが1つまたは複数の量子ビット線に対応すること
を行わせるように構成されている、条項18から23のいずれか1項に記載のシステム。
25.システムがクラウドシステムである、条項18から24のいずれか1項に記載のシステム。
1.テンソルネットワークの縮約を行うための方法であって、
複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークをシステムで受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと、
テンソルネットワークの縮約順序を決定するステップと、
テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと、
複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うステップと
を含む方法。
2.エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
テンソルネットワークの縮約順序を決定するステップがさらに、
1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
仮想テンソルによってクローズされている1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
中間テンソルネットワークの木分解を実施して木を構築すること、および
テンソルネットワークの縮約順序を木に基づいて決定すること
を含む、条項1に記載の方法。
3.テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップがさらに、
複数のエッジごとに複数の評価サブネットワークを生成すること、
テンソルネットワークの縮約を行うために必要なリソース消費を、複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い1つまたは複数のエッジを推定に基づいて決定すること
を含む、条項1または2に記載の方法。
4.複数のエッジごとに複数の評価サブネットワークを生成することがさらに、
各エッジの複数のインデックス要素をトラバースすること、および
複数のインデックス要素それぞれに対応する複数の評価サブネットワークを生成すること
を含む、条項3に記載の方法。
5.複数の計算ノードによって、複数のサブネットワークの縮約を並行して行うステップをさらに含む、条項1から4のいずれか1項に記載の方法。
6.複数のサブネットワークごとに最終縮約順序を決定するステップと、
複数のサブネットワークのそれぞれの縮約を最終縮約順序に基づいて行うステップとをさらに含む、条項1から5のいずれか1項に記載の方法。
7.テンソルネットワークが、1つまたは複数の量子ゲートと、1つまたは複数の量子ビット線とを含む量子回路をシミュレーションするために使用され、
複数のテンソルが1つまたは複数の量子ゲートに対応し、
複数のエッジが1つまたは複数の量子ビット線に対応する、条項1から6のいずれか1項に記載の方法。
8.システムがクラウドシステムである、条項1から7のいずれか1項に記載の方法。
9.命令セットを記憶する非一時的コンピュータ可読媒体であって、命令セットは、システムがテンソルネットワークの縮約を行うように、システムの少なくとも1つのプロセッサによって実行可能であり、その方法は、
複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークを受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと、
テンソルネットワークの縮約順序を決定するステップと、
テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと、
複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うステップと
を含む、非一時的コンピュータ可読媒体。
10.エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
仮想テンソルによってクローズされている1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
中間テンソルネットワークの木分解を実施して木を構築すること、および
テンソルネットワークの縮約順序を木に基づいて決定すること
を行わせるように実行可能である、条項9に記載の非一時的コンピュータ可読媒体。
11.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
複数のエッジごとに複数の評価サブネットワークを生成すること、
テンソルネットワークの縮約を行うために必要なリソース消費を、複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い1つまたは複数のエッジを推定に基づいて決定すること
を行わせるように実行可能である、条項9または10に記載の非一時的コンピュータ可読媒体。
12.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
各エッジの複数のインデックス要素をトラバースすること、および
複数のインデックス要素それぞれに対応する複数の評価サブネットワークを生成すること
を行わせるように実行可能である、条項11に記載の非一時的コンピュータ可読媒体。
13.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
各エッジの複数のインデックス要素をトラバースすること、および
複数のインデックス要素それぞれに対応する複数の評価サブネットワークを生成すること
を行わせるように実行可能である、条項11に記載の非一時的コンピュータ可読媒体。
14.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
複数の計算ノードによって、複数のサブネットワークの縮約を並行して行うことを行わせるように実行可能である、条項10から13のいずれか1項に記載の非一時的コンピュータ可読媒体。
15.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
複数のサブネットワークごとに最終縮約順序を決定すること、および
複数のサブネットワークのそれぞれの縮約を最終縮約順序に基づいて行うこと
を行わせるように実行可能である、条項10から14のいずれか1項に記載の非一時的コンピュータ可読媒体。
16.命令セットは、システムの少なくとも1つのプロセッサによってシステムにさらに、
テンソルネットワークが、1つまたは複数の量子ゲートと、1つまたは複数の量子ビット線とを含む量子回路をシミュレーションするために使用されること、
複数のテンソルが1つまたは複数の量子ゲートに対応すること、ならびに、
複数のエッジが1つまたは複数の量子ビット線に対応すること
を行わせるように構成されている、条項10から15のいずれか1項に記載の非一時的コンピュータ可読媒体。
17.システムがクラウドシステムである、条項10から16のいずれか1項に記載の非一時的コンピュータ可読媒体。
18.複数のコンピュータノードと、
命令セットを記憶する1つまたは複数のメモリと、
1つまたは複数のプロセッサとを備えるシステムであって、1つまたは複数のプロセッサは、命令セットを実行してシステムに、
複数のテンソルと、複数のテンソル間の複数のエッジとを含むテンソルネットワークを受け取ることであって、各エッジが複数のインデックス要素と関連付けられている、受け取ること、
テンソルネットワークの縮約順序を決定すること、
テンソルネットワークに基づいて、複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定すること、および
複数のサブネットワークをシステムの複数の計算ノードに分配して、複数のサブネットワークの縮約を複数の計算ノードによって縮約順序に基づいて行うこと
を行わせるように構成されている、システム。
19.エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
仮想テンソルによってクローズされている1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
中間テンソルネットワークの木分解を実施して木を構築すること、および
テンソルネットワークの縮約順序を木に基づいて決定すること
を行わせるように構成されている、条項18に記載のシステム。
20.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
複数のエッジごとに複数の評価サブネットワークを生成すること、
テンソルネットワークの縮約を行うために必要なリソース消費を、複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い1つまたは複数のエッジを推定に基づいて決定すること
を行わせるように構成されている、条項18または19に記載のシステム。
21.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
各エッジの複数のインデックス要素をトラバースすること、および
複数のインデックス要素それぞれに対応する複数の評価サブネットワークを生成すること
を行わせるように構成されている、条項20に記載のシステム。
22.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
複数の計算ノードによって、複数のサブネットワークの縮約を並行して行うことを行わせるように構成されている、条項18から21のいずれか1項に記載のシステム。
23.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
複数のサブネットワークごとに最終縮約順序を決定すること、および
複数のサブネットワークのそれぞれの縮約を最終縮約順序に基づいて行うこと
を行わせるように構成されている、条項18から22のいずれか1項に記載のシステム。
24.1つまたは複数のプロセッサはさらに、命令セットを実行してシステムに、
テンソルネットワークが、1つまたは複数の量子ゲートと、1つまたは複数の量子ビット線とを含む量子回路をシミュレーションするために使用されること、
複数のテンソルが1つまたは複数の量子ゲートに対応すること、ならびに、
複数のエッジが1つまたは複数の量子ビット線に対応すること
を行わせるように構成されている、条項18から23のいずれか1項に記載のシステム。
25.システムがクラウドシステムである、条項18から24のいずれか1項に記載のシステム。
[0069] 分かりやすくするために別々の実施形態の文脈で説明されている本明細書のいくつかの特徴はまた、単一の実施形態の組み合わせとしても提供できることを認識されたい。逆に、簡潔にするために単一の実施形態の文脈で説明されている本明細書の様々な特徴はまた、別々に、または任意の適切なサブコンビネーションとして、または本明細書の任意の他の説明された実施形態で適切なように、提供することもできる。様々な実施形態の文脈で説明されているいくつかの特徴は、その要素がなければ実施形態が動作不能にならない限り、その実施形態の不可欠な特徴と考えられるものではない。
Claims (20)
- テンソルネットワークの縮約を行うための方法であって、
複数のテンソルと、前記複数のテンソル間の複数のエッジとを含むテンソルネットワークをシステムで受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと、
前記テンソルネットワークの縮約順序を決定するステップと、
前記テンソルネットワークに基づいて、前記複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと、
前記複数のサブネットワークを前記システムの複数の計算ノードに分配して、前記複数の計算ノードによって前記複数のサブネットワークの縮約を前記縮約順序に基づいて行うステップと
を含む方法。 - 前記エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
前記テンソルネットワークの前記縮約順序を決定するステップがさらに、
前記1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
前記仮想テンソルによってクローズされている前記1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
前記中間テンソルネットワークの木分解を実施して木を構築すること、および
前記テンソルネットワークの前記縮約順序を前記木に基づいて決定すること
を含む、請求項1に記載の方法。 - 前記テンソルネットワークに基づいて、前記複数のエッジの中から、前記複数のサブネットワークを生成するための前記1つまたは複数のエッジを決定するステップがさらに、
前記複数のエッジごとに複数の評価サブネットワークを生成すること、
前記テンソルネットワークの縮約を行うために必要なリソース消費を、前記複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い前記1つまたは複数のエッジを前記推定に基づいて決定すること
を含む、請求項1に記載の方法。 - 前記複数のエッジごとに前記複数の評価サブネットワークを生成することがさらに、
各エッジの前記複数のインデックス要素をトラバースすること、および
前記複数のインデックス要素それぞれに対応する前記複数の評価サブネットワークを生成すること
を含む、請求項3に記載の方法。 - 前記複数の計算ノードによって、前記複数のサブネットワークの縮約を並行して行うステップをさらに含む、請求項1に記載の方法。
- 前記複数のサブネットワークごとに最終縮約順序を決定するステップと、
前記複数のサブネットワークのそれぞれの縮約を前記最終縮約順序に基づいて行うステップとをさらに含む、請求項1に記載の方法。 - 前記テンソルネットワークが、1つまたは複数の量子ゲートと、1つまたは複数の量子ビット線とを含む量子回路をシミュレーションするために使用され、
前記複数のテンソルが前記1つまたは複数の量子ゲートに対応し、
前記複数のエッジが前記1つまたは複数の量子ビット線に対応する、請求項1に記載の方法。 - 前記システムがクラウドシステムである、請求項1に記載の方法。
- 命令セットを記憶する非一時的コンピュータ可読媒体であって、前記命令セットは、システムがテンソルネットワークの縮約を行うように、前記システムの少なくとも1つのプロセッサによって実行可能であり、方法は、
複数のテンソルと、前記複数のテンソル間の複数のエッジとを含むテンソルネットワークを受け取るステップであって、各エッジが複数のインデックス要素と関連付けられている、ステップと、
前記テンソルネットワークの縮約順序を決定するステップと、
前記テンソルネットワークに基づいて、前記複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定するステップと、
前記複数のサブネットワークを前記システムの複数の計算ノードに分配して、前記複数の計算ノードによって前記複数のサブネットワークの縮約を前記縮約順序に基づいて行うステップと
を含む、非一時的コンピュータ可読媒体。 - 前記エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
前記命令セットは、前記システムの前記少なくとも1つのプロセッサによって前記システムにさらに、
前記1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
前記仮想テンソルによってクローズされている前記1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
前記中間テンソルネットワークの木分解を実施して木を構築すること、および
前記テンソルネットワークの前記縮約順序を前記木に基づいて決定すること
を行わせるように実行可能である、請求項9に記載の非一時的コンピュータ可読媒体。 - 前記命令セットは、前記システムの前記少なくとも1つのプロセッサによって前記システムにさらに、
前記複数のエッジごとに複数の評価サブネットワークを生成すること、
前記テンソルネットワークの縮約を行うために必要なリソース消費を、前記複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い前記1つまたは複数のエッジを前記推定に基づいて決定すること
を行わせるように実行可能である、請求項9に記載の非一時的コンピュータ可読媒体。 - 前記命令セットは、前記システムの前記少なくとも1つのプロセッサによって前記システムにさらに、
各エッジの前記複数のインデックス要素をトラバースすること、および
前記複数のインデックス要素それぞれに対応する前記複数の評価サブネットワークを生成すること
を行わせるように実行可能である、請求項11に記載の非一時的コンピュータ可読媒体。 - 複数のコンピュータノードと、
命令セットを記憶する1つまたは複数のメモリと、
1つまたは複数のプロセッサとを備えるシステムであって、前記1つまたは複数のプロセッサは、前記命令セットを実行して前記システムに、
複数のテンソルと、前記複数のテンソル間の複数のエッジとを含むテンソルネットワークを受け取ることであって、各エッジが複数のインデックス要素と関連付けられている、受け取ること、
前記テンソルネットワークの縮約順序を決定すること、
前記テンソルネットワークに基づいて、前記複数のエッジの中から、複数のサブネットワークを生成するための1つまたは複数のエッジを決定すること、および
前記複数のサブネットワークを前記システムの前記複数の計算ノードに分配して、前記複数の計算ノードによって前記複数のサブネットワークの縮約を前記縮約順序に基づいて行うこと
を行わせるように構成されている、システム。 - 前記エッジが、1つまたは複数のオープンエッジと、1つまたは複数のクローズドエッジとを含み、
前記1つまたは複数のプロセッサはさらに、前記命令セットを実行して前記システムに、
前記1つまたは複数のオープンエッジを接続するための仮想テンソルを作成すること、
前記仮想テンソルによってクローズされている前記1つまたは複数のオープンエッジを有する中間テンソルネットワークを生成すること、
前記中間テンソルネットワークの木分解を実施して木を構築すること、および
前記テンソルネットワークの前記縮約順序を前記木に基づいて決定すること
を行わせるように構成されている、請求項13に記載のシステム。 - 前記1つまたは複数のプロセッサはさらに、前記命令セットを実行して前記システムに、
前記複数のエッジごとに複数の評価サブネットワークを生成すること、
前記テンソルネットワークの縮約を行うために必要なリソース消費を、前記複数の評価サブネットワークそれぞれに基づいて推定すること、および
必要とする消費がより低い前記1つまたは複数のエッジを前記推定に基づいて決定すること
を行わせるように構成されている、請求項13に記載のシステム。 - 前記1つまたは複数のプロセッサはさらに、前記命令セットを実行して前記システムに、
各エッジの前記複数のインデックス要素をトラバースすること、および
前記複数のインデックス要素それぞれに対応する前記複数の評価サブネットワークを生成すること
を行わせるように構成されている、請求項15に記載のシステム。 - 前記1つまたは複数のプロセッサはさらに、前記命令セットを実行して前記システムに、
前記複数の計算ノードによって、前記複数のサブネットワークの縮約を並行して行うことを行わせるように構成されている、請求項13に記載のシステム。 - 前記1つまたは複数のプロセッサはさらに、前記命令セットを実行して前記システムに、
前記複数のサブネットワークごとに最終縮約順序を決定すること、および
前記複数のサブネットワークのそれぞれの縮約を前記最終縮約順序に基づいて行うこと
を行わせるように構成されている、請求項13に記載のシステム。 - 前記1つまたは複数のプロセッサはさらに、前記命令セットを実行して前記システムに、
前記テンソルネットワークが、1つまたは複数の量子ゲートと、1つまたは複数の量子ビット線とを含む量子回路をシミュレーションするために使用されること、
前記複数のテンソルが前記1つまたは複数の量子ゲートに対応すること、および
前記複数のエッジが前記1つまたは複数の量子ビット線に対応すること
を行わせるように構成されている、請求項13に記載のシステム。 - 前記システムがクラウドシステムである、請求項13に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062957442P | 2020-01-06 | 2020-01-06 | |
US62/957,442 | 2020-01-06 | ||
PCT/US2020/067669 WO2021141827A1 (en) | 2020-01-06 | 2020-12-31 | A distributed tensor network contraction scheme with splitting based on dynamic ordering |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023510706A true JP2023510706A (ja) | 2023-03-15 |
JPWO2021141827A5 JPWO2021141827A5 (ja) | 2024-01-15 |
Family
ID=76654904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022538712A Pending JP2023510706A (ja) | 2020-01-06 | 2020-12-31 | 動的順序付けに基づいた分割による分散テンソルネットワーク縮約方式 |
Country Status (5)
Country | Link |
---|---|
US (1) | US12019959B2 (ja) |
EP (1) | EP4088085A4 (ja) |
JP (1) | JP2023510706A (ja) |
CN (1) | CN115066589A (ja) |
WO (1) | WO2021141827A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220067245A1 (en) * | 2020-08-12 | 2022-03-03 | Microsoft Technology Licensing, Llc | Low-cost linear orders for quantum-program simulation |
CN113612834B (zh) * | 2021-07-30 | 2023-06-13 | 烽火通信科技股份有限公司 | 一种云网资源的统一表示及优化分配方法与系统 |
CN115146780B (zh) * | 2022-08-30 | 2023-07-11 | 之江实验室 | 一种量子张量网络转置和收缩协同的方法和装置 |
CN116342383A (zh) * | 2022-12-08 | 2023-06-27 | 阿里云计算有限公司 | 张量处理方法、设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11093679B2 (en) * | 2018-03-14 | 2021-08-17 | International Business Machines Corporation | Quantum circuit decomposition by integer programming |
-
2020
- 2020-12-31 WO PCT/US2020/067669 patent/WO2021141827A1/en unknown
- 2020-12-31 JP JP2022538712A patent/JP2023510706A/ja active Pending
- 2020-12-31 CN CN202080091727.9A patent/CN115066589A/zh active Pending
- 2020-12-31 EP EP20912773.7A patent/EP4088085A4/en not_active Withdrawn
- 2020-12-31 US US17/139,281 patent/US12019959B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210209270A1 (en) | 2021-07-08 |
EP4088085A4 (en) | 2023-06-07 |
CN115066589A (zh) | 2022-09-16 |
US12019959B2 (en) | 2024-06-25 |
EP4088085A1 (en) | 2022-11-16 |
WO2021141827A1 (en) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2023510706A (ja) | 動的順序付けに基づいた分割による分散テンソルネットワーク縮約方式 | |
JP7186797B2 (ja) | 量子計算のための方法及びシステム | |
ur Rehman et al. | Efficient Kriging-based robust optimization of unconstrained problems | |
CN115456160A (zh) | 一种数据处理方法和数据处理设备 | |
CN113994350A (zh) | 为神经网络生成并行计算方案 | |
JP6508661B2 (ja) | データ処理システム、計算ノードおよびデータ処理方法 | |
JP2022088600A (ja) | 量子回路の処理方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN112132287A (zh) | 一种分布式的量子计算仿真方法和装置 | |
JP2018518747A (ja) | 幾何学モデルを単純化する方法 | |
WO2023082436A1 (zh) | 量子计算任务处理方法、系统及计算机设备 | |
Paszyńska et al. | Quasi‐Optimal Elimination Trees for 2D Grids with Singularities | |
US20210334690A1 (en) | Methods and systems for tensor network contraction based on hypergraph decomposition and parameter optimization | |
CN114330730A (zh) | 量子线路分块编译方法、装置、设备、存储介质和产品 | |
CN111915011A (zh) | 一种单振幅量子计算模拟方法 | |
CN111931939A (zh) | 一种单振幅量子计算模拟方法 | |
JP2022062274A (ja) | 関数処理方法、装置及び電子機器 | |
CN113128015A (zh) | 预估单振幅模拟量子计算所需资源的方法和系统 | |
CN115618663B (zh) | 一种网格方程与物理方程耦合的量子求解方法及装置 | |
CA3161314A1 (en) | Fast quantum circuit simulations with parallel task-based tensor network contraction | |
CA2915760C (en) | Method and system for solving a problem involving a hypergraph partitioning | |
Marques et al. | A cloud computing based framework for general 2D and 3D cellular automata simulation | |
CN114091686A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
Šutić et al. | Scaling industrial applications for the Big Data era | |
Ozdaglar et al. | Asynchronous approximation of a single component of the solution to a linear system | |
Kholod et al. | Creation of data mining cloud service on the actor model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240104 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240104 |