JP6979331B2 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP6979331B2
JP6979331B2 JP2017209112A JP2017209112A JP6979331B2 JP 6979331 B2 JP6979331 B2 JP 6979331B2 JP 2017209112 A JP2017209112 A JP 2017209112A JP 2017209112 A JP2017209112 A JP 2017209112A JP 6979331 B2 JP6979331 B2 JP 6979331B2
Authority
JP
Japan
Prior art keywords
units
spin
information processing
interaction
random variable
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.)
Active
Application number
JP2017209112A
Other languages
English (en)
Other versions
JP2019082793A (ja
Inventor
拓哉 奥山
真人 林
雅直 山岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017209112A priority Critical patent/JP6979331B2/ja
Priority to US15/963,822 priority patent/US11443217B2/en
Publication of JP2019082793A publication Critical patent/JP2019082793A/ja
Application granted granted Critical
Publication of JP6979331B2 publication Critical patent/JP6979331B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、情報処理装置及び方法に関し、特に、相互作用モデルの計算を行う半導体装置をアクセラレータとして制御する情報処理装置に適用して好適なものである。
種々の物理現象や社会現象は相互作用モデルで表現することができる。相互作用モデルとは、モデルを構成する複数個のノードと、ノード間の相互作用、さらに必要であればノード毎のバイアスで定義されるモデルである。物理学や社会科学では種々のモデルが提案されているが、いずれも相互作用モデルの一形態であると解釈できる。
物理学の世界で代表的な相互作用モデルの例として、イジングモデルをあげることができる。イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは、+1/−1(ないしは、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数、および、スピン毎にある外部磁場係数で定義される。
イジングモデルは、与えられたスピン配列、相互作用係数、および、外部磁場係数で構成される。イジングモデルのエネルギー関数(一般にハミルトニアンとも呼ばれる)は次式で表わされる。
Figure 0006979331
なお、σ、σはそれぞれi番目とj番目のスピンの値、Ji,jはi番目とj番目のスピンの間の相互作用係数、hはi番目のスピンに対する外部磁場係数、σはスピンの配列を表わすものとする。
(1)式において、第一項は、スピン間の相互作用に起因するエネルギーを計算するものである。一般的にイジングモデルは無向グラフとして表現され、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。そのため、第一項ではi<jを満たすσ、σの組み合わせについて、相互作用係数の影響を計算している。また第二項は、各スピンに対する外部磁場に起因するエネルギーを計算するものである。
イジングモデルの基底状態探索は、イジングモデルのエネルギー関数を最小化するスピン配列を求める最適化問題である。非平面グラフで表されるイジングモデルの基底状態探索はNP困難であることが知られている。近年、この問題を効率的に解くため、半導体デバイス技術を応用して基底状態を探索する装置が提案されている(特許文献1)。
特開2016−51313号公報
Isakov, Sergei V., et al. "Optimised simulated annealing for Ising spin glasses." Computer Physics Communications 192 (2015): 265-271. Fischer, Thomas H., H. P. Luthi, and W. P. Petersen. A New Optimization Technique for Artificial Neural Networks Used in Prediction of Force Constants of Large Molecules. Eidgenossische Technische Hochschule Zurich, Interdisziplinares Projektzentrum fur Supercomputing, 1994 Zuehlsdorff, Tim Joachim. Computing the Optical Properties of Large Systems. Springer, 2015.
イジングモデルの基底状態探索やサンプリングを実行するにあたり、一般に、マルコフ連鎖モンテカルロ法(以降、MCMCと呼ぶ)が用いられる。MCMCは、状態間を確率的に遷移しつつ状態のサンプリングを行うことで所望の統計量を推定する手法である。
図1にイジングモデルのエネルギーランドスケープの概念図を示す。これは横軸にスピン配列、縦軸にそのスピン配列におけるエネルギーをプロットしたものである。確率的な遷移では、現在の状態σの近傍のある状態σ’へ確率的に遷移を繰り返す。状態σから状態σ’へ遷移する確率を、遷移確率P(σ,σ’)と呼ぶ。遷移確率としてメトロポリス法や熱浴法などが知られている。例えば、メトロポリス法の遷移確率は以下(2)式である。Tは一般に温度と呼ばれるパラメータで、状態間の遷移のし易さを表す。
Figure 0006979331
近傍の状態σ’を生成する方法として、現在の状態σから一つのスピンの値を変えることが一般的である。変更するスピンを一つずつ順番に変えることで、スピン全体の探索を行う。たとえば、図1の場合は、状態Aから一つのスピンが反転すると状態B、そしてさらに一つのスピンが反転すると状態Cとなる。
パラメータTを大きな値から徐々に減少させつつMCMCを実行するとき、エネルギーが最も低い状態に漸近的に収束する。これにより最小化問題の最適解または近似解を求める手法はシミュレーティッド・アニーリング法(以降、SAと呼ぶ)として知られる。
イジングモデルに対してMCMCやSAを適用するとき、(2)式に基づいてスピン値を確率的に決定する。非隣接のスピンに対して(2)式に基づく状態遷移を同時に適用可能である。そのため、(2)式に基づく確率的処理を実現する回路を複数用意して、並列してスピンの値を更新することで高速にMCMCやSAを実行することができる(例えば特許文献1参照)。
ただし、(2)式に基づく確率的処理を論理回路で実行する場合、指数関数や乗算の計算、乱数生成などが必要である。そのための回路は多くの物量を要する。よって、前述の通り複数並べることが好ましくとも、大規模な装置を限られた回路面積で実現することを前提にすると、充分に(2)式に基づく回路を設けることが困難となる。
本発明の一側面は、1あるいは複数のアレイ回路を備える情報処理装置である。この装置では、アレイ回路の其々は複数のユニットを備え、複数のユニットの其々は、相互作用モデルの1つのノードの状態を示す値を記憶する第1のメモリと、自己ユニットに接続された他のユニットのノードからの、相互作用を示す相互作用係数を記憶する第2のメモリと、他のユニットのノードの状態を示す値および相互作用係数に基づいて、1つのノードの次状態を示す値を決定する論理回路を有する。そして、論理回路はパラメータθの指数分布に従う第1の確率変数を入力とする。
本発明の他の一側面は、アレイ回路を備える情報処理装置を用いた情報処理方法である。この方法では、情報処理装置のアレイ回路の其々は複数のユニットを備え、複数のユニットの其々は、相互作用モデルの1つのノードの状態を示す値を記憶する第1のメモリと、自己ユニットに接続された他のユニットのノードからの、相互作用を示す相互作用係数を記憶する第2のメモリと、他のユニットのノードの状態を示す値および相互作用係数に基づいて、1つのノードの次状態を示す値を決定する論理回路を有する。ここで、1つのノードの状態の遷移のしやすさを示すパラメータを温度Tとしたとき、論理回路による1つのノードの状態の次状態への更新処理を、温度Tの逆数が等間隔cとなるスケジュールを前提として行ない、−T・ln(u)(ただしuは0より大きく1以下の一様乱数)で表される第1の確率変数を、複数のユニットに共通に設けられた第1の乱数発生器によって生成し、複数のユニットを直列に経由する第1の信号経路により供給する。
回路の物量を削減しつつ、メトロポリス法に基づく確率的な処理を可能とする。
イジングモデルのエネルギーランドスケープの概念図。 実施の形態における半導体装置を含む情報処理装置の全体構成の一例を示すブロック図。 実施の形態において、マルチイジングチップの構成の一例を示すブロック図。 実施の形態において、イジングチップの構成の一例を示すブロック図。 実施の形態において、2次元格子のスピンアレイの構成の一例を説明する概念図。 実施の形態において、スピンユニットの構成の一例を示す回路図。 スピンユニットの構成を示すブロック図。 スピンユニットへの乱数の供給方法を示す概念図。 キンググラフが高さ方向に積み重なった形状のイジングモデルの概念図。 スピンユニットの他の構成を示すブロック図。 実施の形態において、マルチイジングチップの構成の他の例を示すブロック図。 MCMCの処理手順を示すフロー図。
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
以下、実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
実施の形態では、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能な半導体装置および情報処理装置について説明する。具体的には、イジングモデルに代表される相互作用モデルに対してメトロポリス法に従う確率的処理を実行させるため、指数分布に従う独立な複数の乱数を入力に取る最小値関数を備える情報処理装置が説明される。
<(1)相互作用モデル>
前述のように、種々の物理現象や社会現象は相互作用モデルで表現することができる。相互作用モデルの特徴として、ノード間の影響を2個のノード間の相互作用に限定している(2体間の相互作用)ことがあげられる。物理学の世界で代表的な相互作用モデルの例として、前述のイジングモデルをあげることができる。以下においては、イジングモデルの基底状態探索またはサンプリングを行う半導体装置と、その半導体装置をアクセラレータとして制御する情報処理装置の例を説明する。
<(2)有向グラフに拡張したイジングモデル>
本実施の形態では、イジングモデルを拡張した、以下の(3)式で示されるモデルを、以降イジングモデルと呼ぶ。
Figure 0006979331
(1)式で示したイジングモデルとの違いは、(3)式では有向グラフで示されるような相互作用が許されることにある。一般的に、イジングモデルはグラフ理論では無向グラフとして描画することができる。それは、イジングモデルの相互作用は、i番目スピンからj番目スピンへの相互作用係数Ji,jと、j番目スピンからi番目スピンへの相互作用係数Jj,iとを区別していないことによる。
本実施例はイジングモデルを拡張し、Ji,jとJj,iを区別しても適用できるため、有向グラフ化したイジングモデルを取り扱う。なお、無向グラフのイジングモデルを有向グラフのイジングモデルで取り扱う場合には、単にJi,jとJj,iとの双方向に同じ相互作用係数を定義することで可能である。
<(3)本実施の形態における情報処理装置の構成>
<<(3−1)半導体装置を含む情報処理装置の全体構成>>
半導体装置を含む情報処理装置の全体構成について、図2および図3を用いて説明する。図2は、本実施の形態における半導体装置を含む情報処理装置の全体構成の一例を示すブロック図である。図3は、本実施の形態において、マルチイジングチップの構成の一例を示すブロック図である。
図2において、本実施の形態による情報処理装置を示す。この情報処理装置1は、パーソナルコンピュータやワークステーションまたはサーバなどから構成され、システムバス2を介して接続されたCPU(Central Processing Unit)3、メモリ4、記憶装置5および複数のマルチイジングチップ6を備える。図示していないが、情報処理装置として通常備える各種の入力装置、出力装置を備えていても良い。
CPU3は、情報処理装置1全体の動作制御を司るプロセッサである。またメモリ4は、例えば揮発性の半導体メモリから構成され、各種プログラム等を記憶するために利用される。記憶装置5は、例えばハードディスク装置やSSD(Solid State Drive)などから構成され、プログラムやデータを長期間保持するために利用される。
本実施の形態の場合、記憶装置5には、本情報処理装置1が解くべきイジングモデル形式の問題の問題データ7が格納され、メモリ4には、マルチイジングチップ制御プログラム9が格納される。マルチイジングチップ制御プログラム9は、個々のマルチイジングチップ6で問題を解くための制御を行うためのプログラムである。
なお、イジングモデル形式でない問題データをイジングモデル形式の問題データ7に変換するプログラムをメモリ4に格納しておくようにしてもよい。このようにすることによりイジングモデル形式でない問題についても対応可能となり、本情報処理装置1の有用性を向上させることができる。
マルチイジングチップ6は、イジングモデルの基底状態探索を行う専用ハードウェアであり、例えば画面描画処理のための専用ハードウェアであるGPU(Graphics Processing Unit)のように、情報処理装置1に装着する拡張カードの形態を取る。
図3はマルチイジングチップの構成ブロック図である。マルチイジングチップ6は、図3に示すように、インタフェース(I/F)10、イジングチップ群11および制御部12を備えて構成され、インタフェース10およびシステムバス2(図2)を介してCPU3(図2)との間でコマンドや情報の送受を行う。
イジングチップ群11は、それぞれがイジングモデルの基底状態探索やサンプリングを行う専用のハードウェアである複数のイジングチップ13から構成される。イジングチップ13間はチップ間配線14により接続されており、このチップ間配線14を介してイジングチップ13同士が必要な情報を送受することができる。
制御部12は、イジングチップ群11を構成する各イジングチップ13を制御する機能を有し、コントローラ15を備えて構成される。コントローラ15は、タイミングを制御するためのクロック生成機能を備えているものとする。
コントローラ15は、マルチイジングチップ6全体の動作制御を司るプロセッサであり、情報処理装置1のCPU3(図2)からシステムバス2(図2)およびインタフェース10を介して与えられるコマンドに従ってイジングチップ群11を構成する各イジングチップ13の動作や、動作タイミングを制御する。また、記憶装置5から送信される問題データ7をイジングチップ13に格納し、また、イジングチップ13から読み出した解データを記憶装置5に送信するための制御を行なう。
コントローラ15は、各イジングチップ13に対してSRAM(Static Random Access Memory)互換インタフェース30を用い、初期値データとなる問題データ7の書き込みおよび結果データとなる解データの読み出しを行なう。また、コントローラ15は、各イジングチップ13に制御コマンドCONTを送信して、イジングチップ13の動作をコントロールする。また、コントローラ15は、各イジングチップ13に対して相互作用制御インタフェース35を介して、相互作用計算の制御を行なう。
<<(3−2)イジングチップの構成>>
図4を用いてイジングチップ13の構成について説明する。図4は、本実施の形態において、イジングチップ13の構成の一例を示すブロック図である。イジングチップは、スピンアレイ20を内包し各スピンの値を相互作用計算により更新処理する半導体集積回路である。
図4に示すように、イジングチップ13は、スピンアレイ20、I/O(Input/output)アドレスデコーダ21、I/Oドライバ22、相互作用アドレスデコーダ23、およびチップ間接続部24を備えて構成される。本実施の形態では、イジングチップ13は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
イジングチップ13は、スピンアレイ20のメモリセルにリード/ライトを行うためのSRAM互換インタフェース30として、アドレスバス31、データバス32、R/W制御線33およびI/Oクロック線34を備える。またイジングチップ13は、イジングモデルの基底状態探索の制御を行うための相互作用制御インタフェース35として、相互作用アドレス線36および相互作用クロック線37も備える。
イジングチップ13では、イジングモデルのスピンσ、相互作用係数Ji,jおよび外部磁場係数hをすべてスピンアレイ20内のメモリセルに記憶する情報で表現する。スピンσの初期状態の設定やMCMCを実施後のスピン配列の読み出しはSRAM互換インタフェース30を介して行う。またイジングチップ13では、MCMCを実行すべきイジングモデルをスピンアレイ20に設定するための相互作用係数Ji,jおよび外部磁場係数hのリード/ライトもSRAM互換インタフェース30を介して行う。
そのため、スピンアレイ20内のスピンσ、相互作用係数Ji,jおよび外部磁場係数hにはアドレスが付与されている。そしてイジングチップ13にスピンσ、相互作用係数Ji,jまたは外部磁場係数hをリード/ライトする場合、対応するアドレスがコントローラ15からアドレスバス31を介してI/Oアドレスデコーダ21に与えられ、これらスピンσ、相互作用係数Ji,jおよび外部磁場係数hのリード/ライトを制御するR/W制御信号がコントローラ15からR/W制御線33を介してI/Oドライバ22に与えられる。
かくしてI/Oアドレスデコーダ21は、アドレスバス31を介して与えられたアドレスに基づいてスピンアレイ20のワード線をアクティベートし、I/Oドライバ22は、R/W制御線33を介して与えられたR/W制御信号に基づいてスピンアレイ20内の対応するビット線を駆動する。これによりデータバス32を介して与えられたスピンσの初期値や、相互作用係数Ji,jおよび外部磁場係数hの設定値がスピンアレイ20に設定され、または、MCMCを実施後の解がスピンアレイ20から読み出されてデータバス32を介して外部に出力される。
なお、SRAM互換インタフェース30を構成するアドレスバス31、データバス32およびR/W制御線33は、I/Oクロック線34を介して制御部12からイジングチップ13に与えられるI/Oクロックに同期する。
また、イジングチップ13は、MCMCを行うために、スピンアレイ20の内部でスピン間の相互作用を実現する。この相互作用を外部から制御するのが相互作用制御インタフェース35である。イジングチップ13は、コントローラ15から与えられる相互作用を行うスピン群を指定するアドレスを相互作用アドレス線36経由で入力する。また、同じくコントローラ15から与えられる相互作用クロックを相互作用クロック線37から入力し、これに同期して相互作用を行う。相互作用アドレスデコーダ23は、相互作用アドレス線36を介して与えられたアドレスに基づいて、スピンアレイ20に対するスピンの値、相互作用係数Ji,jおよび外部磁場係数hのリードあるいはライトを行う。
相互作用アドレス線36と相互作用クロック線37は、イジングチップ13内において、隣接スピンユニットのスピンを同時に更新しないように、更新するスピンユニットの更新タイミングを指定する。隣接スピンユニットのスピンを同時に更新すると、両方の更新が重複してエネルギー最小化ができず振動してしまうためである。
イジングチップ13は、スピンアレイ20内のメモリから読み出したデータと併せて計算に用いるため、後述のように乱数発生器8と乱数を注入する乱数信号線を有する。乱数発生器8により発生された乱数は、この乱数信号線を介してスピンアレイ20に与えられる。乱数発生器8の構成と乱数のスピンアレイ20への供給方法については、後に詳細に説明する。
チップ間接続部24は、複数のイジングチップ13を協同して動作させる際には、隣接して配置されたイジングチップ13との間で必要なスピンσの値を送受する際のインタフェースとして、あるいは乱数の経路として機能する。制御信号CONTは、後に説明する切替え信号の信号線ENやSWを含み、その他の必要な制御用の信号も含んでよい。
以上で説明した、スピンアレイ20、SRAM互換インタフェース30、および相互作用制御インタフェース35は、本明細書で特に説明する部分以外は、基本的に特許文献1に開示のものと同様に構成できる。
<<(3−3)スピンアレイの構成>>
図5はキンググラフ状のスピンアレイおよびその接続関係について模式的に説明する概念図である。本発明はキンググラフ以外のグラフに対しても適用可能であるが、本実施例ではキンググラフを例に説明する。スピンアレイ20は、1個のスピンσならびにそれに付随する相互作用係数Ji,jおよび外部磁場係数hを保持するメモリと、MCMCを実現する演算回路を有するスピンユニット40を基本構成単位として、スピンユニット40を多数個並べた構成を有する。
図6はキンググラフの概念を示す。キンググラフは図6に示すように格子グラフに対角線が加わったグラフである。
図5において、スピンアレイ20は3×3の9個のスピンユニット40を持つこととし、スピンユニット40が持つスピンを丸で示している。スピンアレイ20は一つのイジングチップ13によって実現される。1個のスピンユニット40には、他のスピンユニットのスピンの値が入力される。図5では8個のスピンユニットのスピンの値を入力することとした。あるスピンユニットに対してスピンの値を入力するスピンユニットを便宜上、「隣接スピンユニット(隣接ノード)」ということにする。ただしこれは必ずしも物理的あるいは幾何学的にスピンユニットが隣接配置されていることを意味しない。
スピンユニット40は、スピンの値を保持するためのメモリセルを有している。スピンの値は、たとえばスピンの上/下の値を、HIGH/LOWで表す。図5では各スピンアレイ20の中央のスピンユニットN11に着目して、スピンの値の入出力を矢印で示している。またスピンユニット40は、かかるスピンの値に加え、外部磁場係数hと、上述した隣接スピンユニットとの相互作用係数Ji,jをそれぞれ保持するメモリセルも有している。このような相互作用を行うスピンアレイ20の構成については、例えば特許文献1に記載があり、本実施例で特記する以外の構成は、これに従って構成してよい。
なお、図5ではスピンユニットの位置をNxyというように、横方向および縦方向の位置によって示している。スピンユニット40をタイル状に配置することでスピンアレイ20が実現される。
<<(3−4)スピンユニットの構成>>
図7は、本実施の形態において、スピンユニット40の構成の一例を示す回路ブロック図である。一つのスピンユニットは、イジングモデルの一つのノードに対応する。図示しないが、スピンユニット40が有するメモリセルには、イジングチップ13外からアクセスするためのインタフェースであるビット線とワード線が配置され、リード/ライトのタイミングが制御される。これは従来の半導体メモリの制御方式を踏襲するものであり、前述のSRAM互換インタフェース30により実現される。
図7を参照しつつスピンユニット40の構成を説明する。メモリセルNはスピンを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは+1/−1(+1を上、−1を下とも表現する)であるが、これをメモリセルが保持可能な2値である0/1に対応させる。例えば、+1を1、−1を0に対応させる。
イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。
図5および図6の例では、このスピンユニット40は最大で8個のスピンユニットと接続される。すなわち、図5のN11に着目すれば、N00、N11、N20、N01、N21、N02、N12、N22の8個のスピンユニットからそれらのスピンの値S〜Sを得て、また自分のメモリセルNに格納された値をこれらに送信する。上記例に限らず、接続されるスピンユニットの個数は8個より多くても少なくてもよい。
図7の場合には、スピンユニット40は自スピンに及ぼす影響を示す相互作用係数J〜Jを格納する8組のメモリセルを備える。さらに、外部磁場係数hを格納するメモリセルHを備える。本実施の形態のイジングチップ13では、外部磁場係数hおよび相互作用係数J〜Jを、それぞれMビットの値に対応させる。そのため、外部磁場係数および相互作用係数を表わすためには、それぞれMビットのメモリセルが必要となる。
スピンユニット40内のメモリセルN、メモリセルH、J(1≦k≦8)は、それぞれイジングチップ13の外部からリード/ライト可能でなければならない。そのために、前述のように、スピンユニット40はビット線とワード線とをそれぞれ有している(図7には図示せず)。そしてイジングチップ13では、スピンユニット40が半導体基板上にタイル状に並べられてビット線とワード線とが接続されており、I/Oアドレスデコーダ21とI/Oドライバ22でこれらのスピンユニット40を駆動、制御または読み出しすることにより、一般的なSRAMと同様に、スピンユニット40内のメモリセルを、イジングチップ13のSRAM互換インタフェース30でリード/ライトすることができる。
イジングチップ13では、SRAM互換インタフェース30で問題データをメモリに記憶した後、相互作用計算を行なってメモリの値を更新して解を探索し、得られた解をSRAM互換インタフェース30で読み出す。ここで実行される相互作用計算は、具体的にはイジングモデルに対するメトロポリス法に基づいたMCMC(基底状態探索やサンプリングなど)である。以下に相互作用計算を行なって、メモリのスピンの値を更新するための回路について説明する。本実施例では、回路規模を縮小しつつ基底状態探索を可能とする例について説明する。その際に、温度スケジュールを逆温度(温度の逆数)で等間隔なるスケジュールとすることを前提にする(後に(12)式で表す)。
図7において、1ビット乗算器41A、隣接スピンの値S〜Sを示す1ビット信号、および係数J〜JであるMビット信号を受け取り、1ビット信号の値に応じてMビット信号をそのまま、または符号反転して出力する。1ビット乗算器41Bは、自スピンの値を示す1ビット信号、および乱数Rを受け取り、1ビット信号の値に応じて乱数Rをそのまま、または符号反転して出力する。加算器42は複数の1ビット乗算器41Aの出力値およびメモリセルHから受け取る外部磁場係数hの総和を求める。この値は演算器43で2倍される。2倍された信号は、比較器44に入力される。
比較器44は演算器43と1ビット乗算器41Bの大小関係を比較する。演算器43の出力値が1ビット乗算器41Bの出力値以上のとき、比較器は1を出力する。また、演算器43の出力値が1ビット乗算器41Bの出力値未満のとき、比較器は0を出力する。比較器44の出力は、セレクタ45の一方の入力に接続され、このセレクタ45の他方の入力にはメモリセルNの出力が接続されている。セレクタ45には、当該スピンユニット40のスピンの更新を許可する切替え信号の信号線ENが接続されている。セレクタ45の出力はメモリセルNの入力に接続され、このメモリセルNの出力は当該スピンユニット40のスピンの値を他のスピンユニット40に出力する信号線OSに接続されている。信号線ENの切替信号は、前述の相互作用制御インタフェース35によって制御されている。
図7の回路により、メトロポリス法に基づく状態遷移が実現可能である理由について、以下の数式を用いて説明する。スピンユニット40の表すスピンを現在の値σから反転させたとき、エネルギーは次式で計算されるΔHだけ増加する。
Figure 0006979331
メトロポリス法は温度Tにおける状態遷移の受理確率(遷移確率)を(2)式で表す。ゆえに0より大きく1以下の一様乱数uを用いると、状態遷移が受理される条件は以下の通りである。
Figure 0006979331
ここで状態遷移後にスピンがσ=+1となる場合を考える。遷移前の値が+1ならばΔH>−T・ln(u)、つまり以下の不等式が成り立つ場合に条件を満たす。
Figure 0006979331
同様に、遷移前の値が−1ならばΔH≦−T・ln(u)、つまり以下の不等式が成り立つとき、状態遷移後にスピンがσ=+1となる。
Figure 0006979331
ゆえに遷移前のスピンσの値に依らず,以下の不等式を満たすならば遷移後にスピンがσ=+1となることが得られる。
Figure 0006979331
よって、メトロポリス法に従った状態遷移を実行するためには、スピンσの次状態を表すメモリセルNの値を(9)式に基づいて与えれば良い。ただしsign(x)はx≧0ならば+1、x<0ならば−1を返す関数である。
Figure 0006979331
以上により、メトロポリス法に従った状態遷移を実行するためには、(9)式の演算が可能な回路を準備すればよい。処理を高速化するために、スピンアレイ20内では、各スピンユニット40が(9)式に基づいて並列計算を行う必要がある。この際,一様乱数uの生成や非線形関数lnの計算、温度Tとln(u)の乗算などを各スピンユニット40内で各々実行することは、回路規模の増大および動作周波数の低下を引き起こすため好ましくない。以降、この課題を回避しつつ(4)式を実現する方式について、図7および図8を用いて説明する。本実施例では、演算回路が所定の信号RおよびRを入力に取ることで、半導体装置の回路規模を抑制する。
(9)式において、確率変数−T・ln(u)はパラメータ1/Tの指数分布に従う。ただし、一般にパラメータθの指数分布は以下の確率密度関数を持つ分布である。
Figure 0006979331
時刻kにおいて、信号RおよびRは各スピンユニット40内でパラメータ1/T、パラメータcの指数分布に従う値をそれぞれ持つとする。すなわち、(10)式において、其々θ=1/T、θ=cをとる。このために、乱数発生器で指数分布に従う乱数を生成するとき,この前提を満たすよう制御するものとする。信号Rは各スピンユニット内で同値とは限らないことに注意されたい。あくまでも確率分布の性質を表すパラメータのみが同じである。これは信号Rに関しても同様である。Tはアニーリングにおいてk番目に使用する温度を表す。温度を時間的に線形に低下させる場合は、kは経過時間と同義である。cはアニーリングにおいて温度Tの逆数の間隔を表す。これらは、アニーリング開始前にユーザがパラメータとして設定する。
(9)式と図7の演算回路の対応を式の左側から示す。演算「sign」は比較器44で実行される。「2の乗算」は演算器43で実行される。「h+Σjikσ」のhはメモリHに格納されているi番目のスピン(自スピン)に対する外部磁場係数である。Σ演算は加算器42で実行される。jikは自スピン(i番目)と隣接スピン(k番目)の間の相互作用係数であり、これはメモリJ〜Jに格納されている。σは隣接スピンの値であり、信号線s〜sから入力される。σはメモリNに格納される自スピンの値である。−T・ln(u)はパラメータ1/Tの指数分布に従う確率変数であり、入力信号Rで与えられる。
これにより、比較器44の2入力はそれぞれ、2(h+Σjikσ)、−σ・T・ln(u)となる。ゆえに(9)式に鑑みると、温度Tにおけるメトロポリス法に基づいて確率的に決まる値σが次の状態としてメモリセルNに保存される。
温度T,定数cはユーザが与えるパラメータである。本実施例のアニーリングでは(12)式に示した温度系列を用いる。この系列は、温度スケジュールを逆温度で等間隔cとなるスケジュールを示す。温度T,定数cはスケジュールによって定まるが、ユーザはアニーリング開始に先立って、温度の初期値Tと定数cを設定して入力しておくものとする。スピンユニット内の乱数には、後述する最小値関数の機能により、自然とT,T・・・に対応したパラメータを持つ指数乱数が現れる。なお、(12)式でc=0とした場合はT=T=・・・=Tを表す。この場合には,(12)式は温度一定のスケジュールを表すことになる。
スピンユニット40から出力する乱数線OR、ORは、他のスピンユニット40において各々乱数線R、Rとして用いる。
図8に、イジングチップ13における乱数線のスピンユニット間の接続関係を示す。イジングチップ13は、乱数発生器8として2つの乱数発生器8A、8Bを持ち、それぞれ独立に指数分布に従う確率変数を生成する。ここでは、乱数発生器8Aは1/Tの指数分布に従う確率変数を乱数線Rに供給し、乱数発生器8Bはcの指数分布に従う確率変数を乱数線Rに供給するものとする。確立変数は非負値(マイナスでない値)をとる。そして各乱数発生器で生成した信号は乱数線R,Rを介して各スピンユニット40を順番に流れる。各乱数の伝搬方向は逆方向になるよう定める。たとえばN11の信号ORはN21の信号R、N11の信号ORはN01の信号Rに次のタイミングで供給される。
(10)式より、パラメータθに従う指数乱数は−ln(u)/θで求まる。ここでuは0〜1の一様乱数である。よって,乱数発生器8A、8Bでは、LSFR(線形帰還シフトレジスタ)などで一様乱数uを生成し,対数をとれば指数分布に従う確率変数が得られる。
(10)式において、確率変数X、Xをそれぞれパラメータθ、θの指数分布に従うとする。互いに独立なとき、XおよびXがxより大きい確率は(11)式で表される。XおよびXがxより大きい事象は、XとXの最小値がxより大きい事象と等価であり、この事象の発生確率が(10)式で表せるのである。つまりX、Xの最小値はパラメータθ+θの指数分布に従う。なお、記号Prは事象が起こる確率を意味する。
Figure 0006979331
ゆえに、R、Rを上記のように設定した場合、最小値関数46はパラメータ1/T+cの指数分布に従う確率変数を出力する。この値または信号Rの持つ値のいずれかをセレクタ47で選択して信号線ORに与える。この切替えは信号線SWによって制御する。また信号線ORは乱数線Rの値をそのまま出力する。信号線SWは、コントローラ15から供給される制御信号CONTに含まれるものとする。信号線SWはコントローラ15から各スピンユニット共通に与えられる信号である。SWは、状態遷移の実行に際して、温度Tを変更するか維持するかを定めるものとして用いられる。すなわち、ORとしてRをそのまま出力しているということは、温度が変化していないということを示す。また、ORとして最小値関数46の出力を出力しているということは、温度が変化(たとえばT→Tk+1)になることを示す。これはセレクタ47を切り替えることで制御される。セレクタ47を制御する信号線SWの信号をどのように制御するかは、アニーリングにおいてどのように温度を制御するかに依存する。したがって、信号線SWの信号のプログラムは、アニーリング開始に先立って設定されるが、予めユーザが入力しておくものとする。また、何回温度Tを変化させるかも、ユーザが設定することができる。
各スピンユニットで用いる乱数Rは空間的および時間的に独立であることが望まれる。仮に伝搬方向が同じ場合,最小値関数46の出力であるmin(R,R)=min(OR,R)となり,あるスピンユニットで使われた乱数が,次のスピンユニット(隣接スピンユニット)でもそのまま使われてしまう。このような事態を避けるため,本実施例では図8に示したように、2つの乱数の伝搬方向は逆方向としている。ただし、2本の乱数線R,Rの情報が同じ経路を通らずに混合されればよいので,必ずしも逆方向である必要はない。例えば、互いの乱数線を90度回転させて配線する,など他の方式も考えられる。
信号線SWを制御して最小値関数46の出力がORに与えられる場合を想定する。上記のように、時刻kにて信号RおよびRは各スピンユニット40内でパラメータ1/T、パラメータcの指数分布に従う確率乱数を持つ。そのため、次のタイミングである時刻k+1には、信号RおよびRは各スピンユニット40内でパラメータ1/T+c、パラメータcの指数分布に従う確率乱数を持つ。よって、時刻k+1では(12)式で与えられる温度Tk+1を用いてメトロポリス法に基づくスピン更新を実行することになる。
Figure 0006979331
以上で説明したスピンユニット40内の演算は並列的に行なわれる。その結果、ORは制御信号SWで固定されない限り変化してゆく。これは、アニーリングにおいて温度Tが変化することによって遷移確率が変化していくことに相当する。また、各スピンユニット40スピンの値σもその都度計算されるが、値を更新するかどうかは制御信号ENによって定められる。
非特許文献1、2に記された通り、(12)式に基づく温度スケジューリングはSA法で一般的に用いられる。本実施例により、この汎用的な温度制御法を実現するに際して、乗算や非線形関数の計算は乱数発生器8内のみに留め、並列計算部(本実施例ではスピンユニット40)では最小値関数46および加算器42のみで実現できるようになった。すなわち、乱数発生器8では、一様乱数uの生成、一様乱数を受け取るlog関数や,その値に1/θを掛け合わせる処理を、配下のスピンユニット40共通で行なう。スピンユニット40は、最小値関数46、加算器42、比較器44など、回路規模の小さい構成による処理を並列で行なうことができる。
図7で、セレクタ47が信号Rを常に選択するよう信号線SWを制御すると、温度一定のメトロポリス法が実行可能である。これはボルツマン機械学習や自由エネルギーに基づく強化学習などのアルゴリズムで必要となる統計量計算に必要な処理であり、本実施例はこの用途に対しても好適である。
また、温度一定の下でイジングモデルに対してメトロポロス法に基づく状態遷移を実現することは、Simulated Quantum Annealing(以降、SQAと呼ぶ)を実行する際にも有用である。以下SQAの実行に適した実施例を説明する。
経路積分モンテカルロ法に基づくSQAは(13)式のハミルトニアンHを考える。ただしσi x、σi zはパウリ行列のx成分、z成分を表す。またΓ(t)は横磁場の大きさを表し、アニーリングが進むにつれて0へ漸近的に小さくなる。
Figure 0006979331
鈴木・トロッター分解を(13)式に適用することにより、(13)式のダイナミクスは(14)式で疑似的に再現されることが知られている(非特許文献3)。レプリカ数Lが大きいほど、(13)式および(14)式がそれぞれ表す分配関数の差は小さい。(14)式は古典的なイジングモデルであり、ディジタル回路で計算可能である。レプリカ数LやΓ(t)はユーザが定める定数や関数で与えられる。
Figure 0006979331
(14)式は(1)式を拡張し、レプリカ数Lとレプリカ間相互作用W(かっこ内第3項の係数に相当)を導入したものと解釈することができるので、実施例1と同様にこの処理についても類似の構成を適用できる。
図9は、図6に示すキンググラフ状のイジングモデルに対してSQAを実行するための状態遷移の概念図である。図9に示す通り、レプリカ数Lのキンググラフが高さ方向に、第1レプリカ9−1〜第Lレプリカ9−Lまで積み重なった形状のイジングモデルに対して、メトロポリス法に基づく状態遷移を行えばよい。そしてアニーリング中は温度Tを固定しつつ、高さ方向の相互作用係数Wのみを変化させる。例えば相互作用係数Wを徐々に強める。
(14)式が示す通り、各レプリカは同じ相互作用jij・外部磁場係数hの組み合わせを持つ。よって、イジングモデルに対してSQAを実現する回路を構成する場合は、スピンユニット40内で係数jij,hを表すメモリセルを、複数のスピンユニットで共有することが可能である。すなわち、一つのスピンユニット40で、複数のレプリカの動作を再現することができる。これによってメモリ消費の増加が抑制されるため、レプリカ数Lを大きくすることが可能となる。
図10に、スピンを表すメモリセルを共有する方式のスピンユニットの構成例を示す。図7の構成と同様の構成は同じ符号を付して説明を省略する。主たる相違点はスピンの値を格納するメモリNがレプリカ数L分のスピンを格納できることと、レプリカ間の相互作用係数Wが導入されている点である。また制御上、制御信号SWは温度を一定にするために常にRを出力するようにセレクタ47を固定するため、常にOR=Rとなる。もっとも、温度Tを変える必要がある場合は変化させても良い。図5で説明したN11のスピンユニットは、図9の縦方向に積層されるL層の各レプリカの、N11に対応するスピンユニットのスピン値を保持する。ゆえに図9に示すようにL層のレプリカを実現する場合、メモリセル48の容量はLビットとする。
信号線RPはスピン更新の対象とするレプリカを示す。たとえばRP=1ならば図9に示す最上位層(第1レプリカ)9−1,RP=2ならば2つ目の層(第2レプリカ)9−2に含まれるスピンを示す。信号線RPは、全てのスピンユニット40に対して同じレプリカを指定する。すなわち、本実施例ではレプリカを一つずつ順番に処理していく。例えば、RPの値は1つずつインクリメントされ、Lに至ると1に戻る。信号RPに従って、メモリセル48から対応するレプリカ(層)のスピンσを読み書きする。相互作用計算を行なう際には、レプリカごとに処理を行なうので、図10の信号OS、S〜Sは、RP=1のときは第1レプリカのスピンを、RP=2のときは第2レプリカのスピンを入出力する。
信号Wはレプリカ間に働く相互作用を表す。これは(14)式のかっこ内第3項の係数であり、この数式が示すようにレプリカ間の相互作用はすべて等しい。この値は例えばMビットであって乱数発生器8と同様に、マルチイジングチップ6で生成して各スピンユニット40に分配する。乗算器41C,41Dは1ビット乗算器である。それぞれの入力信号のうち、1ビット側の信号は、信号線RPが指定するレプリカの上下に存在するレプリカのスピンUPとDNがメモリセル48から与えられる。乗算器41C,41Dはレプリカのスピンの示す値に基づいて相互作用係数Wの符号をそのまま、または反転して出力する。
なお、一番上のレプリカ9−1と一番下のレプリカ間9−Lの間にも高さ方向の相互作用Wが働くとして、一番上のレプリカ9−1では上側のスピンUPとして最下層のレプリカ9−Lからスピン値を読み出す。また、最下層のレプリカ9−Lは下側のスピンDNとして一番上のレプリカ9−1からスピン値を読む。この場合は、高さ方向に周期境界条件を設定していることになる。
別の計算方法としては、高さ方向が開放境界条件であるとすることもできる。この場合は、一番上のレプリカ9−1と一番下のレプリカ9−L間に相互作用が無いとし、一番上のレプリカでは上側のスピンがないため,スピン値を0、または相互作用Wを0とする。一番下のレプリカ9−Lでも同様である。これらの条件はユーザが設定可能である。
図11に示すスピンユニットの構成例において、レプリカ数Lの増加に伴って増加する回路はメモリセル48のみである。レプリカ数Lを大きくすることはSQAの解精度を向上させる上で重要である。
図11は、マルチイジングチップ6の他の構成例を示す図である。実施例1の図3の例と同様の部分は同一の符号を付して説明は省略する。また説明上、図3のSRAM互換インタフェース30、および相互作用制御インタフェース35を省略しているが、この部分は図3の例と同様に構成しているものとする。
実施例1の図8では、乱数発生器8Aおよび8Bをイジングチップ13毎に備えていたが、図11の例では、乱数発生器8Aおよび8Bをイジングチップ13で共通としている。
乱数発生器8Aは一様乱数発生器81Aと対数計算および温度Tとの乗算を行なう演算器82Aを含む。演算器82Aにはコントローラ15から、ユーザが設定したパラメータである温度Tが与えられる。一様乱数発生器81Aは一様乱数uを生成し、演算器82Aは−T・ln(u)の対数演算を行なう。確立変数は非負値なので符号を反転させる。その結果、乱数発生器8Aが生成する乱数Rはイジングチップ13の一つに入力される。
乱数発生器8Bは一様乱数発生器81Bと対数計算および温度1/cとの乗算を行なう演算器82Bを含む。演算器82Bにはコントローラ15から、ユーザが設定したパラメータである定数cが与えられる。一様乱数発生器81Bは一様乱数uを生成し、演算器82Bは−(1/c)/ln(u)の対数演算を行なう。確立変数は非負値なので符号を反転させる。乱数発生器8Bが生成する乱数Rはイジングチップ13の一つに入力される。
一つのイジングチップ13に入力された乱数Rと乱数Rは、それぞれがチップ間配線14を経由して全てのイジングチップ13を通るように送信される。各イジングチップ13内でも、全てのスピンユニットを経由するように送信される。図8では、乱数発生器8Aおよび8Bからの乱数の経路は、経路が同一で向きが逆としていた。しかし、乱数はスピンユニットごと、なるべく独立であれば良いので、あるスピンユニットに着目した場合、乱数Rと乱数Rが別々のスピンユニットから入ってくればよい。具体的には、乱数Rと乱数Rの経路か方向の少なくとも一方が異なればよい。
乱数Rと乱数Rの生成やスピンユニット40内の演算が、クロックで規定される所定周期内で実行されると考えると、全てのスピンユニットに2種類の乱数がいきわたらないと演算できないので、最大で「スピンユニット数×周期」の準備期間が必要となる。例えば、図11のように複数イジングチップ13で乱数発生器8Aおよび8Bを共通とする場合には、合計スピンユニット数は「イジングチップの数×1イジングチップあたりのスピンユニットの数」となる。1イジングチップあたりのスピンユニットの数は、例えば10000個(100×100)である。この場合は、4×10000周期(図11の場合)の準備期間が必要である。
準備期間中は、例えばスピンの値は固定で、乱数R=ORとして変更しないものとする。このためには、図7の信号ENでセレクタ45を制御してメモリNの値を固定とし、信号SWでセレクタ47を制御して乱数Rをそのまま流し続ける。
なお、乱数の経路とSRAM互換インタフェース30の経路が独立しているため、上記の準備期間中に、メモリ4から係数を読み出して各スピンユニットのメモリセルH,J、あるいはNに値を格納する処理を行なうことにより、乱数の供給とデータおよび係数の格納を並行して行なうことが可能である。
本実施例では、マルチイジングチップはFPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などのハードウェアで構成することにした。もっとも同様の機能は汎用のプロセッサにプログラムを実行させるソフトウェア構成とすることも可能である。なお、図8でも同様であるが、乱数Rと乱数Rの終端ではそれ以上出力を出さないことにして、処理を打ち切ればよい。
イジングチップの制御手順について説明する。図12は、本実施の形態において、MCMCの処理手順を示すフローチャートである。
図12は、本実施の形態の情報処理装置1において、CPU3(図1)により実行される基底状態探索処理の処理手順を示す。この処理は、主に相互作用演算によるスピン更新処理を説明している。
CPU3は、ステップSP1については図示しない問題変換プログラムに基づいて処理する。これ以降の処理(ステップSP2〜ステップSP11)についてはマルチイジングチップ制御プログラム9(図1)に基づいて、必要なマルチイジングチップ6(図2)のコントローラ15(図2)を介して当該マルチイジングチップ6内のイジングチップ13を制御することにより、これらのイジングチップ13において基底状態探索を実行させる。なお、ステップSP1の処理と、ステップSP2〜ステップSP11の処理とを別々のタイミングで実行するようにしてもよい。
またCPU3は、実際には各マルチイジングチップ6内のイジングチップ13や、イジングチップ13内のスピンユニット40をマルチイジングチップ6内のコントローラ15(図2)を介して制御するが、以下においては理解の容易化のため、コントローラ15の存在を省略して説明を行う。
CPU3は、ユーザからの指示等によりこの基底状態探索処理を開始すると、まず、問題データ7(図1)をイジングモデルの形式のデータに変換する(ステップSP1)。問題データ7がすでにイジングモデルの形式のデータである場合、ステップSP1は省略する。
続いて、CPU3は、変換後のイジングモデルの相互作用係数Jおよび外部磁場係数hを必要なマルチイジングチップ6の各イジングチップ13内の各スピンユニット40にそれぞれ設定する。また、CPU3は予めユーザによって入力された基底状態探索処理実行のためのパラメータである、温度T,定数c,温度の変化回数k,セレクタ45の制御信号EN,セレクタ47の制御信号SWをコントローラ15内に格納する(ステップSP2)。
次に初期スピン配列を生成してスピンを初期化する。本実施例では、数値はすべて同じ値でもよいが、通常はスピンの初期値はランダムな値とする。メモリマップに基づいて、係数と初期スピン配列をスピンアレイのメモリNに書き込む。(ステップSP3)。
相互作用回数mを設定する(ステップSP4)。相互作用演算を実行し(ステップSP5)、すべてのスピンアレイ20について実行が完了したかどうかを判定する(ステップSP6)。未完了ならば、次のスピンアレイ20に対して相互作用演算を実行する(ステップSP5)。すべてのスピンアレイ20に実行が完了したら、規定の相互作用回数(m回)を実行したかどうか判定する(ステップSP7)。未完了であれば、ビット確率を更新し(ステップSP8)、相互作用回数をインクリメントし(ステップSP9)、相互作用計算を継続する。ここで、ビット確率の更新は、セレクタ47の切替により最小値関数46の出力をORとすることで実行される。
規定の相互作用回数を実行済であれば、スピンの値を読みだす(ステップSP10)。そしてCPU3は、この後、この基底状態探索処理を終了する。以上のようにして、MCMCを実行することができる。
本実施例では、各イジングチップ13は同一モデルの基底状態探索を行っており、係数設定(ステップSP2)〜相互作用回数の設定(ステップSP4)まで共通の設定がなされる。しかし、SP5以降の相互作用演算では、各スピンユニットは乱数Rと乱数Rにより確率的に異なる結果を導くことになる。
以上説明した本実施の形態の半導体装置および情報処理装置は、安価かつ容易に製造でき、例えばイジングモデルなどのような任意の相互作用モデルの計算を行うことが可能となる。すなわち、本実施の形態の情報処理装置では、乗算器や非線形関数の演算回路を抑制しつつ、メトロポリス法に基づく状態遷移の並列計算を実行することができる。具体的には、乱数発生器は複数スピンユニット40で共通とし、乱数とパラメータを乗算する回路も複数スピンユニット40で共通とした。スピンユニット40内では最小値関数による指数分布の混合を活用することで、乗算・非線形関数に係わる部分は乱数発生器8に集約することができる。かくして、イジングモデルの基底状態または当該基底状態の近似解を精度高く得ることやサンプリングを高精度に行うための情報処理装置を、安価かつ容易に製造できる。
本実施例によれば、イジングモデルに代表される相互作用モデルに対してメトロポリス法に基づく状態遷移を、回路規模を抑制しつつ高精度に実行可能となる。すなわち、疑似乱数発生器や乗算、非線形関数など負荷の大きな計算を並列計算部から排し,例えばイジングモデルなどのような任意の相互作用ネットワークに対して高速に計算することが可能となる。本実施例によれば、一般的に用いられる温度スケジューリングを用いたシミュレーティッド・アニーリング法を、並列計算部で乗算器の代わりに最小値関数を用いて実現される。
また、温度を一定としてメトロポリス法に基づく状態遷移を行うことにより、イジングモデルに対して経路積分法に基づくシミュレーティッド・量子アニーリング法を実現することも可能である。この場合は前記と同様、疑似乱数発生器や乗算、非線形関数など負荷の大きな計算を並列計算部から排して高速に計算可能である。また、鈴木・トロッター分解を適用して得られるハミルトニアンにおいて、各レプリカは係数が共通であるため、メモリセルが共有できる。この構造を用いることでメモリ消費を抑えつつイジングモデルに対するシミュレーティッド・量子アニーリング法が実現される。
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
例えば、上述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
1…情報処理装置、2…システムバス、3…CPU、4…メモリ、5…記憶装置、6…マルチイジングチップ、7…問題データ、8…乱数発生器、9…マルチイジングチップ制御プログラム、11…イジングチップ群、12…制御部、13…イジングチップ、14…チップ間配線、15…コントローラ、16…相互作用クロック生成器、20…スピンアレイ、24…チップ間接続部、40…スピンユニット、44…比較器

Claims (13)

  1. 1あるいは複数のアレイ回路を備える情報処理装置であって、
    前記アレイ回路の其々は複数のユニットを備え、
    前記複数のユニットの其々は、
    相互作用モデルの1つのノードの状態を示す値を記憶する第1のメモリと、
    自己ユニットに接続された他のユニットのノードからの、相互作用を示す相互作用係数を記憶する第2のメモリと、
    前記他のユニットのノードの状態を示す値および前記相互作用係数に基づいて、前記1つのノードの次状態を示す値を決定する論理回路を有し、
    前記論理回路はパラメータθの指数分布に従う第1の確率変数を入力とし、該第1の確率変数を用いて前記次状態を示す値を決定し、
    前記相互作用モデルの1つのノードの状態の遷移のしやすさを示すパラメータを温度Tとしたとき、前記論理回路による前記1つのノードの状態の更新処理を、前記温度Tの逆数が等間隔cとなるスケジュールを前提として行ない、
    前記第1の確率変数を−T・ln(u)(ただしuは0より大きく1以下の一様乱数)として、前記第1の確率変数がθ=1/Tの指数分布に従うようにし、
    前記第1の確率変数を生成する第1の乱数発生器を前記複数のユニットで共用し、
    前記ユニットの其々は、入力された前記第1の確率変数をそのまま他のユニットに入力可能とする、
    情報処理装置。
  2. 前記論理回路は、
    前記他のユニットのノードの状態を示す値および前記相互作用係数を入力とし、前記他のユニットのノードの状態を示す値に基づいて前記相互作用係数の符号をそのまま、または反転して出力する第1の演算器と、
    前記1つのノードの状態を示す値と前記第1の確率変数とを入力とし、前記1つのノードの状態を示す値に基づいて前記第1の確率変数の符号をそのまま、または反転して出力する第2の演算器と、
    前記第1の演算器の出力を2倍する第3の演算器と、
    前記第2の演算器と前記第3の演算器の出力を入力とし、2入力の大小関係にもとづいた値を択一的に出力する比較器と、
    前記比較器の出力を前記第1のメモリに記憶させる信号線を備える、
    請求項1記載の情報処理装置。
  3. 前記論理回路は、
    複数の他のユニットのノードの状態を示す値を入力とし、
    前記複数の他のユニットのノードにそれぞれ対応付けられる複数の前記第2のメモリを備え、
    前記他のユニットのノードの状態を示す値とそれに対応付けられる前記第2のメモリに格納される前記相互作用係数を入力とする複数の前記第1の演算器を備え、
    複数の前記第1の演算器の出力を加算する加算器を備え、
    前記第3の演算器は前記加算器の出力を2倍する、
    請求項2記載の情報処理装置。
  4. 前記比較器は、
    前記第3の演算器の出力が前記第2の演算器の出力以上のとき、第1の値を出力し、
    前記第3の演算器の出力が前記第2の演算器の出力未満のとき、第2の値を出力する、
    請求項3記載の情報処理装置。
  5. 前記論理回路はパラメータθの指数分布に従う第2の確率変数を入力とし、
    前記第2の確率変数を生成する第2の乱数発生器を前記複数のユニットで共用し、
    前記第2の確率変数は−(1/c)・ln(u)(ただしuは0より大きく1以下の一様乱数)であり、
    前記論理回路は、
    前記第1の確率変数と前記第2の確率変数を入力として最小値関数を演算する第4の演算器を備え、
    前記第1の確率変数と前記第4の演算器の出力を選択して他のユニットに入力可能とする、
    請求項記載の情報処理装置。
  6. 前記第1の確率変数を前記複数のユニットの論理回路に供給する第1の信号経路と、前記第2の確率変数を前記複数のユニットの論理回路に供給する第2の信号経路とは、経路および信号の伝播方向の少なくとも1つが異なるように構成される、
    請求項記載の情報処理装置。
  7. 前記ユニットの其々は、入力された前記第2の確率変数をそのまま他のユニットに入力可能とする、
    請求項記載の情報処理装置。
  8. 前記第1の乱数発生器および前記第2の乱数発生器は、
    前記アレイ回路ごとに配置されるか、あるいは、複数のアレイ回路で共通に配置されている、
    請求項記載の情報処理装置。
  9. 前記第1の確率変数と前記第4の演算器の出力を選択して他のユニットに入力可能とするセレクタを備え、
    前記セレクタを制御する制御信号SWにより前記温度Tの時間的変化を制御する、
    請求項記載の情報処理装置。
  10. 前記複数のユニットの其々は、
    前記相互作用モデルの1つのノードの状態の複数のレプリカを示す値を記憶する前記第1のメモリを備え、
    前記複数のレプリカ間の相互作用係数Wを入力とし、
    前記論理回路は、
    前記レプリカのうち第1のレプリカを示す値と前記相互作用係数Wを入力とし、前記第1のレプリカを示す値に基づいて前記相互作用係数Wの符号をそのまま、または反転して出力する第5の演算器を備え、
    前記第5の演算器の出力を前記加算器に入力して加算し、
    前記比較器の出力に基づいて、前記レプリカのうち第2のレプリカを示す値の次状態を示す値を決定する、
    請求項3記載の情報処理装置。
  11. アレイ回路を備える情報処理装置を用いた情報処理方法であって、
    前記アレイ回路の其々は複数のユニットを備え、
    前記複数のユニットの其々は、
    相互作用モデルの1つのノードの状態を示す値を記憶する第1のメモリと、
    自己ユニットに接続された他のユニットのノードからの、相互作用を示す相互作用係数を記憶する第2のメモリと、
    前記他のユニットのノードの状態を示す値および前記相互作用係数に基づいて、前記1つのノードの次状態を示す値を決定する論理回路を有し、
    前記1つのノードの状態の遷移のしやすさを示すパラメータを温度Tとしたとき、前記論理回路による前記1つのノードの状態の前記次状態への更新処理を、前記温度Tの逆数が等間隔cとなるスケジュールを前提として行ない、
    −T・ln(u)(ただしuは0より大きく1以下の一様乱数)で表される第1の確率変数を、前記複数のユニットに共通に設けられた第1の乱数発生器によって生成し、前記複数のユニットを直列に経由する第1の信号経路により供給する、
    情報処理方法。
  12. −(1/c)・ln(u)(ただしuは0より大きく1以下の一様乱数)で表される第2の確率変数を、前記複数のユニットに共通に設けられた第2の乱数発生器によって生成し、前記複数のユニットを直列に経由する第2の信号経路により供給し、
    前記ユニットにおいて、前記第1の確率変数と前記第2の確率変数に基づいて、パラメータ1/T+cの指数分布に従う第3の確率変数を得、該第3の確率変数を前記第1の確率変数に代えて他のユニットに送信を可能とする、
    請求項11記載の情報処理方法。
  13. 前記第1の信号経路と前記第2の信号経路は、前記複数のユニットに対して、経路および信号の伝播方向の少なくとも1つが異なるように信号を供給する、
    請求項12記載の情報処理方法。
JP2017209112A 2017-10-30 2017-10-30 情報処理装置および情報処理方法 Active JP6979331B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017209112A JP6979331B2 (ja) 2017-10-30 2017-10-30 情報処理装置および情報処理方法
US15/963,822 US11443217B2 (en) 2017-10-30 2018-04-26 Information processing apparatus and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017209112A JP6979331B2 (ja) 2017-10-30 2017-10-30 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2019082793A JP2019082793A (ja) 2019-05-30
JP6979331B2 true JP6979331B2 (ja) 2021-12-15

Family

ID=66244868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017209112A Active JP6979331B2 (ja) 2017-10-30 2017-10-30 情報処理装置および情報処理方法

Country Status (2)

Country Link
US (1) US11443217B2 (ja)
JP (1) JP6979331B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6993571B2 (ja) * 2018-01-17 2022-01-13 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7071638B2 (ja) * 2018-07-31 2022-05-19 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
WO2020054021A1 (ja) * 2018-09-13 2020-03-19 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US11177962B2 (en) 2019-02-05 2021-11-16 Visa International Service Association Optimizations for verification of interactions system and method
JP7256378B2 (ja) * 2019-04-10 2023-04-12 富士通株式会社 最適化システムおよび最適化システムの制御方法
JP7185140B2 (ja) * 2019-04-11 2022-12-07 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7201911B2 (ja) * 2019-05-13 2023-01-11 富士通株式会社 最適化装置および最適化装置の制御方法
JP7239826B2 (ja) * 2019-06-18 2023-03-15 富士通株式会社 サンプリング装置およびサンプリング方法
JP7248907B2 (ja) * 2019-08-14 2023-03-30 富士通株式会社 最適化装置および最適化装置の制御方法
US11468044B2 (en) * 2019-11-25 2022-10-11 Visa International Service Association Optimizations for verification of interactions system and method using probability density functions
JP2021182338A (ja) * 2020-05-20 2021-11-25 富士通株式会社 最適化装置、最適化プログラムおよび最適化方法
JP2021184148A (ja) 2020-05-21 2021-12-02 富士通株式会社 最適化装置、最適化方法、および最適化プログラム
CN113969844B (zh) * 2020-07-22 2023-09-12 广州汽车集团股份有限公司 一种can总线与发动机控制单元通信数据处理方法及系统
JP2022052222A (ja) 2020-09-23 2022-04-04 富士通株式会社 最適化装置、最適化方法、および最適化プログラム
JP7470019B2 (ja) * 2020-11-25 2024-04-17 株式会社日立製作所 情報処理システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3315588B2 (ja) * 1996-05-16 2002-08-19 株式会社日立製作所 トラヒック流量制御を行うatm交換機
JP5922202B2 (ja) * 2014-08-29 2016-05-24 株式会社日立製作所 半導体装置、画像セグメンテーション方法、および画像処理装置
JP5922203B2 (ja) * 2014-08-29 2016-05-24 株式会社日立製作所 半導体装置
JP5901712B2 (ja) * 2014-08-29 2016-04-13 株式会社日立製作所 半導体装置および情報処理装置
JP6468254B2 (ja) * 2016-07-01 2019-02-13 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6773970B2 (ja) * 2016-09-09 2020-10-21 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Also Published As

Publication number Publication date
US11443217B2 (en) 2022-09-13
US20190130295A1 (en) 2019-05-02
JP2019082793A (ja) 2019-05-30

Similar Documents

Publication Publication Date Title
JP6979331B2 (ja) 情報処理装置および情報処理方法
JP6605610B2 (ja) 半導体装置
JP5864684B1 (ja) 半導体装置
JP6841722B2 (ja) 情報処理装置
JP2022502752A (ja) 実装コストを目的として含めることによるニューラルネットワークのトレーニング
JP6935356B2 (ja) 半導体装置、情報処理システム、および情報処理方法
JP6874219B2 (ja) 情報処理装置、演算装置、及び情報処理方法
US11244026B2 (en) Optimization problem arithmetic method and optimization problem arithmetic device
JP6177993B2 (ja) 半導体装置および情報処理装置
JP2021532437A (ja) 機械学習モデルを改良して局所性を改善させること
JP6503072B2 (ja) 半導体システムおよび計算方法
Lookman et al. Perspective: Codesign for materials science: An optimal learning approach
JP6925546B1 (ja) 演算システム、情報処理装置、および最適解探索処理方法
Joardar et al. High-throughput training of deep CNNs on ReRAM-based heterogeneous architectures via optimized normalization layers
TWI782403B (zh) 具有平行載入儲存之共享高速暫存記憶體
CN110765710B (zh) 基于非易失器件的通用逻辑综合方法及装置
US20200089729A1 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
Haller et al. Relieving capacity limits on FPGA-based SAT-solvers
US11886780B2 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
Mejtsky A metaheuristic algorithm for simultaneous simulation optimization and applications to traveling salesman and job shop scheduling with due dates
Bishnoi et al. Earth system modeling on Modular Supercomputing Architectures: coupled atmosphere-ocean simulations with ICON 2.6. 6-rc
Yan et al. Hardware–Software Co-design of Deep Neural Architectures: From FPGAs and ASICs to Computing-in-Memories
US11907098B2 (en) Method for measuring performance of neural processing device and device for measuring performance
Vatankhahghadim A Fully-Connected Boltzmann Machine with Virtual FPGAs
Mishra et al. New Non-Volatile Memory Technologies and Neuromorphic Computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210603

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211115

R150 Certificate of patent or registration of utility model

Ref document number: 6979331

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150