JP2023040014A - コンパクトな演算処理要素を用いたプロセッシング - Google Patents
コンパクトな演算処理要素を用いたプロセッシング Download PDFInfo
- Publication number
- JP2023040014A JP2023040014A JP2022200644A JP2022200644A JP2023040014A JP 2023040014 A JP2023040014 A JP 2023040014A JP 2022200644 A JP2022200644 A JP 2022200644A JP 2022200644 A JP2022200644 A JP 2022200644A JP 2023040014 A JP2023040014 A JP 2023040014A
- Authority
- JP
- Japan
- Prior art keywords
- lphdr
- processing
- arithmetic
- precision
- computational
- 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
- 238000012545 processing Methods 0.000 title abstract description 211
- 238000000034 method Methods 0.000 claims description 97
- 238000012360 testing method Methods 0.000 claims description 79
- 239000013598 vector Substances 0.000 claims description 49
- 238000007667 floating Methods 0.000 abstract description 23
- 238000013461 design Methods 0.000 description 55
- 238000004422 calculation algorithm Methods 0.000 description 39
- 238000004364 calculation method Methods 0.000 description 35
- 230000007246 mechanism Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 19
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 18
- 238000003860 storage Methods 0.000 description 18
- 238000007792 addition Methods 0.000 description 17
- 238000013459 approach Methods 0.000 description 16
- 229910052710 silicon Inorganic materials 0.000 description 14
- 239000010703 silicon Substances 0.000 description 14
- 230000008901 benefit Effects 0.000 description 10
- 238000003491 array Methods 0.000 description 8
- 241000321461 Mycteroperca phenax Species 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 239000003990 capacitor Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 239000000047 product Substances 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 235000021251 pulses Nutrition 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 240000007594 Oryza sativa Species 0.000 description 2
- 235000007164 Oryza sativa Nutrition 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 235000009566 rice Nutrition 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 208000019901 Anxiety disease Diseases 0.000 description 1
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 240000004713 Pisum sativum Species 0.000 description 1
- 235000010582 Pisum sativum Nutrition 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 238000000329 molecular dynamics simulation Methods 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 229920000120 polyethyl acrylate Polymers 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/4833—Logarithmic number system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/5235—Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Nonlinear Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
ジスター)は、指数処理のような、興味深い非線形処理を行う機能を有するデバイスである。 2つのワイヤーの接点では電流が加算される。 もし適切な形態に設定すれば、10億個のトランジスターとワイヤーは、基本的なコンポーネントの2、3の伝播遅延の間(設計全体が従来から行われているデジタル設計であるならば、「サイクル」と呼ばれる)に、計算に関係する10億の処理のかなりの割合を実行することができる。 そして、今日のCPUチップは、ソフトウェアが、可能性のある10億の処理のかなりの割合を実行するのではなく、単に、サイクル毎に2、3の上述したような処理を実行できるようにするために、10億個のトランジスターを使用している。
そして、このプロセッサーあるいはその他のデバイスは、低精度ハイ・ダイナミック・レンジ(LPHDR演算)における数値を取り扱う演算処理(例えば、1又は2以上の加算、乗算、減算、除算を必ず含むものではないが、これらを含む可能性がある演算処理)を実行するように設計された処理要素を含む。
かかるプロセッサーあるいはその他のデバイスは、例えば、単一のチップに実装されている。 単一のチップに実装されているか否かにかかわらず、本発明のある実施例におけるプロセッサーあるいはその他のデバイスで使用されるLPHDR演算要素の数は、従来の精度を有するハイ・ダイナミック・レンジの演算(32ビットまたは64ビット浮動小数点演算のような演算)を実行するために設計された当該プロセッサーあるいはその他のデバイスで使用されている演算要素の数をはるかに超えるようになっている。
また、ある実施例においては、処理要素はインプットを処理し、そして/又は、少なくとも100万分の1から100万までの広がりを有するレンジのアウトプットを出力する能力を有するという意味で、処理要素は「ハイ・ダイナミック・レンジ」を有している。
多くのアプリケーションでは、この種の精度は必須のものである。 その結果、従来のCPUでは、演算処理を実行するために100万個のオーダーのトランジスターを使って、典型的には上述した精度を提供できるように設計されている。
これらのマシンは、低精度の演算を行うものであり、このマシンで行われる各処理の結果には、数パーセント程度のエラーが生じる。 また、これらのマシンは、計算過程においてノイズを生じさせるので、計算を繰り返すことはできない。 更に、これらのマシンでは、狭い範囲の値のみ扱うものであり、例えば、32または64ビット浮動小数点演算のハイ・ダイナミック・レンジを提供するというよりは、むしろ8ビット固定小数点数値に対応するものである。 このような制約から、SCAMPは汎用コンピュータを指向したものではなく、画像処理および初期の生物学的視覚プロセスにおけるモデリング用として設計され、使用されているものである。 このようなアプリケーション分野では、ハードウェアにおける演算処理のフルレンジ(全項目)を必要とするものではなく、例えば、SCAMPは、その設計の中から一般的な除算と乗算を省いている。
るソフトウェアに対して相対的に低いトランジスター1個当たりの計算性能しか実現できないという点において、そのコンポーネントと同程度の非効率さを有している。
しかし、整数、と特に浮動小数点数に対する乗算や除算のような演算処理には、多くのゲートが必要になり、FPGAの汎用のリソースの大部分を使い切ってしまうことになる。 このような理由から、最新のFPGAsでは、FPGAsのかなりの比率の領域を、数ダースあるいは数百の乗算ブロックを提供するために割り当てている。 そしてこの数ダースあるいは数百の乗算ブロックは、乗算を必要とする計算のために、汎用のリソースの代わりに使用できるようになっている。 これらの乗算ブロックは、典型的には18ビットあるいはそれ以上の幅の整数の乗算を実行するものであって、多くのトランジスターを使用するものである。 そして、これらの乗算ブロックは、汎用CPUの一部として機能する乗算回路と同様である。
もし、これらの値が表わされ、浮動小数点演算の方法により取り扱われるならば、これらの数は、10ビット+符号ビットを超えない2進法の仮数と、少なくとも5ビット+符号ビットの2進法の指数を有するようになる。 しかし、このような浮動小数点数の乗算や除算を行う回路は比較的大きなものになってしまう。 別の実施例の一つの例は、浮動小数点数の対数表示を使用するものである。 このようなアプローチでは、浮動小数点数を表示するために必要となるビット数は同じであるが、乗算や除算は、対数表示の加算、および減算としてそれぞれ実行される。 加算や減算は、以下に説明するように効率的に実行することができる。 その結果、演算回路の領域を比較的小さくすることができ、そして多くの計算要素をシリコン上の与えられた領域の中に配置することが可能となる。 このことは、マシンが単位時間当たり、あるいは単位電力当たり、より多くの処理を実行することができることを意味する。 そしてこのことは、マシンがLPHDRのフレームワーク内で表現できる計算の利点を享受できるということを意味する。
良く知られている挙動の近年におけるこのような変化は、アナログ設計をさらに難しくしている。
しかし、デジタルトランジスターは、実際のところ、デジタル的手法で使用されているアナログ・トランジスターであり、デジタル回路は、実際のところ、完全に「ON」の状態と、完全に「OFF」の状態に、トランジスターをスイッチングするように設計されたものである。 デジタル技術の拡張は継続するが、このようにトランジスターを使用することは、アナログ挙動の現実に直面し始めることになる。 デジタル的使用方法におけるトランジスターの拡張は、行き詰るか、あるいは、デジタル設計者はアナログの問題を認識し、アナログの問題を取り扱うことが必要になると考えられている。 このような理由のために、LPHDR演算におけるデジタル的な実施例はもはや、容易であって、信頼でき、かつ拡張可能なものとは言えない。 そして、LPHDR演算におけるアナログ的な実施例は、商業上のアーキテクチャーとして優位に立つようになる可能性がある。
その結果、このようなアルゴリズムは、本発明の実施例を適用したプロセッサーまたはその他のデバイスによって実行することができる。 そして、このことは乗算のためのわずかなトランジスターと、加算のためのワイヤー接点を使用するという最終目標の実現に近づくものである。 更に、このことは、比較的少量の物理的リソース(単一のシリコン・チップのようなもの)によって、大規模並列演算を可能とするものである。 ある専門分野に特化したタスクは、低精度でも機能するが、汎用コンピュータにおいて今日典型的に実行されているような比較的汎用的な計算は、低精度でも実施できるものであるということは、自明なことではなく、実際には当業者からは明らかに誤った考え方であると見られてきた。
しかし、実際のところ、ある種の有用で、重要なアルゴリズムは、大規模並列計算のフレームワークにおいて、32ビット精度以下であっても適切に機能させることができる。
そして、本発明のある実施例では、そのようなアルゴリズムをサポートしており、したが って、トランジスターを効率的に使用するようになっている。 その結果、従来のコンピ ュータに比較して、スピード、消費電力、及び/又はコストを向上させている。
など)、あるいはGPU/SIMTアーキテクチャーなどその他のアーキテクチャーを使用することもできる。 ここで開示する技術は、例えば、前述したような既存のアーキテクチャーを備えたプロセッサー又はその他のデバイスを使用し、ここで開示するいずれかの方法で使用されているLPHDR演算ユニットで、プロセッサー又はその他のデバイスに収納されている特定のあるいは全ての既存の演算ユニットを置き換えるか、増補することによって、実行することができる。
しかし、本発明の実施例に従って実施されるデバイスは、既存のプロセッサーの設計をそのまま使用してスタートする必要はかならずしもなく、まさにここで述べたアーキテクチャーあるいはその他のアーキテクチャーの中にLPHDR演算ユニットを含めるために、本発明の実施例に従って実施されるデバイスを最初から設計するようにしても良い。
処理要素(PEs)の集合体 104は、2次元的な配列、アレイ、グリッド、その他の特定の
レイアウトをとる必要は必ずしもないが、ここでは「処理要素アレイ」(PEA) 104と呼ぶ。 あるマシンでは、Goodyear MPPの「ステージング・メモリ」と呼ばれる追加的メモリ・システムのような、追加的なコンポーネントを備えている。 しかし、このような追加的コンポーネントは、コンピュータにとって本質的なものではなく、本発明の実施例を理解するために必要なものでもない。 したがって、説明を分かりやすくするために、ここでは、このような追加的コンポーネントは、省略することにする。
本発明の一つの実施例は、図1に示すようなSIMDコンピューティング・システムであり、本明細書における用語を使えば、処理要素アレイ(PEA) 104中における一つ又はそれ以上(例えば、全て)のPEsはLPHDR処理要素になる。
I/Oは、I/Oユニット(IOU) 108を省略し、コントロール・ユニット(CU) 106を経由した経路とすることもできるし、図示するように、別途設けたI/Oユニット(IOU) 108を経由するようにすることもできる。 更に、ホスト・コンピュータ 102はオプションであって、例えば、コントロール・ユニット(CU) 106がCPUを備えるようにしても良いし、あるいは、ホスト・コンピュータ 102によって実行できる機能を代替できる機能を有する
コンポーネントを備えるようにしても良い。 図1に示す周辺デバイス 110はオプションである。 図1に示す設計では、中間レベルの局所記憶装置を提供するGoodyear MPPの「ステージング・メモリ」のような特別のメモリを備えるようにすることができる。
例えば、このようなメモリは、処理要素アレイ(PEA) 104の処理要素(PEs)からメモリに比較的高速に並列アクセスするために、3D組立技術を使用したLPHDRチップに接続することができる。
全ての処理要素(PE)において、このようなものを備えることは、ハードウェアの実行技術上の利用できるリソースの多くの部分(VLSI領域のようなもの)を使い尽くすことになってしまう。 更に、全ての処理要素(PE)からI/Oユニット(IOU) 108への独立した接続を備えるようにすることは、多くの接続と長い接続を備えることを意味し、これもまた利用できるリソースの多くの部分を使い尽くすことになってしまう。 このような理由のため、処理要素(PEs)とI/Oユニット(IOU) 108の間の接続は、処理要素アレイ(PEA) 104の端にある処理要素(PEs)に限定するようにしても良い。 この場合、処理要素アレイ(PEA) 104からのデータを取得し、そして処理要素アレイ(PEA) 104へデータを送り出すために、データは、処理要素アレイ(PEA) 104の端にある処理要素(PEs)において読み書きされ、そして処理要素アレイ(PEA) 104の端にある処理要素(PEs)と処理要素アレイ(PEA)104の内部側にある処理要素(PEs)との間でデータを移動させるために、コントロール・ユニット(CU) 106の命令が実行される。 このような設計では、直接的な接続を利用して、I/Oユニット(IOU) 108から処理要素アレイ(PEA) 104の内側にあるいずれかの処理要素(PE)に向かってデータが送られていくようになっているが、I/Oユニット(IOU) 108によって読み込むことができる、処理要素アレイ(PEA) 104の端にある処理要素(PEs)にデータをおくるためには、コントロール・ユニット(CU) 106を利用してデータを読み込むようにしても良い。
れで、読み取ることができるようになっている機器を備えている。
処理要素(PE) 400によって受け取り、処理要素(PE) 400によって出力され、処理要素(PE) 400によって処理された入力、出力、および処理途中の数値は、例えば、数値を表す電気信号の形態をとる。
Log(B+C)=log(B*(1+C/B))=log(B)+log(1+C/B)=b+F(c-b)
ここで、F(x)=log(1+2^x)
従って、本実施例では、当業者に良く知られた標準的なデジタル技術を使用することにより、c-bを計算し、Fに代入し、その結果をbに加えている。
これらのキャパシターは、典型的にはトランジスターのゲートである。 各処理要素(PE)は、図4に示すレジスターに類似した数個のメモリ・セルを備えている。 加算は、2つの演算対象からのパス・トランジスターをオン状態にすることによって実行され、これらの2つの演算対象は、自らの電荷をアナログ・バスに移送し、電荷と配線による自然な物理現象によって合計され、別のレジスターのキャパシターを充電するために回路を開いて移送され、演算対象の合計値が表示されることになる。 Dudekによって開示された詳細なメカニズムは、実際には、負の合計値を生み出すことになるが、基本的な概念はここで述べたとおりであり、アナログ表示と単純な処理メカニズムを使い、単純な方法で加減算を実行するようになっている。
かかるマシンのモデルは、少なくとも以下のような機能を定提供できるものである。 (1)大規模な並列処理ができ、(2)ノイズを伴う可能性のあるLPHDR演算を提供でき、(3)各演算ユニットに少量の局所メモリを備えており、(4)ユニット間に局所接続(パワフルで、フレキシブルで、あるいは高度な接続メカニズムではない接続)のみを備えた2次元的な物理的配列を有する演算/記憶ユニットを備えており、(5)マシンとホスト・マシンの間には、限定されたバンド幅のみを備えているマシンである。
なお、このモデルは、本発明の実施例に係るバリエーションの有効性を論証するためにだけ例示するものであり、本発明を限定するためのものではないことに留意すべきである。 このモデルは、特に、デジタル形式、アナログ形式、あるいはこれらを複合したもので実行し、ノイズがゼロまたはノイズを有するものであり、FPGA、SIMD、MIMDのようなアーキテクチャーやモデルの前提条件に適合したアーキテクチャーを備えている。 そして、共有メモリ設計、GPUのような設計、あるいはその他の洗練された設計などの、一般的なアーキテクチャーは、このモデルの能力を組み込んでいる。 そのため、これらのアーキテクチャーを使ったLPHDR演算は、更に有用なものとなっている。 ここでは、LPHDR演算は広い範囲の設計に対して有効であることを示しているが、広い範囲の設計の中のSIMDは、以下のディスカッションのための一つの例として示すものであり、各ユニットを「処理要素」又は「PE」と呼んでいる。 そして、各ユニットはメモリと演算を組み合わせている。
第1の要求事項は、「精度」に関する事項あり、第2の要求事項は、「効率」に関する事項である。 この二つの要求事項を満たし、このモデルで動作するアプリケーションは、多くの種類のLPHDRマシン上で十分に機能するものと考えられ、従って、このような本発明のマシンは幅広く有効活用できるものである。
アプリケーション1: 最近傍探索
そして、ある一つのベクトルを「Test」と呼ぶことにする。 最近傍探索という課題(「NN」と呼ぶ)は、「Test」に最も近い「Example」を探し出すことであり、ここで計量的な距離は、ユークリッド距離の2乗(各コンポーネント間の距離の2乗和)とする。
本発明の実施例に従い、実装されたマシンによって実行することができるアルゴリズムについて以下に説明する。 そして、アルゴリズムを実行するための命令を含む実行ソフトウェアよって、アルゴリズムは実行される。 このアルゴリズムへの入力は、1セットのExamplesとTestベクトルである。 そして、このアルゴリズムは、Testに最も近い(あるいはほぼ最も近い)Exampleを見つけ出すものである。
C言語でコーディングされ、上述したような機能強化したアルゴリズムによって実行された演算について説明する。 このコードでは、後で述べるような重みづけしたスコアと共に、上述した最も近い近隣のものを計算する。
これが「lns」形式の演算である。
これらの結果は、このアプローチが有用なものであることを示すものである。 ここでは、これらの結果について簡単に説明する。
% ./a.out 5 10 1000000 100 1
表現形式は浮動小数点形式であり、ノイズ有
Run 1: 100 Testに対し実行、100(100.0%)適合性, 0.81%平均スコア誤差
Run 2: 100 Testに対し実行、100(100.0%)適合性, 0.84%平均スコア誤差
Run 3: 100 Testに対し実行、100(100.0%)適合性, 0.98%平均スコア誤差
Run 4: 100 Testに対し実行、100(100.0%)適合性, 0.81%平均スコア誤差
Run 5: 100 Testに対し実行、100(100.0%)適合性, 0.94%平均スコア誤差
Run 6: 100 Testに対し実行、100(100.0%)適合性, 0.82%平均スコア誤差
Run 7: 100 Testに対し実行、100(100.0%)適合性, 0.78%平均スコア誤差
Run 8: 100 Testに対し実行、100(100.0%)適合性, 0.86%平均スコア誤差
Run 9: 100 Testに対し実行、100(100.0%)適合性, 0.85%平均スコア誤差
Run 10: 100 Testに対し実行、99(99.0%)適合性, 0.86%平均スコア誤差
ここで、LPHDR演算が最も近いExampleを見つけ出した回数の平均パーセント(最終的にDPによる修正を行ったもの)=99.90%
LPHDR演算とDPとの対比による平均スコア誤差の平均値=0.85%
% ./a.out 5 10 1000000 100 0
表現形式はlns形式であり、ノイズ無
Run 1: 100 Testに対し実行、100(100.0%)適合性, 0.15%平均スコア誤差
Run 2: 100 Testに対し実行、100(100.0%)適合性, 0.07%平均スコア誤差
Run 3: 100 Testに対し実行、100(100.0%)適合性, 0.08%平均スコア誤差
Run 4: 100 Testに対し実行、100(100.0%)適合性, 0.09%平均スコア誤差
Run 5: 100 Testに対し実行、100(100.0%)適合性, 0.11%平均スコア誤差
Run 6: 100 Testに対し実行、100(100.0%)適合性, 0.16%平均スコア誤差
Run 7: 100 Testに対し実行、100(100.0%)適合性, 0.07%平均スコア誤差
Run 8: 100 Testに対し実行、100(100.0%)適合性, 0.13%平均スコア誤差
Run 9: 100 Testに対し実行、99(99.0%)適合性, 0.17%平均スコア誤差
Run 10: 100 Testに対し実行、98(98.0%)適合性, 0.16%平均スコア誤差
ここで、LPHDR演算が最も近いExampleを見つけ出した回数の平均パーセント(最終的にDPによる修正を行ったもの)=99.70%
LPHDR演算とDPとの対比による平均スコア誤差の平均値=0.12%
Run 1: 100 Testに対し実行、97(97.0%)適合性
Run 2: 100 Testに対し実行、100(100.0%)適合性
Run 3: 100 Testに対し実行、100(100.0%)適合性
Run 4: 100 Testに対し実行、98(98.0%)適合性
Run 5: 100 Testに対し実行、98(98.0%)適合性
Run 6: 100 Testに対し実行、99(99.0%)適合性
Run 7: 100 Testに対し実行、99(99.0%)適合性
Run 8: 100 Testに対し実行、99(99.0%)適合性
Run 9: 100 Testに対し実行、99(99.0%)適合性
Run 10: 100 Testに対し実行、99(99.0%)適合性
ここで、LPHDR演算が最も近いExampleを見つけ出した回数の平均パーセント(最終的にDPによる修正を行ったもの)=98.80%
驚くべき精度の結果に対し、ここで示した計算モデルにおいて、最近傍探索の機能強化したアルゴリズムによる計算が効率良く実行されたということは、この技術分野における通常の知識を有する者にとっては明らかなことである。 ここで、マシンの演算/メモリのユニットは2次元的な物理的配置で接続されており、処理要素(PEs)間のローカルな通信のみを使用したものである。 しかし、このことは、ホスト・マシンに対して狭いバンド幅を使い、有用な作業を行わせて、マシンを使用中の状態に維持することを狙ったものではない。
ここで述べたことは、上述したように、いわゆる当業者の観点に反するものであり、単一のチップ上に非常に多くの演算処理要素を配置したマシンや、これに類似するものは、有用なものではない。
アプリケーション2: 距離の重みづけスコアリング
そして、各Exampleに対する非正規化された重みは、ExampleからTestベクトルまでの距離の2乗プラス1の和の逆数であると定義されている。 上述したように、Cコードは、多数の計算を実行し、その計算において多くのExamplesとTestsを導き出し、そして、「fp+ノイズ」形式および「lns」形式を使用して計算された結果と従来の浮動小数点による計算結果とを比較した。
アプリケーション3: 画像の動きに起因するぼやけの除去
人口衛星や航空機に搭載される移動用カメラは別として、非常に高価なカメラと同様安価な民生用カメラでは、カメラの揺れの結果として、このような「ぼやけ」が生じることがある。 もし、カメラの移動経路が分かっているのであれば(あるいは、計算することができるのであれば)、「ぼやけ」はいろいろな「ぼやけ」除去のアルゴリズムを使用して、実質的に取り除くことができる。 かかるアルゴリズムの一つとして、Richardson-Lucyの方法(「RL手法」と呼ぶ)がある。 ここでは、本発明の実施例が、Richardson-Lucyの方法によるアルゴリズムを実行することができ、有用な結果を導き出すことができることを示す。 上述したアルゴリズムのフォーマットの説明に続き、精度と効率に関するクライテリアについて述べる。
Richardson-Lucyの方法によるアルゴリズムはよく知られ、幅広く利用されている。 この方法では、画像は既知のカーネルによって、ぼやけさせられていると仮定する。 特に、このカーネルは直線であると仮定し、「ぼやけ」が純粋に水平方向にのみ生じるように画像が方向づけられているものと仮定する。 ぼやけた画像の各列におけるJ番目のピクセルに対する特定のカーネルが、ぼやけていない画像のJ番目からJ+31番目のピクセルの一様に重みづけした平均値であると考える。
Cプログラミング言語を使い、LPHDR演算を使用したRL手法の簡単なバージョンについて計算を実行した。 このプログラムでは、テスト画像を読み込み、上述したようなカーネルを使って画像をぼやけさせ、そして、「fp+ノイズ」形式か「lns」形式のいずれかの演算方式を使用して画像のぼやけ除去を行った。 ぼやけ除去を行った画像の現状の近似値でカーネルをコンボルーション(たたき込み積分)する際のように、RL手法のアルゴリズムによって和を計算した。 この計算の実行にあたっては、最初にのべたように、Kahanの手法を使用してこれらの和を求める計算を行なった。 図7は、テスト画像のオリジナルの状態を示したものである。 このテスト画像は、バラク・オバマの就任式に使われた建物の衛星画像である。 図8は、カーネルによって極端にぼやけさせられた画像を示すものである。 この画像では、いずれの特定の対象物をも見分けることができない。 図9は、標準の浮動小数点演算を使用して、ぼやけ除去を行った結果を示すものである。 図10は、「fp+ノイズ」形式の演算を使用して、ぼやけ除去を行った結果を示すものである。 そして、図11は、「lns」形式の演算を使用して、ぼやけ除去を行った結果を示すものである。 これらの全てのケースで、画像は、建物、道路、パーキング・ロット、および車を識別することができる状態で、再保存された。
局所的なカーネルを使用したRichardson-Lucyの方法は、局所的な計算処理のみを行うものであることは、いわゆる当業者には自明なことである。 ぼやけ除去するべき画像は、処理要素(PE)のアレイの中へロードすることができ、処理要素(PE)毎に一つまたはそれ以上のピクセルを保存し、RL手法のアルゴリズムによるデコンボルーション処理を数十回または数百回繰り返すことができる。 そして、ぼやけ除去された画像は、ホスト・プロセッサーに戻され、読み込まれるようになっている。 十分に長い繰り返し処理を行う限り、マシンを効率よく使用することができる。
しかし、一般的な演算能力のような重要な機能を維持しており、SIMDマシンのプロセッシング・エレメントが特に小さく作ることができれば、SIMDのアーキテキチャーは有用なものとなる。 ここで示した実施例は、まさにこのような品質を備えたものである。
そしてこの大規模並列処理マシンは、従来のアーキテクチャーに比べ、少ないリソース(例えば、トランジスターや面積や体積など)を使用して大量の演算能力を提供するために、コンパクトな演算処理要素を使用している。
技術を採用した実施例は、2D技術を採用した実施例に比べ、効率的に実行できる高度な
アルゴリズムを可能ならしめるものである。
別の実施例として、LPHDR演算要素は、往々にして(あるいは常に)、正しい結果に対して0.1%以上離れた結果を生み出す。
別の実施例として、LPHDR演算要素は、往々にして(あるいは常に)、正しい結果に対して0 .2%以上離れた結果を生み出す。
更に、別の実施例として、LPHDR演算要素は、往々にして(あるいは常に)、正しい結果に対して0.5%以上離れた結果を生み出す。
更に、別の実施例として、LPHDR演算要素は、往々にして(あるいは常に)、正しい結果に対して1%、あるいは2%、あるいは5%、あるいは10%、あるいは20%以上離れた結果を生み出す。
に計算するようなケース)、入力値の特定のセットに対して生み出された出力値が決定論
的、あるいは非決定論的である場合について考えてみる。 このような例の実施例では、有効な入力と相対的な誤差の大きさEの比Fについて更に考える。 そして、このことによって、LPHDR演算要素によって計算される結果は、数学的に正しい結果とは異なったものとなる。 本発明のある実施例では、各LPHDR演算要素の各々において、LPHDR演算ユニットが実行できる少なくとも1回の処理に関するものであって、当該処理に対する許容できる有効な入力の少なくとも比Fに関して、当該処理によって生み出される少なくとも一つの出力信号に関して、繰り返し実行される演算の全体にわたって求めた統計的平均であって、処理が個々の入力に対して実行された時の、LPHDR演算ユニットの出力信号によって表される数値の統計的平均は、同じ入力値に対する正しい数学的計算結果に比べて、少なくともEだけ異なる。 ここで、Fは1%であり、Eは0.05%である。 いくつかの別の実施例では、Fは1%ではなく、2%、または5%、または10%、または20%、または50%の内のいずれかである。 これらの実施例の各々では、Fの値としていくつかの特定の値をとっており、Eの値として0.05%ではなく、0.1%、あるいは0.2%、あるいは0.5%、あるいは1%、あるいは2 %、あるいは5%、あるいは10%、あるいは20%のE値を有するその他の実施例がある。 これらの種々の実施例は、単に例示するものであり、本発明を限定するものではない。
そして、物理デバイスの中のLPHDR演算要素の数NL、および物理デバイスの中で従来の精度でハイ・ダイナミック・レンジの演算を実行するように設計された演算要素の数NHは、その物理デバイスの中の個々の演算要素の合計数になる。 本発明のある実施例は、一つ以上の物理的デバイスを含むコンピュータ・システムの中で実行される。 そして、このような物理的デバイスには、これらに限定するものではないが、シリコン・チップ、あるいはスタックされたチップ、あるいはチップ・パッケージ、あるいは回路ボードの集合体であって、互いに結合され、種々の手段(バス、スイッチ、いずれかの種類のネットワーク接続、あるいはその他の通信手段)を使って互いに通信し合うようになっているものがある。 そして、このケースでは、コンピュータ・システムの中のLPHDR演算要素の数NL、およびコンピュータ・システムの中で従来の精度でハイ・ダイナミック・レンジの演算を実行するように設計された演算要素の数NHは、これらの連結された全ての物理デバイスの中の個々の演算要素の合計数になる。
そしてこれは、異機種環境のプロセッサー・デザイン、あるいは異種環境のコンピュータ・システムとして言及されるものであり、これらの内のいくつか、あるいはこれらの全てのコンポーネントは、本発明の実施例と同じか、そのバリエーションに含まれるものである。
更に一般的には、プロセッサーという意味の範疇に入るか否かは別として、ここで開示した機能を実行するいずれかのデバイスまたはデバイスの組み合わせは、本発明の実施例に関する一例を構成するものである。
Claims (1)
- 複数の低精度ハイ・ダイナミック・レンジ(LPHDR)演算実行ユニットと、
少なくとも一の高精度演算実行ユニットであって、前記少なくとも一の高精度演算実行ユニットにより実行される計算の精度は、前記複数のLPHDR演算実行ユニットにより実行される計算の精度より高い、前記少なくとも一の高精度演算実行ユニットと、
前記複数のLPHDR演算実行ユニット及び前記少なくとも一の高精度演算実行ユニットが方法を実行するように制御する手段と、を備え、
前記方法は、
入力として複数のexampleベクトル及び一のtestベクトルを受信することと、
前記複数のexampleベクトルを記憶することと、
前記複数のLPHDR演算実行ユニットを用いて、
前記複数のexampleベクトルの中で前記一のtestベクトルに最も近い第1exampleベクトルを識別させ、
前記第1exampleベクトルの識別子を記憶させ、
前記複数のexampleベクトルの中で前記一のtestベクトルに2番目に近い第2exampleベクトルを識別させ、
前記第2exampleベクトルの識別子を記憶させることと、
前記少なくとも一の高精度演算実行ユニットを用いて、
前記testベクトル及び前記第1exampleベクトルの間の第1距離を計算させ、
前記testベクトル及び前記第2exampleベクトルの間の第2距離を計算させ、
前記第1距離及び前記第2距離のうち小さい方を識別させ、
前記第1exampleベクトル及び前記第2exampleベクトルのうちから、前記第1距離及び前記第2距離のうち小さい方に関連付けられたexampleベクトルを識別させ、
前記第1距離及び前記第2距離のうち小さい方に関連付けられた前記exampleベクトルを出力させることと、を含む、
デバイス。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21869109P | 2009-06-19 | 2009-06-19 | |
US61/218,691 | 2009-06-19 | ||
US12/816,201 US8150902B2 (en) | 2009-06-19 | 2010-06-15 | Processing with compact arithmetic processing element |
US12/816,201 | 2010-06-15 | ||
JP2020189077A JP7273018B2 (ja) | 2009-06-19 | 2020-11-13 | コンパクトな演算処理要素を用いたプロセッシング |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020189077A Division JP7273018B2 (ja) | 2009-06-19 | 2020-11-13 | コンパクトな演算処理要素を用いたプロセッシング |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023040014A true JP2023040014A (ja) | 2023-03-22 |
JP2023040014A5 JP2023040014A5 (ja) | 2023-03-29 |
Family
ID=43355205
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012516227A Pending JP2012530966A (ja) | 2009-06-19 | 2010-06-16 | コンパクトな演算処理要素を用いたプロセッシング |
JP2014077372A Active JP6184897B2 (ja) | 2009-06-19 | 2014-04-03 | コンパクトな演算処理要素を用いたプロセッシング |
JP2017144389A Active JP6371451B2 (ja) | 2009-06-19 | 2017-07-26 | コンパクトな演算処理要素を用いたプロセッシング |
JP2018132055A Active JP6599522B2 (ja) | 2009-06-19 | 2018-07-12 | コンパクトな演算処理要素を用いたプロセッシング |
JP2019182315A Active JP6796177B2 (ja) | 2009-06-19 | 2019-10-02 | コンパクトな演算処理要素を用いたプロセッシング |
JP2020189077A Active JP7273018B2 (ja) | 2009-06-19 | 2020-11-13 | コンパクトな演算処理要素を用いたプロセッシング |
JP2022200644A Pending JP2023040014A (ja) | 2009-06-19 | 2022-12-15 | コンパクトな演算処理要素を用いたプロセッシング |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012516227A Pending JP2012530966A (ja) | 2009-06-19 | 2010-06-16 | コンパクトな演算処理要素を用いたプロセッシング |
JP2014077372A Active JP6184897B2 (ja) | 2009-06-19 | 2014-04-03 | コンパクトな演算処理要素を用いたプロセッシング |
JP2017144389A Active JP6371451B2 (ja) | 2009-06-19 | 2017-07-26 | コンパクトな演算処理要素を用いたプロセッシング |
JP2018132055A Active JP6599522B2 (ja) | 2009-06-19 | 2018-07-12 | コンパクトな演算処理要素を用いたプロセッシング |
JP2019182315A Active JP6796177B2 (ja) | 2009-06-19 | 2019-10-02 | コンパクトな演算処理要素を用いたプロセッシング |
JP2020189077A Active JP7273018B2 (ja) | 2009-06-19 | 2020-11-13 | コンパクトな演算処理要素を用いたプロセッシング |
Country Status (8)
Country | Link |
---|---|
US (17) | US8150902B2 (ja) |
EP (2) | EP3410291A1 (ja) |
JP (7) | JP2012530966A (ja) |
KR (1) | KR101235997B1 (ja) |
CN (2) | CN105760135B (ja) |
BR (1) | BRPI1011808A2 (ja) |
CA (1) | CA2768731C (ja) |
WO (1) | WO2010148054A2 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8150902B2 (en) | 2009-06-19 | 2012-04-03 | Singular Computing Llc | Processing with compact arithmetic processing element |
US9285793B2 (en) * | 2010-10-21 | 2016-03-15 | Bluewireless Technology Limited | Data processing unit including a scalar processing unit and a heterogeneous processor unit |
US8971599B2 (en) * | 2010-12-20 | 2015-03-03 | General Electric Company | Tomographic iterative reconstruction |
CN102651121B (zh) * | 2011-02-23 | 2014-04-02 | 中国科学院声学研究所 | 一种基于fpga的3*3均值滤波算法的实现方法 |
US9553590B1 (en) * | 2012-10-29 | 2017-01-24 | Altera Corporation | Configuring programmable integrated circuit device resources as processing elements |
US9936579B2 (en) * | 2013-02-01 | 2018-04-03 | Apple Inc. | Low profile packaging and assembly of a power conversion system in modular form |
CN103647708A (zh) * | 2013-11-29 | 2014-03-19 | 曙光信息产业(北京)有限公司 | 基于atca的数据报文处理板 |
JP6381215B2 (ja) * | 2014-01-29 | 2018-08-29 | キヤノン株式会社 | 画像処理装置、画像処理方法、表示装置、表示装置の制御方法、及び、プログラム |
US10042813B2 (en) * | 2014-12-15 | 2018-08-07 | Intel Corporation | SIMD K-nearest-neighbors implementation |
CN105843586B (zh) * | 2016-04-02 | 2020-06-30 | 严发宝 | 一种高速数据采集实时加除计算实现方法 |
CN106126191B (zh) * | 2016-06-06 | 2018-07-31 | 大连大学 | 基于映射模块的16位加减法器的方法 |
US10007487B1 (en) | 2016-06-30 | 2018-06-26 | Altera Corporation | Double-precision floating-point operation |
CN106155814B (zh) * | 2016-07-04 | 2019-04-05 | 合肥工业大学 | 一种支持多种工作模式的可重构运算单元及其工作方式 |
CN107066706B (zh) * | 2017-03-27 | 2019-07-30 | 中国科学院计算技术研究所 | Gpu ffma指令在双发射模式下的通量测试方法 |
WO2018182742A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Computation unit composed of stacked resistive elements |
US10726514B2 (en) * | 2017-04-28 | 2020-07-28 | Intel Corporation | Compute optimizations for low precision machine learning operations |
US10621269B2 (en) | 2017-05-17 | 2020-04-14 | Google Llc | Performing matrix multiplication in hardware |
US20180357287A1 (en) * | 2017-06-10 | 2018-12-13 | ScaleFlux, Inc. | Hybrid software-hardware implementation of edit distance search |
US10289413B2 (en) * | 2017-10-02 | 2019-05-14 | Advanced Micro Devices, Inc. | Hybrid analog-digital floating point number representation and arithmetic |
US11216250B2 (en) * | 2017-12-06 | 2022-01-04 | Advanced Micro Devices, Inc. | Dynamic, variable bit-width numerical precision on field-programmable gate arrays for machine learning tasks |
CN108089958B (zh) * | 2017-12-29 | 2021-06-08 | 珠海市君天电子科技有限公司 | Gpu测试方法、终端设备和计算机可读存储介质 |
DE102018209901A1 (de) * | 2018-06-19 | 2019-12-19 | Robert Bosch Gmbh | Recheneinheit, Verfahren und Computerprogramm zum Multiplizieren zumindest zweier Multiplikanden |
CN110865882B (zh) * | 2018-08-28 | 2022-07-08 | 清华大学 | 数据处理方法、装置、计算机设备和存储介质 |
CN109840067B (zh) * | 2019-01-14 | 2021-04-20 | 中国人民解放军国防科技大学 | 一种基于数学近似的浮点程序精度缺陷修复方法 |
US11106430B1 (en) * | 2019-05-16 | 2021-08-31 | Facebook, Inc. | Circuit and method for calculating non-linear functions of floating-point numbers |
CN112732220A (zh) * | 2019-10-14 | 2021-04-30 | 安徽寒武纪信息科技有限公司 | 用于浮点运算的乘法器、方法、集成电路芯片和计算装置 |
US11514594B2 (en) | 2019-10-30 | 2022-11-29 | Vergence Automation, Inc. | Composite imaging systems using a focal plane array with in-pixel analog storage elements |
CN111104091B (zh) * | 2019-12-12 | 2021-11-26 | 北京科技大学 | 一种动态浮点误差分析中精度特定计算的检测和转换方法 |
CN111126587B (zh) * | 2019-12-30 | 2021-02-02 | 上海安路信息科技有限公司 | 交并比电路 |
US11709225B2 (en) * | 2020-06-19 | 2023-07-25 | Nxp B.V. | Compression of data employing variable mantissa size |
US11188304B1 (en) * | 2020-07-01 | 2021-11-30 | International Business Machines Corporation | Validating microprocessor performance |
Family Cites Families (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5346577B2 (ja) | 1974-03-25 | 1978-12-14 | ||
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
JPS5630322A (en) * | 1979-08-21 | 1981-03-26 | Toshiba Corp | D/a converter |
US4493048A (en) | 1982-02-26 | 1985-01-08 | Carnegie-Mellon University | Systolic array apparatuses for matrix computations |
JPS5952380A (ja) * | 1982-09-17 | 1984-03-26 | Victor Co Of Japan Ltd | 補間装置 |
US4583222A (en) | 1983-11-07 | 1986-04-15 | Digital Equipment Corporation | Method and apparatus for self-testing of floating point accelerator processors |
US4985832A (en) | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
US5170484A (en) * | 1986-09-18 | 1992-12-08 | Digital Equipment Corporation | Massively parallel array processing system |
FR2604270B1 (fr) * | 1986-09-22 | 1991-10-18 | Jutand Francis | Additionneur binaire comportant un operande fixe, et multiplieur binaire parallele-serie comprenant un tel additionneur |
US4933895A (en) | 1987-07-10 | 1990-06-12 | Hughes Aircraft Company | Cellular array having data dependent processing capabilities |
JPH01183732A (ja) | 1988-01-18 | 1989-07-21 | Daikin Ind Ltd | 浮動小数点数から整数への変換装置および変換方法 |
US5153848A (en) * | 1988-06-17 | 1992-10-06 | Bipolar Integrated Technology, Inc. | Floating point processor with internal free-running clock |
WO1990005335A1 (en) | 1988-11-04 | 1990-05-17 | Hitachi, Ltd. | Apparatus for multiplication, division and extraction of square root |
JP2765882B2 (ja) * | 1988-11-14 | 1998-06-18 | 株式会社日立製作所 | 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置 |
US5226166A (en) * | 1989-02-10 | 1993-07-06 | Mitsubishi Denki K.K. | Parallel operation processor with second command unit |
US5293500A (en) * | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
JPH0314128A (ja) | 1989-06-13 | 1991-01-22 | Tomio Kurokawa | 対数表現数値利用の演算装置 |
DE4002501A1 (de) * | 1990-01-29 | 1991-08-01 | Thomson Brandt Gmbh | Verfahren zur umwandlung von digitalen signalen in analoge signale |
JP2605916B2 (ja) | 1990-03-19 | 1997-04-30 | ヤマハ株式会社 | 波形信号発生装置 |
DE69130519T2 (de) * | 1990-06-29 | 1999-06-10 | Digital Equipment Corp., Maynard, Mass. | Hochleistungsfähiger Multiprozessor mit Gleitkommaeinheit und Verfahren zu seinem Betrieb |
JP2597736B2 (ja) * | 1990-07-17 | 1997-04-09 | 株式会社東芝 | 高速乗算器 |
US5966528A (en) * | 1990-11-13 | 1999-10-12 | International Business Machines Corporation | SIMD/MIMD array processor with vector processing |
WO1993011503A1 (en) * | 1991-12-06 | 1993-06-10 | Norman Richard S | Massively-parallel direct output processor array |
JP2647327B2 (ja) * | 1992-04-06 | 1997-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 大規模並列コンピューティング・システム装置 |
US5790834A (en) | 1992-08-31 | 1998-08-04 | Intel Corporation | Apparatus and method using an ID instruction to identify a computer microprocessor |
EP0632369A1 (en) | 1993-06-29 | 1995-01-04 | Stichting voor de Technische Wetenschappen | CORDIC algorithms and architectures |
US5623616A (en) | 1993-07-22 | 1997-04-22 | Hewlett-Packard Company | Floating point operaton throughput control |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
US5375084A (en) | 1993-11-08 | 1994-12-20 | International Business Machines Corporation | Selectable interface between memory controller and memory simms |
US5442577A (en) | 1994-03-08 | 1995-08-15 | Exponential Technology, Inc. | Sign-extension of immediate constants in an alu |
JPH0877282A (ja) | 1994-09-09 | 1996-03-22 | Radic:Kk | アナログ演算回路 |
US5631859A (en) * | 1994-10-27 | 1997-05-20 | Hewlett-Packard Company | Floating point arithmetic unit having logic for quad precision arithmetic |
US5581485A (en) | 1994-12-08 | 1996-12-03 | Omni Microelectronics, Inc. | Analog vector distance measuring and vector quantization architecture |
US5689677A (en) | 1995-06-05 | 1997-11-18 | Macmillan; David C. | Circuit for enhancing performance of a computer for personal use |
JP3405864B2 (ja) | 1995-09-12 | 2003-05-12 | 富士通株式会社 | 演算装置、相関演算装置、動画像圧縮装置、ずれ検出方法およびずれ検出装置 |
US5943242A (en) * | 1995-11-17 | 1999-08-24 | Pact Gmbh | Dynamically reconfigurable data processing system |
US5666071A (en) | 1995-12-01 | 1997-09-09 | Advanced Micro Devices, Inc. | Device and method for programming high impedance states upon select input/output pads |
JP2806346B2 (ja) * | 1996-01-22 | 1998-09-30 | 日本電気株式会社 | 演算処理装置 |
US6018232A (en) | 1996-02-27 | 2000-01-25 | Fujitsu Limited | Method of operating battery powered computing device with radio transmitter |
US5892962A (en) * | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
US5887160A (en) * | 1996-12-10 | 1999-03-23 | Fujitsu Limited | Method and apparatus for communicating integer and floating point data over a shared data path in a single instruction pipeline processor |
US6065209A (en) | 1997-05-23 | 2000-05-23 | S-Cal Research Corp. | Method of fabrication, tooling and installation of downhole sealed casing connectors for drilling and completion of multi-lateral wells |
US6023753A (en) * | 1997-06-30 | 2000-02-08 | Billion Of Operations Per Second, Inc. | Manifold array processor |
US5867693A (en) | 1997-07-03 | 1999-02-02 | Modern Video Technology, Inc. | Extended resolution phase measurement |
JPH11212763A (ja) * | 1998-01-30 | 1999-08-06 | Denso Corp | 電子制御装置 |
EP0936570B1 (en) | 1998-02-17 | 2007-03-07 | Anadec GmbH | Method and electronic circuit for signal processing, in particular for the computation of probability distributions |
US6173388B1 (en) * | 1998-04-09 | 2001-01-09 | Teranex Inc. | Directly accessing local memories of array processors for improved real-time corner turning processing |
US6065029A (en) | 1998-05-26 | 2000-05-16 | N*Able Technologies, Inc. | Method and system for providing a random number generator |
US6650327B1 (en) | 1998-06-16 | 2003-11-18 | Silicon Graphics, Inc. | Display system having floating point rasterization and floating point framebuffering |
US6226737B1 (en) * | 1998-07-15 | 2001-05-01 | Ip-First, L.L.C. | Apparatus and method for single precision multiplication |
JP4324327B2 (ja) * | 1998-09-10 | 2009-09-02 | 株式会社エッチャンデス | 視覚装置 |
JP2969115B1 (ja) * | 1998-11-25 | 1999-11-02 | 株式会社日立製作所 | 半導体装置 |
US6622135B1 (en) | 1998-12-29 | 2003-09-16 | International Business Machines Corporation | Method for detecting and classifying anomalies using artificial neural networks |
US7242414B1 (en) * | 1999-07-30 | 2007-07-10 | Mips Technologies, Inc. | Processor having a compare extension of an instruction set architecture |
JP2001043385A (ja) * | 1999-05-25 | 2001-02-16 | Ecchandesu:Kk | 多帯域動画像中の移動物体のエッジ情報生成装置及び多帯域動画像中の移動物体のエッジ情報生成方法 |
US7346643B1 (en) | 1999-07-30 | 2008-03-18 | Mips Technologies, Inc. | Processor with improved accuracy for multiply-add operations |
US6675292B2 (en) | 1999-08-13 | 2004-01-06 | Sun Microsystems, Inc. | Exception handling for SIMD floating point-instructions using a floating point status register to report exceptions |
JP2001184335A (ja) | 1999-12-24 | 2001-07-06 | Kanazawa Inst Of Technology | プログラマブル・ディジタル演算icとそのプログラマブル・ディジタル演算icを用いた装置ならびにそのプログラマブル・ディジタル演算icの製造方法 |
US6647507B1 (en) | 1999-12-31 | 2003-11-11 | Intel Corporation | Method for improving a timing margin in an integrated circuit by setting a relative phase of receive/transmit and distributed clock signals |
GB2370381B (en) * | 2000-12-19 | 2003-12-24 | Picochip Designs Ltd | Processor architecture |
FI113714B (fi) | 2000-12-28 | 2004-05-31 | Ari Paasio | Prosessori, piiri ja menetelmä kuvien käsittelemiseksi rinnakkaisprosessoriverkossa |
JP3949915B2 (ja) * | 2001-07-05 | 2007-07-25 | 日本電信電話株式会社 | 空間変換に基づく楕円体問合せ方法および装置と空間変換に基づく楕円体問合せプログラムおよび該プログラムを記録した記録媒体 |
US6941334B2 (en) | 2002-02-01 | 2005-09-06 | Broadcom Corporation | Higher precision divide and square root approximations |
US6920574B2 (en) | 2002-04-29 | 2005-07-19 | Apple Computer, Inc. | Conserving power by reducing voltage supplied to an instruction-processing portion of a processor |
US7234169B2 (en) | 2002-04-29 | 2007-06-19 | The Boeing Company | Method and apparatus for integrating and monitoring key digital cinema system components as a means to verify system integrity |
US6600222B1 (en) | 2002-07-17 | 2003-07-29 | Intel Corporation | Stacked microelectronic packages |
CN1265281C (zh) * | 2002-07-29 | 2006-07-19 | 矽统科技股份有限公司 | 浮点数的对数运算方法和装置 |
US7133772B2 (en) | 2002-07-30 | 2006-11-07 | Global Locate, Inc. | Method and apparatus for navigation using instantaneous Doppler measurements from satellites |
US7194615B2 (en) * | 2002-09-17 | 2007-03-20 | Nokia Corporation | Reconfigurable apparatus being configurable to operate in a logarithmic scale |
US7209867B2 (en) | 2002-10-15 | 2007-04-24 | Massachusetts Institute Of Technology | Analog continuous time statistical processing |
US7243333B2 (en) * | 2002-10-24 | 2007-07-10 | International Business Machines Corporation | Method and apparatus for creating and executing integrated executables in a heterogeneous architecture |
JP4184921B2 (ja) * | 2002-11-06 | 2008-11-19 | 松下電器産業株式会社 | 確率型演算素子 |
US20070124565A1 (en) * | 2003-06-18 | 2007-05-31 | Ambric, Inc. | Reconfigurable processing array having hierarchical communication network |
US7669035B2 (en) | 2004-01-21 | 2010-02-23 | The Charles Stark Draper Laboratory, Inc. | Systems and methods for reconfigurable computing |
JP3845636B2 (ja) | 2004-01-21 | 2006-11-15 | 株式会社東芝 | 関数近似値の演算器 |
US7779177B2 (en) * | 2004-08-09 | 2010-08-17 | Arches Computing Systems | Multi-processor reconfigurable computing system |
US7225323B2 (en) * | 2004-11-10 | 2007-05-29 | Nvidia Corporation | Multi-purpose floating point and integer multiply-add functional unit with multiplication-comparison test addition and exponent pipelines |
US7446773B1 (en) * | 2004-12-14 | 2008-11-04 | Nvidia Corporation | Apparatus, system, and method for integrated heterogeneous processors with integrated scheduler |
JP4547668B2 (ja) * | 2004-12-24 | 2010-09-22 | カシオ計算機株式会社 | 動き補償予測符号化装置及び動き補償予測符号化方法 |
US20070247189A1 (en) * | 2005-01-25 | 2007-10-25 | Mathstar | Field programmable semiconductor object array integrated circuit |
US7921425B2 (en) | 2005-03-14 | 2011-04-05 | Cisco Technology, Inc. | Techniques for allocating computing resources to applications in an embedded system |
EP1724823A3 (fr) | 2005-05-11 | 2009-09-09 | Stmicroelectronics Sa | Procédé de connexion d'une microplaquette de semi-conducteur sur un support d'interconnexion |
JP2006350907A (ja) * | 2005-06-20 | 2006-12-28 | Ricoh Co Ltd | Simd型マイクロプロセッサ、データ転送装置、及びデータ変換装置 |
US7863778B2 (en) | 2005-07-25 | 2011-01-04 | Arm Limited | Power controlling integrated circuit cell |
US7856618B2 (en) | 2005-08-04 | 2010-12-21 | International Business Machines Corporation | Adaptively generating code for a computer program |
US7512282B2 (en) | 2005-08-31 | 2009-03-31 | International Business Machines Corporation | Methods and apparatus for incremental approximate nearest neighbor searching |
US7301436B1 (en) | 2005-11-14 | 2007-11-27 | National Semiconductor Corporation | Apparatus and method for precision trimming of integrated circuits using anti-fuse bond pads |
US8595279B2 (en) | 2006-02-27 | 2013-11-26 | Qualcomm Incorporated | Floating-point processor with reduced power requirements for selectable subprecision |
JP4413198B2 (ja) * | 2006-03-23 | 2010-02-10 | 富士通株式会社 | 浮動小数点データの総和演算処理方法及びコンピュータシステム |
US7912887B2 (en) | 2006-05-10 | 2011-03-22 | Qualcomm Incorporated | Mode-based multiply-add recoding for denormal operands |
WO2008027567A2 (en) * | 2006-09-01 | 2008-03-06 | Brightscale, Inc. | Integral parallel machine |
JP4461135B2 (ja) | 2006-12-25 | 2010-05-12 | 富士通株式会社 | 演算回路及び演算方法並びに情報処理装置 |
US8421794B2 (en) * | 2007-03-23 | 2013-04-16 | Qualcomm Incorporated | Processor with adaptive multi-shader |
US8463835B1 (en) | 2007-09-13 | 2013-06-11 | Xilinx, Inc. | Circuit for and method of providing a floating-point adder |
US8258410B2 (en) | 2008-01-26 | 2012-09-04 | International Business Machines Corporation | Construction of reliable stacked via in electronic substrates—vertical stiffness control method |
CN101334766B (zh) * | 2008-06-30 | 2011-05-11 | 东软飞利浦医疗设备系统有限责任公司 | 一种并行微处理器及其实现方法 |
US20100114871A1 (en) * | 2008-10-31 | 2010-05-06 | University Of Southern California | Distance Quantization in Computing Distance in High Dimensional Space |
US7746104B1 (en) * | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Dynamically controlled output multiplexer circuits in a programmable integrated circuit |
US7746108B1 (en) * | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Compute-centric architecture for integrated circuits |
US8150902B2 (en) | 2009-06-19 | 2012-04-03 | Singular Computing Llc | Processing with compact arithmetic processing element |
-
2010
- 2010-06-15 US US12/816,201 patent/US8150902B2/en active Active
- 2010-06-16 WO PCT/US2010/038769 patent/WO2010148054A2/en active Application Filing
- 2010-06-16 CA CA2768731A patent/CA2768731C/en active Active
- 2010-06-16 JP JP2012516227A patent/JP2012530966A/ja active Pending
- 2010-06-16 EP EP18177602.2A patent/EP3410291A1/en active Pending
- 2010-06-16 KR KR1020127001525A patent/KR101235997B1/ko active IP Right Grant
- 2010-06-16 EP EP10790095A patent/EP2443551A4/en not_active Ceased
- 2010-06-16 CN CN201610080760.7A patent/CN105760135B/zh active Active
- 2010-06-16 CN CN201080036873.8A patent/CN102576304B/zh active Active
- 2010-06-16 BR BRPI1011808A patent/BRPI1011808A2/pt not_active Application Discontinuation
-
2012
- 2012-02-17 US US13/399,884 patent/US8407273B2/en active Active
-
2013
- 2013-03-25 US US13/849,606 patent/US9218156B2/en active Active
-
2014
- 2014-04-03 JP JP2014077372A patent/JP6184897B2/ja active Active
-
2015
- 2015-12-21 US US14/976,852 patent/US9792088B2/en active Active
-
2017
- 2017-07-26 JP JP2017144389A patent/JP6371451B2/ja active Active
- 2017-10-16 US US15/784,359 patent/US10120648B2/en active Active
-
2018
- 2018-07-12 JP JP2018132055A patent/JP6599522B2/ja active Active
- 2018-10-30 US US16/175,131 patent/US10416961B2/en active Active
-
2019
- 2019-09-16 US US16/571,871 patent/US10664236B2/en active Active
- 2019-10-02 JP JP2019182315A patent/JP6796177B2/ja active Active
- 2019-11-06 US US16/675,693 patent/US10656912B2/en active Active
-
2020
- 2020-05-25 US US16/882,694 patent/US11169775B2/en active Active
- 2020-05-25 US US16/882,686 patent/US10754616B1/en active Active
- 2020-09-23 US US17/029,780 patent/US11768659B2/en active Active
- 2020-11-13 JP JP2020189077A patent/JP7273018B2/ja active Active
-
2021
- 2021-07-02 US US17/367,051 patent/US11327714B2/en active Active
- 2021-07-02 US US17/367,071 patent/US11327715B2/en active Active
- 2021-07-02 US US17/367,097 patent/US11354096B2/en active Active
-
2022
- 2022-12-02 US US18/073,972 patent/US11842166B2/en active Active
- 2022-12-15 JP JP2022200644A patent/JP2023040014A/ja active Pending
-
2023
- 2023-01-26 US US18/102,020 patent/US11768660B2/en active Active
- 2023-12-08 US US18/533,372 patent/US20240103806A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7273018B2 (ja) | コンパクトな演算処理要素を用いたプロセッシング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230317 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240118 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240417 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240617 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240717 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240903 |