【実施例3】
【0137】
図6は、データ比較演算プロセッサ101の比較演算器114の実施例である。
【0138】
この比較演算器114は先の
図4で説明の通り、行列一致回路121、1bit演算器122、演算結果出力120から構成されている。
【0139】
行列一致判定回路121は、1bit毎に与えられる行と列のデータが一致か、不一致を比較する回路である。
【0140】
論理積(AND)回路や、NAND回路、論理和(OR)回路で構成されている。
【0141】
1bit演算器122は論理回路とその選択回路、並びに演算結果部で構成され、
図3で示した1bit毎の一致、不一致、類似、大小、範囲などの比較演算を行うものである。
【0142】
行列一致判定回路121で判定されたデータと一時記憶レジスタに記憶されているデータを、演算条件に基づき論理積、論理和、排他論理並びに論理否定で演算し、所定の演算を行い勝ち抜いた一時記憶レジスタ127や、一致回数カウンタ128が、マッチアドレス119となるように構成されている。
【0143】
例えば8bitのデータであれば1bit毎に入力される行列データを指定された演算条件で最大8回実行することにより、行列データの一致、不一致、類似、大小比較の比較演算154を実現することができる。
【0144】
また、年齢、性別、体重、身長など複数のデータの合格数を判定するような演算の場合一致回数カウンタを利用し所定値以上のカウント値になっているかどうかの判定を行うことも可能な構成である。
【0145】
この比較演算器114には、回路規模が大きくなる加算器などの四則演算回路が不要となっていることが大きな特徴である。
【0146】
本例では一例として任意bit数、任意フィールド数の演算を行うために、演算結果部には1bit毎のデータの行列一致判定結果を一時記憶するレジスタで任意bit数の判定を行い、データ列の一致回数を記憶する一致回数カウンタで任意フィールド数の判定が実現できるように構成されている。
【0147】
演算結果出力器120は、優先順序判定回路129とマッチアドレス出力130から構成されている。
【0148】
1回のバッチ演算の結果、複数の演算器がマッチした場合、上位の演算器から順番に当該アドレスのXYの座標(アドレス)を出力させるためのものであり、上位の演算器から優先的にマッチアドレス119の座標(アドレス)を演算結果として演算結果出力120を通じて外部に送出する構成である。
4.本実施形態のASIC
次に、本プロセッサ101の実際のASICの例を具体的に検討する。
【0149】
本プロセッサ101を考える上で最低限必要なことは
1.対象になるデータの規模やデータの性格、組合せ並列演算で必要とする演算内容
2.演算器の構成、単位時間の演算回数
3.チップ内演算器の数(並列性)
4.外部メモリからのデータ転送能力(データ供給能力)
5.内部メモリ、キャッシュメモリの容量
6.演算結果データの出力能力
7.どこがボトルネックとなるか、総合演算性能は
8.LSIのピン数
9.消費電力や発熱は
以上の項目を総合的に判断する必要がある。
【0150】
現在の半導体技術では1つのチップには100億個以上のトランジスタが実装できる。
【0151】
本プロセッサ101の回路構成は極めて単純であり、一つの比較演算器114と出力回路が100ゲート、400トランジスタ程度で実現できる。
【0152】
チップに搭載するトランジスタの多くをこの比較演算器114に充てるとすると、例えば1600万個(16M個)の比較演算器114が、16M×400トランジスタ=64億トランジスタで実現可能である。
【0153】
16Mは行と列が4K×4Kに相当する、つまり1600万個の比較演算器114(プロセッサ)が並列(同時)に比較演算することになる。
【0154】
本プロセッサ101の消費電力を10W以下、冷却用のファンが必要のない電力範囲に抑え、しかも汎用性が高く、高速な演算器の構成としたい。
【0155】
システムクロックが1GHzを超えると大幅に消費電力が増加するのでシステムクロックは1GHz(1ナノ秒クロック)またはそれ以下で検討する。
【0156】
実際の実施例をもとに本プロセッサ101の基本構成をまとめるものとする。
【0157】
図7は以上4K×4K比較演算器114を用いた本プロセッサ101で1億×1億データの行列比較演算の実施例を示したものである。
【0158】
説明を簡単にするためにデータの母数を1億(100M)とし、「井上克己」など漢字4文字データつまり4フィールドデータを、
図1のC例のように行列同じデータとして利用し網羅組合せ的に日本人の同姓同名を検索するものとする。
【0159】
この比較演算回路114は、1クロック演算を1bit毎に繰り返すことになるので、漢字データ、4文字=4フィールド(16bit×4=64bit)を1ナノ秒1クロック演算で64回実行し比較演算、つまり1バッチ比較演算は64ナノ秒である。
【0160】
これが、4K×4K=1600万演算器全体の1バッチ比較演算空間152の演算時間である。
【0161】
次に外部メモリから、本プロセッサ101にデータを転送するためのデータ入力時間について説明する。
【0162】
一般的なDDRメモリモジュールのデータ転送時間は16GB/秒程度である。
【0163】
仮に、行4K×64bit(8B)のデータを16GB/秒でデータ転送する時間は(4K×8B=32KB)/16GB=2マイクロ秒、列も同様2マイクロ秒である、これを1データ転送時間とする。
【0164】
図7のA方式に示すように、1バッチ4K×4Kの比較演算空間で100M×100Mの組合せ的演算空間を演算する場合、ラスタ走査のように25K×25K=625M回網羅的な比較演算を繰り返す必要がある。
【0165】
例えば行の1データを固定にして、列のデータ切り替え25K回の比較演算を行うので、データの転送回数は、(1+25K)×25K≒625M回となり、組合せ的比較演算空間全体では、1データ転送時間の625M倍になるので2マイクロ秒×625M=1,250秒となる。
【0166】
以上のような本プロセッサ101の利用の仕方では、データ転送時間が先に示した、4K×4Kの1バッチ演算空間152の比較演算時間64ナノ秒より極めて大きな値となり、この技術の有効性を損なう結果となる。
5.本実施形態の比較演算方法
以下にこの技術の効果を最大限に引き出す比較演算方法を
図7のB方式に示す。
【0167】
先の説明では、行列それぞれ4Kのデータ1バッチ分をその都度データ転送する場合を考えたが、例えば4Kの64倍のデータ、つまり1行256K+1列256Kの行列データを1バッチメモリ空間153として転送する場合の時間を考える。
【0168】
1バッチメモリ空間153の行と列双方のデータ量は(4K+4K)×8B×64=4MBとなる。
【0169】
従ってデータ転送時間は4MB/16GB=256マイクロ秒となる。
【0170】
一方比較演算時間は、4K×4Kの1バッチ演算を64ナノ秒で実現できるので、1バッチメモリ空間153の全体の演算は行列それぞれ256K/4K=64回、64回×64回=4K回のラスタ走査のように比較演算を繰り返すことにより実現できる。
【0171】
この場合、行列「64×64」の演算に必要なデータは行列「64+64」のデータとして事前に受け取っており、本プロセッサ101は先に
図4で説明した通りこのデータを連作的に利用することが出来るので、64ナノ秒×4K回≒256マイクロ秒の演算時間で処理可能になる。
【0172】
つまり、演算時間=データ転送時間となりバランスした性能になるとともに、初回の演算を除き、演算中にデータ転送を独立し、所定単位のデータを転送することが出来るので、見かけ上データ転送時間は比較演算時間に隠れてしまい、比較演算時間の256マイクロ秒で256K×256Kの1バッチメモリ空間が処理可能になる。
【0173】
以上のとおり、CPUのキャッシュメモリのように、事前に大量の行列データを転送しておいて、連続して演算を繰り返すことができるこの方法は、データ転送は4Kのデータ64倍のデータの二組つまり64+64の128回のデータを送るだけで良いのに対し、演算は64×64=4096回(4K回)必要になるところがこの技術最大のポイントである。
【0174】
データの転送時間はデータの量に比例するが、組合せ的な演算はデータ量の2乗に比例するのでデータ先送りとキャッシュメモリの価値を最大限に引き出すことができる。
【0175】
この方式をデータ先読み効果と呼ぶ。
【0176】
ちなみに先に示した4MBのメモリを1セル当たり6トランジスタのSRAMで構成する場合、4M×8×6≒2億トランジスタ程である、必要に応じ更にメモリを増設することにより、より様々な演算効果が得ることができる。
【0177】
256K×256Kの1バッチメモリ空間153をさらに400回×400回=160K回繰り返すことで、1億(10
8 )×1億(10
8 )=1京(10
16 )の空間全体の演算が完了することになり全網羅組合せ的演算空間151の演算時間は62マイクロ秒×160K回≒42秒となる。
【0178】
後述するようにこの時間にはアイドル時間、比較演算指示時間や比較演算結果の出力時間が考慮されていないが、ひとまずこの数字を1億トータル処理時間と呼ぶものとする。
【0179】
ALUのような多bit演算器を用いて1バッチの比較演算を高速化することも可能であるが、データ転送時間がボトルネックになるので、1バッチの比較演算を高速化しても無意味である。
【0180】
組合せ的な演算が比較に限定される場合は本例の比較演算器114のように1bit毎の演算を繰返し実施し、データの転送時間と、演算時間のバランスをとれるようにするのが最善である。
【0181】
また、ALUの場合、データ幅が固定になってしまい、メモリ効率や演算効率が悪くなるのに対し本方式は、1bit以上の任意データ幅に遊びがなく対応出来るので極めて効率的な並列演算が可能になる。
【0182】
本プロセッサ101はCPUやGPUのようにプログラムを介在させて駆動させるものではないこと、各演算素子が完全同一のSIMD型演算を行うので、それぞれの演算器の遊びやオバーヘッドタイムを完全排除することが出来るのでアイドルタイムを考慮する必要がない。
6.本実施形態の演算指示
本プロセッサ101の演算指示について説明する。
【0183】
図3で説明の年齢/身長/体重のような複数フィールド行列データを比較する演算条件設定の一例を示す。
【0184】
年齢データの(0〜6)を一致で行列比較する場合の個別演算式 (0〜6)行=列
身長データの(7〜14)を類似で行列比較とする場合の個別演算式 (7〜14)行≒列
体重データの(16〜22)は大小で行列比較とする場合の個別演算式 (16〜22)行>列
性別データの(23)を一致で行列比較する場合の個別演算式 (23)行=列
既婚データの(24)を無視する場合の個別演算式 演算式不要
以上のように対象となるフィールドの個別フィールド演算式としてそれぞれの行列データの比較演算条件と比較演算記号を決定する。
【0185】
割愛しているがデータ形式がバイナリデータかBCDか、テキストデータであるか、さらに類似などの場合はどのデータを無視するのかなどさらに細かく条件を決める必要がある。
【0186】
さらに以上の個別フィールド演算式の全体の比較演算を、[(0〜6)行=列]×[(7〜14)行≒列]×[(16〜22)行>列]×[(23)行=列]などのように比較演算式として外部から与え所定の行列比較が本プロセッサ101内部で実現されるよう、フィールド内データの個別フィールド演算は
図6に示す比較演算器114の一時記憶レジスタで演算し、複数フィールド全体の演算は一致回数カウンタ128でカウント演算可能になるよう演算指定条件回路を構成すればよい。
【0187】
個別フールド内の演算、複数フールド全体の演算とも、論理積、論理和、排他論理、論理否定、などの任意の論理の組み合わせが実現できることは言うまでもない。
【0188】
通常本プロセッサ101に対する演算指示はHOST側のコンピュータから、PCIeやローカルネットワークを通じて行われる。
【0189】
以上のような極めて巨大な組合せ的な比較演算であっても比較演算条件は毎回同じ条件で実施するので、比較演算開始時に1回指定するだけでよく1bit毎の比較演算条件を仮に数十マイクロ秒〜数ミリ秒程度の比較演算指示時間が必要であってもトータル処理時間に対して無視することができる。
7.本実施形態の比較演算結果の出力
最後に本プロセッサ101の比較演算結果の出力について説明する、4K×4Kの1バッチ比較演算空間の中でマッチする行と列の演算器(マッチアドレス)が多いか少ないかは、トータル処理時間に大きく影響する。
【0190】
本例では先に示した日本人の同姓同名を検出する際、マッチする確率と出力時間について考察するものとする。
【0191】
日本人約1.2億人に対し同姓同名の種類は1300万種類とされているので、一つの名前に平均10のマッチ数(平均確率が10)があることになる、1億×1億の組合せ的なマッチングで10億回のマッチアドレスが検出されることになる。
【0192】
このマッチアドレスデータに付随して、このマッチアドレスが100M×100Mの組合せ的な空間のどのエリアのものであるのかをエリア毎に最低1回エリアデータを出力する必要がある。
【0193】
マッチアドレスデータを受け取るHOST側は、エリアデータと以上説明の4K×4Kのマッチアドレスで全空間内のどのマッチアドレスであるかを判定することができる。
【0194】
この10億回(1G回)のマッチアドレスを、1データ、行(X)列(Y)それぞれ2B=4Bデータを1クロック1ナノ秒で外部出力する場合の時間は、1G回×1ナノ秒=1秒である。
【0195】
このデータサイズは、1G×4Bは4GBである。
【0196】
平均確率がその10倍になれば外部出力時間は10秒であるがこの出力時間も比較演算と独立して実行できるので、数十倍程度の出現頻度であれば、先に示した1億トータル処理時間42秒に影響はない。
【0197】
次に出現頻度が頻発する場合について検討する。
【0198】
例えば1億のデータの1つのデータ当りに平均1万回(10K回)マッチ検出するなどの場合、外部出力時間に1000秒もの時間が必要である。
【0199】
同時にHOST側のコンピュータは100M×10K×4B=4TBものメモリ空間が必要になり、また抽出した4TBのデータをCPUによりさらに整理するための時間も必要になるので注意が必要である。
【0200】
このようなことからビッグデータ同士の組合せ的な検索は、大量のデータの中から、水や空気のようにどこにでもあるものを手当たり次第に探すのではなく、金やダイヤモンドを探し当てるように、限定された組合せを探し当てるものと割り切る必要がある。
【0201】
以上の演算結果データに関することはCPUによる通常の組合せ的な検索や探索で実行する場合でも全く同様であることは言うまでもない。
【0202】
以上説明の本プロセッサ101の全体像を小さな町工場のイメージで示す。
【0203】
この工場は工場内のあらゆる空間に隙間なく超多数の超小型高性能データ加工設備が備え付けられている。
【0204】
2組のデータがトラックで工場の入口に搬入され、この超小型高性能データ加工設備にそれぞれのデータが入るやいなや超小型高性能データ加工設備の中で一斉にデータ比較演算加工が実施される。
【0205】
超小型高性能データ加工設備は超高速でそのデータの加工は小爆発のように超高速で完了する。そしてその加工の結果製品となる(重要な)データのみが工場の出口から出力されトラック出荷される、これが超高速に繰り返し実行されるイメージである。
8.本発明の優位性のベンチマーク
以上の内容をもとにこの技術の優位性をベンチマークする。
【0206】
CPUで本例の同姓同名を検出する場合、メモリを読み込み、比較を行い、一致しなければ次のメモリを読み込む、一致していれば所定の処理を実行するなど、平均4ステップで1回の比較演算ループを実行するとすれば、560G回/秒の演算が可能な汎用高速CPUで、(1億×1億回=1京)/560G回は71,428秒(約200時間)であり、先に示した1億トータル処理時間42秒と比較して、約1,700倍の時間が必要である。
【0207】
本方式の1億トータル処理時間42秒は計画値ではあるものの適正に設計されたデバイスであれば理論値で稼働させることができる、CPUの場合には様々な要素がからみあうので理論値で稼働させることは困難であり、実際には3,000倍以上の性能差が予想される。
【0208】
さらに4T回の演算が可能な専用高速CPUが4ステップで1回の比較演算ループを実行する場合、1京回/1T回は10,000秒であり、1億トータル処理時間42秒と比較して約240倍の時間が必要である。
【0209】
実際には500倍以上の性能差となることが予想される。
【0210】
最速のGPUの演算能力は専用高速CPUと比較して2倍程度であるので、最速のGPUの演算能力と比較する場合でも250倍程度の性能差となることが予想される。
【0211】
最後に、スパコン京は一秒間に1京回の演算ができるので、4ステップで1回の比較演算ループを実行した場合、4秒必要である。
【0212】
スパコン京は8万個以上のCPUを並列駆動させているので12MWもの電力を消費する。
【0213】
一方の本プロセッサ101は1チップ10Wにも満たないような電力で、スパコン京の約1/10の比較演算能力をもち、電力性能で比較すれば10万倍以上の優位性をもつ。
【0214】
1つのチップで一般的なスパコンクラスの比較演算性能を持つことになる。
【0215】
以上の性能を先に示した工場の例で示すと、この工場は小さな工場(本プロセッサ101=半導体デバイス1個)であるものの巨大工場(スパコン)のように生産能力が高いこと、また使用する電力が極めて少ないこと、原料や製品の搬入搬出が船や飛行機など特殊な搬送設備でなく、一般的なトラック(汎用データ転送回路)で済むことである。
【0216】
以上の性能の差は、いうまでもなく演算アーキテクチャの違いによるものである。
【0217】
前述したようにCPUやGPUがデータ同士を連続的比較する場合にはメモリを読み込み、比較を行い、一致しなければ次のメモリを読み込む、一致すればメモリワークエリアにフラグ(FG)を立てるなど、1つのデータに数ステップの比較ループ演算が必要である。
【0218】
本プロセッサ101の演算性能をCPUやGPUと同様デバイス性能で表現すると、64bit幅のデータを16M個のプロセッサが64ナノ秒で1バッチ比較演算空間152を演算するので、デバイス性能に換算すれば256T回(0.25P回)/秒の実比較演算性能に相当する。
【0219】
CPUやGPUは逐次処理型のプロセッサを改良したマルチコア、メニコアであるのに対し、本方式は最初から超並列化を目指し、比較演算に特化した組合せ的演算専用のプロセッサ101であることが最大の違いである。
【0220】
比較演算は超並列処理が可能な1bit演算器でSIMD処理可能であること、組合せ的な比較演算は与えるデータに対して演算回数がn×m、最大2乗になること、この2つの相乗効果に着目したことがこの発明の最大のポイントである、仮に一方だけではこれだけの性能を引き出すことは困難である。
9.本発明の利用法
以下にこの技術の利用法について説明する。
【0221】
これまでの説明は、8Bデータの1億×1億=1京(10
16 )のデータ同士の組合せ的な演算であったが、データサイズや演算の条件が同様であれば、
様々なデータ量の組合せ的な演算が比例関係で求められる、たとえば
4.2秒では10
15 の演算が可能(例えば100万(10
6 )×10億(10
9 )の組合せ的な演算)
4.2ミリ秒では10
12 の演算が可能(例えば100万(10
6 )×100万(10
6 )の組合せ的な演算)
4.2マイクロ秒では10
9 の演算が可能(例えば1万(10
4 )×10万(10
5 )の組合せ的な演算)が実行できる。
【0222】
またデータの長さと、トータル処理時間も、比例関係であるので、データの長さが4倍であれば、演算時間は4倍になる。
【0223】
この比較演算方式は、データ量の大きなものから、様々なデータ形式のもの、更に様々なデータ長のデータに利用出来る。
【0224】
以上の説明はこの技術の性能の目安を示すものであり、当然のことながら演算条件が複雑になればなるほど圧倒的な比較演算性能で従来型の情報処理では実現不可能であった様々な情報処理への応用が考えられる。
【0225】
先の同姓同名の検索は、フィールドデータの網羅的な比較は不要であったが、フィールドデータの網羅組合せ的な演算方法についてその概要を示す。
【0226】
コンビニやスーパーの売り上げ集計データの中から例えば、「ビール×枝豆×豆腐」、「ワイン×チーズ×ピザ」、「日本酒×するめ×おでん」など、頻出する組合せを網羅的に検出するようなデータマイニングは最もニーズの多いデータマイニングであり様々な手法が提案されている。
【0227】
近年研究が活発しているMEET演算はその代表例であるがデータが多くなるに従い計算量が合わせ爆発するので様々な制約条件を与えないと待ち時間が膨大になる、その他の手法による演算も大同小異である。
【0228】
本発明による頻出組合せの場合には、それぞれの商品コード(同じデータ数)のフィールドデータを切り替えて網羅的に演算を実施すればよい。
【0229】
以上の場合は3つのデータの場合であり、合計9回の組合せ比較演算154を行えば網羅組合せ的な比較演算が可能である。
【0230】
4つのデータの場合、合計16回の組合せ比較演算154を行えば網羅組合せ的な比較演算が可能である。
【0231】
以上のようなフィールドデータの網羅的な組合せ比較演算は
図6に示す一致回数カウンタ128周辺回路により自由に実現することができる。
【0232】
以上の説明で、データフィールドの網羅組合せ的な比較演算と、データフィールドが固定のデータ間の網羅組合せ的な比較演算と、その双方の網羅組合せ演算が可能であることを示した。
【0233】
以下にこの技術の代表的な応用例を示す。
【0234】
先に示した同姓同名の抽出データはインデックスそのものである。
【0235】
抽出された同姓同名のデータをそのままインデックスとして利用することが出来る、インデックスを作成するには複雑な専用技術が必要であったが、本プロセッサ101はインデックスの作成を容易にししかも超高速で、思い通りのインデックスを生成してくれる。
【0236】
もちろん本例以外のデータのインデックスに利用できることは言うまでもない。
【0237】
この技術はデータのフィルタとして利用することができる。
【0238】
図1のB例のように使用し、仮にXにフィルタの条件を設定(固定)しYに対象となるデータを与えればフィルタリングされた結果を抽出することができる。
【0239】
以上のようにビッグデータに最適な技術であることは言うまでもないが、マイクロ秒やミリ秒単位でも極めて大きなデータの処理が出来るので、リアルタイム処理にも応用が可能である。
【0240】
リアルタイムの応用について考える。
【0241】
SNSなどのビッグデータは、データキー(インデックス)とデータを紐づけしたKVS(Key Value Store)方式のデータ検索が盛んに利用されている。
【0242】
本プロセッサ101の1行、1列のいずれか一方を検索インデックスデータとして、他の一方をマルチアクセス検索クエリデータとして、比較演算しマルチアクセス検索を実行することが出来る。
【0243】
先に例示した、4×4Kの1バッチ比較演算空間152で256K×256Kの1バッチメモリ空間153をもつデバイスで、例えば1億のKVS方式のSNSサイトの1インデックス当たり64bitのインデックスを検索する場合は、256マイクロ秒の1バッチメモリ空間153を縦列のみ400回演算すればよいので、1億(インデックス件数)×256K(単位当たりの検索データ)の比較演算時間は約100ミリ秒(0.1秒)となる。
【0244】
比較演算時間が0.1秒であれば、通信時間のオーバヘッドを含めても極めて快適なWEB検索システムを提供することができる。
【0245】
先に示したように、例えば世界80億人の半分の40億人が1日平均10回程度特定のSNS検索エンジンにアクセスすると1日当たり40G回のアクセスが発生し、このアクセス量は1秒当たり266K回のマルチアクセス回数に相当する。
【0246】
従って上記の100ミリ秒で256K(単位当たりの検索データ)の演算能力はマルチアクセスが10倍ほどに集中した場合でも処理可能であることを意味している。
【0247】
検索サイト数がN億(100億)であれば、本プロセッサ101をN個(100個)使用することで、超小型、超低電力で超高性能なSNS検索システムが完成する。
【0248】
本例は便宜上先に説明の256K×256Kの組み合わせ演算によるものであったが、対象となるデータ数(n)と単位時間当たりのアクセス数(m)の関係から最適な組み合わせが可能な本プロセッサ101を設計することにより、より合理的な処理が出来ることは言うまでもない。
【0249】
以上の応用として本プロセッサ101はデータを可変長にすることや、より複雑な検索条件を設定することが出来るので、
図1のB例に示すように大量のデータに対してマルチアクセスが可能である。
【0250】
従って本プロセッサ101は様々な検索機能を備えた高機能の連想メモリ(CAM)として利用できることを意味している。
【0251】
連想メモリ(CAM)は検索用のインデックスを不要にし、複雑な情報処理を不要する反面、フレキシブルな検索条件による検索やマルチアクセスが苦手で現在は通信ルータのIPアドレス(ユニークデータ)の検出程度にしか利用されていない、本プロセッサ101は連想メモリ(CAM)の応用を大幅に拡大する。
【0252】
大量のデータに大量にアクセスされるクラウドサーバに最適である。
【0253】
数値データの一致、類似、大小、範囲の比較ができるので、行列いずれかを、多数のフィルタ条件値と固定して設定しておき、その反対側に大量のデータを与え、マッチするものを検出する、このような演算は設備の故障診断や、株価の変動などのマイニング解析に最適である。
【0254】
テキストデータのリアルタイム解析について考える。
【0255】
欧米語はもとより日本語の網羅的な一致検出が高速で出来るので、大量のSNSデータの中から頻出する言葉を検出し社会の関心や市場の関心をリアルタイムにマイニング検出する。
【0256】
同姓同名の場合4文字データであったがデータ長は任意であるので、特許文献の検索やWEBテキストデータの検索にも応用可能である、大量マルチアクセスが可能なのでシソーラス(同義語)検索にも最適である。
【0257】
AI技術への関心が高まっている、AI技術の期待は様々であるが、コンピュータに明確な指示を与えることなく必要な情報を抽出することや選別することが目的と言っても過言でない。
【0258】
一例をあげればDeep Learningは画像や音声の認識、自己相関マップ(SOM)やサポートベクタマシン(SVM)などのクラスタリングは最もニーズの多いAI技術である。
【0259】
先に説明の同姓同名の検索は、
図1のC例のようなデータ検索であるが、見方を代えればD例のように特別なクエリ(教師データ)なしでクラス分けを自動的に実行したことと等価である、演算条件を変更するだけで様々なクラス分けを実行できるこの方法は従来の技術と比較して極めて単純(ソフトが不要)で、しかも超高速である、本プロセッサ101は正にこのような目的の情報処理を1チップで実現したものに他ならない、その応用はビックデータからリアルタイム処理まで無限であり、新しいタイプの人工知能と表現することもできる。
【0260】
以下にこの技術の補足説明を行う。
【0261】
補足説明1として、本例で説明の演算クロック1ナノ秒を5ナノ秒クロックとした場合について説明する。
【0262】
演算速度が1/5になるので、1億トータル処理時間は42秒×5≒210秒となるが消費電力を大幅に抑えることが可能になる。
【0263】
補足説明2として、4K×4Kの演算器を1K×1Kの演算器とした場合について説明する。
【0264】
演算回数が16倍増えるので、1億トータル処理時間は41.9秒×16≒670秒となるが小型、低コストのチップを実現できる。
【0265】
正方形にこだわることもなく16K×1Kでも可能であるが4K×4Kに比べてメモリの全体容量が(16+1)/(4+4)=2.125倍に増加することに留意する必要がある。
【0266】
補足説明3として、データ先読み効果について説明する。
【0267】
n=mの場合効果が最大になる。
【0268】
n=mとしてそれぞれのバッチ数をKとする場合
演算時間は=K
2 ×1バッチ演算時間
データ転送時間=(K+K)×1データ転送時間
となるので、演算時間とデータ転送時間のバランス点は以下の式で求められる。
【0269】
K
2 ×1バッチ演算時間=(K+K)×1データ転送時間
K=2データ転送時間/1バッチ演算時間 がバランスの取れるバッチ数である。
【0270】
先の例では、バッチ数K=64となり、全体で4MBのメモリを搭載すると最も効率の良い多重バッチ処理の演算が可能になることはすでに説明の通りである。
【0271】
演算時間や、データ転送時間に合わせてKを選択すれば最適なLSIが実現可能になる。
【0272】
補足説明4として、小容量のLSIを紹介する。
【0273】
先に示した構成の本プロセッサ101は行列が4K×4Kで比較演算器114が16M個と大容量のもので演算効率を高めるために多重バッチ処理を行う方式であった。
【0274】
この方式のバランス点は多重バッチ処理の場合のデータ転送時間とその合計演算時間である。
【0275】
本プロセッサ101は比較演算器114の数に関係なく1バッチ比較演算は64n秒と一定であるのでこの演算時間にバランスするデータ転送時間のデータ容量を求める。
【0276】
この場合は単一バッチ処理の場合のデータ転送時間と演算時間である。
【0277】
行列同数でこれまで説明の通信能力16GB/秒であれば、512B+512Bつまり1データが64bitの場合、行列それぞれ64データで64×64=4Kの比較演算器114を備えた本プロセッサ101が実現できる。
【0278】
データ数が64以下の場合、データ転送時間≪=演算時間となるので演算効率が良い。
【0279】
4K×4Kのプロセッサに比較すると性能は大幅に落ちるが小型低電力、低コストのプロセッサとなり電力当たりの性能は従来型プロセッサを大幅に上回る。
【0280】
補足説明5として、比較演算結果の出力を高速にする場合には、演算結果をFIFO(データの先入れ先出し方式など)形式変換して高速なシリアル通信インターフェース、例えばPCIe接続することにより理論値128GB/秒のデータ通信が可能になる。
【0281】
もちろん行列演算用データのデータ転送時間を高速化することも可能である。
【0282】
これまでの説明では行列2次元であったが、行列にページの概念を含め、n+m+oのデータ転送と、n×m×oの演算器による3次元構成のプロセッサとすることも可能である。
【0283】
以上のように目的や性能を勘案し最適なチップを設計すればよい、小型処理容量のものであればFPGAでも利用可能である。