Movatterモバイル変換


[0]ホーム

URL:


JP2016057831A - 浮動小数点演算装置、及び情報処理システム - Google Patents

浮動小数点演算装置、及び情報処理システム
Download PDF

Info

Publication number
JP2016057831A
JP2016057831AJP2014183508AJP2014183508AJP2016057831AJP 2016057831 AJP2016057831 AJP 2016057831AJP 2014183508 AJP2014183508 AJP 2014183508AJP 2014183508 AJP2014183508 AJP 2014183508AJP 2016057831 AJP2016057831 AJP 2016057831A
Authority
JP
Japan
Prior art keywords
input
output
arithmetic
register
result
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
Application number
JP2014183508A
Other languages
English (en)
Inventor
前田 誠司
Seiji Maeda
誠司 前田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba CorpfiledCriticalToshiba Corp
Priority to JP2014183508ApriorityCriticalpatent/JP2016057831A/ja
Priority to US14/643,279prioritypatent/US9600234B2/en
Publication of JP2016057831ApublicationCriticalpatent/JP2016057831A/ja
Pendinglegal-statusCriticalCurrent

Links

Images

Classifications

Landscapes

Abstract

【課題】浮動小数点演算の演算結果と演算精度情報を同時に取得する区間演算とSIMD演算を切り替えて実行可能な浮動小数点演算装置を提供する。
【解決手段】実施形態の浮動小数点演算装置は、第1の入力データが入力され、設定された第1の丸めモードで第1の演算を実行する演算器11と、第2の入力データが入力され、設定された第2の丸めモードで第2の演算を実行する演算器12と、第1の演算の第1の演算結果に第2の演算の第2の演算結果を加算して得られた第1の値を1/2にした第1の出力と、第1の演算結果と、を選択的に出力可能な第1の出力回路と、第1の演算結果から第2の演算結果を減算して得られた第2の値を1/2にした第2の出力と、第2の演算結果と、を選択的に出力可能な第2の出力回路とを有する。
【選択図】図2

Description

本発明の実施形態は、浮動小数点演算装置及び情報処理システムに関する。
従来より、計算機において実数演算を近似的に行う浮動小数点演算が用いられている。浮動小数点演算では、実数を浮動小数点数に近似して表現し、事前に指定した丸めモードに従って演算結果を浮動小数点数に近似する。IEEE754において5種類の丸めモードが定義されており、例えば以下の2種の丸めモードが定義されている。一つは、上向きの丸め(rounding up)モードであり、もう一つは、下向きの丸め(rounding down)モードである。
上向きの丸めモードでは、演算結果を、演算結果以上の浮動小数点数の中で、最も小さい浮動小数点数に近似する処理が行われる。以下、上向きの丸め処理を△と表記する。下向きの丸めモードでは、演算結果を、演算結果以下の浮動小数点数の中で、最も大きい浮動小数点数に近似する処理が行われる。以下、下向きの丸め処理を▽と表記する。
これらの丸めモードで実行できる浮動小数点演算器が実現されているが、演算後に演算精度を取得できないという問題があった。
それに対し、浮動小数点演算を用いて演算精度を取得できる、機械区間演算と呼ばれる演算が提案されている。機械区間演算は、下限値と上限値の組で表現される機械区間を用いる。機械区間とは次の式(1)のように定義される。
Figure 2016057831
また、機械区間[x]より、中心値xと誤差半径rを次の式(2)と式(3)のように求めることができる。
Figure 2016057831
Figure 2016057831
例えば、中心値xを演算結果の近似値あるいは真値として採用し、誤差半径rを演算結果の精度評価に用いることができる。
また、四則演算は、次の式(4)から式(7)のように定義される。
Figure 2016057831
Figure 2016057831
Figure 2016057831
Figure 2016057831
これら四則演算を実現する演算器も提案されている。
また、各要素が機械区間で構成されるベクトルXとYの内積Σ[x]×[y]は、次の式(8)のように計算することができる。
Figure 2016057831
一方、従来、複数データに対し同一演算を同時に行うSIMD (Single Instruction Multiple Data)演算器が用いられており、大量データを高速演算することが実現されている。SIMD演算器を構成する各演算器に浮動小数点演算器を用いれば、SIMD浮動小数点演算器を実現することができる。しかし、演算後に演算精度を取得できないという問題があった。
特開2004−5395号公報
そこで、実施形態は、浮動小数点演算の演算結果と演算精度情報を同時に取得する区間演算と、SIMD演算とを切り替えて実行可能な浮動小数点演算装置及び情報処理システムを提供することを目的とする。
実施形態によれば、第1の入力データが入力され、設定された第1の丸めモードで第1の演算を実行する第1の演算器と、第2の入力データが入力され、設定された第2の丸めモードで第2の演算を実行する第2の演算器と、を備え、前記第1の演算器は、前記第1の演算の第1の演算結果に前記第2の演算の第2の演算結果を加算して得られた第1の値を1/2にした第1の出力と、前記第1の演算結果と、を選択的に出力可能な第1の出力回路を有し、前記第2の演算器は、前記第1の演算結果から前記第2の演算結果を減算して得られた第2の値を1/2にした第2の出力と、前記第2の演算結果と、を選択的に出力可能な第2の出力回路を有する浮動小数点演算装置が提供される。
第1の実施形態に関わるデータ処理装置1のブロック図である。第1の実施形態に関わる浮動小数点演算装置2の構成を示すブロック図である。第1の実施形態に関わる演算器11と12の回路図である。第2の実施形態に関わる、データ処理装置における浮動小数点演算装置2Aのブロック図である。第2の実施形態に関わる、演算アレイ41の各演算ノード52の構成を示すブロック図である。第2の実施形態に関わる入力制御器63、64の回路図である。第2の実施形態に関わる出力制御器65、66の回路図である。第2の実施形態の浮動小数点演算装置を有する情報処理システムの構成を示すブロック図である。
以下、図面を参照して実施形態を説明する。
(第1の実施形態)
(構成)
図1は、本実施形態に係わるデータ処理装置のブロック図である。データ処理装置1は、1つあるいは2以上の半導体装置からなるプロセッサであり、入力されたデータに対して所定の演算処理を実行して、演算結果を出力する。
データ処理装置1は、浮動小数点演算装置2と、主記憶装置3と、入出力装置4と、相互接続網5とで構成されている。浮動小数点演算装置2、主記憶装置3及び入出力装置4は、相互接続網5を介して互いにデータのやりとりが出来る。
浮動小数点演算装置2は、機械区間演算(以下、区間演算という)とSIMD演算とを切り替えて実行可能である。ここでは、2つのベクトルの内積の演算結果と演算精度情報とが同時に取得される区間演算を実行可能な浮動小数点演算装置について説明する。
浮動小数点演算装置2は、入力されたデータに対して浮動小数点演算を行う回路である。
主記憶装置3は、入力データ及び出力データを一時的に記憶する。
入出力装置4は、図示しない外部装置からのデータを入力し、その外部装置へデータを出力するためのインターフェース回路である。
入出力装置4を介して入力されたデータは、主記憶装置3に記憶される。浮動小数点演算装置2は、入力されたデータに対して所定の演算を実行して、演算結果を主記憶装置3に記憶する。演算結果データは、入出力装置4を介して外部装置へ出力される。
図2は、浮動小数点演算装置2の構成を示すブロック図である。浮動小数点演算装置2は、2つの演算器11,12と、制御器13と、インターフェース14と、4つの入力レジスタ15〜18と、2つの出力レジスタ19,20と、2つのマルチプレクサ(図中、MUXで示す)21,22とを含む。
インターフェース14は、相互接続網5を介して入力データを入力して、入力レジスタ15〜18へ出力する。入力レジスタ15、16には、第1の入力データが入力される。入力レジスタ17、18には、第2の入力データが入力される。インターフェース14は、出力レジスタ19と20からの出力データを入力して、相互接続網5へ出力する。
制御器13は、インターフェース14を介して入力されたコマンドに応じて、2つの演算器11,12と、2つのマルチプレクサ21,22へ制御信号を出力する。制御器13は、入力レジスタ15〜18からの入力データに対して所定の演算を実行するように、浮動小数点演算装置2内の各回路を制御する。
マルチプレクサ21は、入力レジスタ15と17からデータを入力し、制御信号に基づいて選択されたデータを、演算器12へ出力する。
マルチプレクサ22は、入力レジスタ16と18からデータを入力し、制御信号に基づいて選択されたデータを、演算器12へ出力する。
演算器11は、入力レジスタ15、16、演算器12及び制御器13からデータを入力し、演算結果を出力レジスタ19と演算器12に出力する。演算器12は、マルチプレクサ21、22、演算器11及び制御器13からデータを入力し、演算結果を出力レジスタ20と演算器11に出力する。
特に、本実施形態の浮動小数点演算装置2では、演算器11の演算結果が演算器12へ入力され、演算器12の演算結果が演算器11へ入力される。
以下、入力レジスタ15、16、17、18に格納される入力データを、それぞれ入力A0,B0,A1,B1とし、出力レジスタ19と20に格納される出力データを、それぞれ出力S0,S1という。
浮動小数点演算装置2は、区間演算モードとSIMD演算モードを有している。演算モードは、入出力装置4を介して外部から指定されたり、実行する演算プログラムにおいて指定される。
区間演算モードの際には、入力レジスタ15に入力A0が、入力レジスタ16に入力B0が、入力される。入力データは、マルチプレクサ21と22を介して演算器11、12に入力される。すなわち、演算器11、12では、同一入力データの演算が行われる。演算器11は、中心値である出力S0を出力レジスタ19へ出力し、演算器12は、誤差半径である出力S1を出力レジスタ20へ出力する。
なお、区間演算モードのとき、マルチプレクサ21と22を用いず、入力レジスタ17に入力レジスタ15と同一の入力A0を、入力レジスタ18に入力レジスタ18と同一の入力B0を、入力するようにしても良い。
SIMD演算モードの際には、入力レジスタ15と16にそれぞれ入力A0および入力B0が入力され、入力レジスタ17と18にそれぞれ入力A1と入力B1が入力される。すなわち、入力A0と入力B0が演算器11に入力され、入力A1と入力B1が演算器12に入力され、演算器11、12は所定の演算を実行する。演算器11は入力A0、B0の演算結果である出力S0を出力レジスタ19に出力し、演算器12は入力A1、B1の演算結果である出力S1を出力レジスタ20に出力する。
なお、2つの演算器11と12は、同じ演算を実行してもよいし、互いに異なる演算を実行するようにしてもよい。
図3は、演算器11、12の回路図である。各演算器11,12は、乗算器(図中、×で示す)31と、マルチプレクサ(図中、MUXで示す)32と、加減算器(図中、+で示す)33と、1/2器34と、マルチプレクサ(図中、MUXで示す)35と、レジスタ36により構成される。
乗算器31の入力端には、2つの入力データが入力され、乗算結果はマルチプレクサ32の1つの入力端に入力される。また、マルチプレクサ32の他の入力端には、他の演算器の出力データが入力される。
具体的には、演算器11のマルチプレクサ32には、演算器12のレジスタ36のレジスタ値である出力S1が入力される。演算器12のマルチプレクサ32には、演算器11のレジスタ36のレジスタ値である出力S0も入力される。
加減算器33の入力端には、マルチプレクサ32の出力及びレジスタ36の出力が入力される。1/2器34の入力端には、加減算器33の出力が入力される。マルチプレクサ35の入力端には、加減算器33の出力及び1/2器34の出力が入力される。レジスタ36の入力端には、マルチプレクサ35の出力が入力される。
乗算器31と加減算器33は、少なくとも2種の丸めモード(上向き、下向き)に応じた演算機能を備える。丸めモードの指定は、乗算器31と加減算器33への制御信号(点線で示す)により行われる。
よって、演算器11は、設定された第1の丸めモードで、第1の入力データに対し第1の演算処理を実行する第1の演算器を構成し、演算器12は、設定された第2の丸めモードで、第2の入力データに対し第2の演算処理を実行する第2の演算器を構成する。
区間演算モードのときは、演算器11は上向きの丸めモードで処理を行い、演算器12は、下向きの丸めモードで処理を行う。
SIMD演算モードのときは、演算器11と演算器12は共に、上向きの丸めモード又は下向きの丸めモードのいずれかの同じ処理を行う。
また、マルチプレクサ32、35の入力の選択も、制御信号(点線で示す)により行われる。レジスタ36の初期化も制御信号(点線で示す)により行われる。
よって、演算器11の加減算器33と1/2器34は、加減算器33の演算結果に演算器12の演算結果を加算して得られた値を1/2にした第1の出力と、演算器11の加減算器33の演算結果と、を選択的に出力可能な第1の出力回路を構成する。演算器12の加減算器33と1/2器34は、演算器11の加減算器33の演算結果から演算器12の加減算器33の演算結果を減算して得られた値を1/2にした第2の出力と、演算器12の加減算器33の演算結果と、を選択的に出力可能な第2の出力回路を構成する。
そして、演算器11は、演算器である乗算器31の演算結果を入力して累積加算する加減算器33と、加減算器33により累積加算して得られた加算値を格納するレジスタ36と、乗算器31の演算結果と演算器12のレジスタ36のレジスタ値とを選択的に切り替えて、加減算器33へ入力する選択回路としてのマルチプレクサ32を有する。
演算器12は、演算器である乗算器31の演算結果を入力して累積加算する加減算器33と、加減算器33により累積加算して得られた加算値を格納するレジスタ36と、乗算器31の演算結果と演算器11のレジスタ36のレジスタ値とを選択的に切り替えて、加減算器33へ入力する選択回路としてのマルチプレクサ32を有する。
さらに、演算器11の第1の出力回路は、1/2回路である1/2器34の出力と、加減算器33の演算結果とを選択的に切り替えて、レジスタ36へ出力する選択回路であるマルチプレクサ35を有する。
演算器12の第2の出力回路は、1/2回路である1/2器34の出力と、加減算器33の演算結果とを選択的に切り替えて、レジスタ36へ出力する選択回路であるマルチプレクサ35を有する。
(動作)
データ処理装置1は、区間演算とSIMD演算の両方が実行可能である。区間演算モードが設定されると区間演算が実行され、SIMD演算モードが設定されるとSIMD演算が実行される。
次に、区間演算モード時とSIMD演算モード時の動作を説明する。
a.区間演算に基づく内積の演算
はじめに、区間演算モード時の浮動小数点演算装置2の動作を説明する。ここでは、2つのベクトルX,Yの内積演算を例として、区間演算を説明する。
a1)データ処理装置1が区間演算モードに設定されると、浮動小数点演算装置2では、一方の演算器の乗算器31と加減算器33は上向きの丸めモードに、他方の演算器の乗算器31と加減算器33は下向きの丸めモードに設定される。ここでは、演算器11の乗算器31と加減算器33が上向きの丸めモードに設定され、演算器12の乗算器31と加減算器33が下向きの丸めモードに設定されるとする。
a2)制御器13は、演算器11、12において、加減算器33の入力として乗算器31の出力が選択されるようにマルチプレクサ32を制御する。
a3)制御器13は、演算器11、12において、レジスタ36の入力として加減算器33の出力が選択されるようにマルチプレクサ35を制御する。
a4)制御器13は、演算器11、12のレジスタ36を初期化する。
a5)次に、2つのベクトルX,Yの各要素について、以下の処理が実行される。
a5-1)まず、入力レジスタ15に入力A0として、ベクトルXの要素が入力される。入力レジスタ16に入力B0として、ベクトルYの要素が入力される。
a5-2)演算器11、12の乗算器31において、入力A0、B0の乗算が実行される。
a5-3)演算器11、12の加減算器33において、乗算器31の乗算結果とレジスタ36のレジスタ値の加算が実行される。
a5-4)加減算器33の加減算結果が、レジスタ36に格納される。
以上のa5-1〜a5-4の処理が2つのベクトルX,Yの全要素について実行される。演算器11は、ベクトルX,Yの上向きの丸め処理がされた内積値を出力し、演算器12は、ベクトルX,Yの下向きの丸め処理がされた内積値を出力する。
すなわち、上述した式(8)により示されるベクトルXとベクトルYの内積値が出力される。演算器11のレジスタ36のレジスタ値は、2つのベクトルX,Yの内積についての区間演算の上限値である。演算器12のレジスタ36のレジスタ値は、2つのベクトルX,Yの内積についての区間演算の下限値である。
a6)2つのベクトルX,Yの全要素について実行された後、制御器13は、演算器11、12において、加減算器33の入力として他方の演算器の演算結果が選択されるように、マルチプレクサ32を制御する。加減算器33への入力は、演算器11の場合、演算器12の出力であり、演算器12の場合、演算器11の出力である。
a7)さらに、制御器13は、演算器11、12において、レジスタ36の入力として1/2器34の出力が選択されるように、マルチプレクサ35を制御する。
a8)演算器11の加減算器33は、レジスタ36のレジスタ値と、演算器12の出力値とを加算する。
a9)演算器12の加減算器33は、演算器11の出力値から、レジスタ36のレジスタ値を減算する。
a10)演算器11の加減算器33は、区間演算の上限値と下限値の和を1/2器34に出力する。演算器11のレジスタ36には、1/2器34の出力である区間演算の中心値が格納される。
a11)演算器12の加減算器33は、区間演算の上限値と下限値の差を1/2器34に出力する。演算器12のレジスタ36には、区間演算の演算精度情報の一つで1/2器34の出力である区間演算の半径が格納される。
以上のように、浮動小数点演算装置2は、区間演算モードでは2つの演算器を用いて、区間演算の演算結果と演算精度情報とを出力する。
b.SIMD演算に基づく内積の演算
次に、SIMD演算モード時の浮動小数点演算装置2の動作を説明する。ここでは、ベクトルX,Yの内積演算を2つ実行するSIMD演算を説明する。
b1)データ処理装置1がSIMD演算モードに設定されると、制御器13は、演算器11、12の乗算器31と加減算器33を同一丸めモードに設定する。すなわち、制御器13は、演算器11と12の両方を、上向き又は下向きの同じモードに設定する。ここでは、丸めモードが上向きに設定されるとする。
b2)制御器13は、演算器11、12において、加減算器33の入力として乗算器31の出力が選択されるように、マルチプレクサ32を制御する。
b3)制御器13は、演算器11、12において、レジスタ36の入力として加減算器33の出力が選択されるように、マルチプレクサ35を制御する。
b4)そして、制御器13は、両演算器11と12のレジスタ36を初期化する。
b5)次に、ベクトルX0とベクトルY0の各要素及びベクトルX1とベクトルY1の各要素について、以下の処理が実行される。
b5-1)まず、制御器13が、インターフェース14を制御して、ベクトルX0の要素をレジスタ15に入力し、ベクトルY0の要素をレジスタ16に入力し、ベクトルX1の要素をレジスタ17に入力し、ベクトルY1の要素をレジスタ18に入力する。
b5-2)演算器11の乗算器31において入力A0、B0の乗算が実行され、演算器12の乗算器31において入力A1、B1の乗算が実行される。
b5-3)演算器11、12の加減算器33において、乗算器31の乗算結果とレジスタ36のレジスタ値の加算が実行される。
b5-4)演算器11、12の加減算器33の加算結果が、それぞれのレジスタ36に格納される。
以上のb-1〜b-5の処理が、ベクトルX0とベクトルY0の各要素及びベクトルX1とベクトルY1の各要素について実行されることにより、演算器11、12のそれぞれにおいてSIMD演算が実行される。
以上のSIMD演算は、演算器11、12を用いて2つの内積を求めているが、2つの演算器11、12を用いて1つの内積を倍速で実行するようにしてもよい。
その場合のSIMD演算モード時の浮動小数点演算装置2の動作を説明する。
c1)データ処理装置1がSIMD演算モードに設定されると、制御器13が、2つの演算器11と12の両方の乗算器31と加減算器33の丸めモードを同一丸めモードに設定してから、両演算器11と12のレジスタ36を初期化するまでの処理は、上述したSIMD演算の動作b1〜b4と同様である。
c2)次に実行されるベクトルXとベクトルYの各要素について処理を行う。この処理は、上述したSIMD演算の動作と異なっている。
c2-1)制御器13は、インターフェース14を制御して、ベクトルXとベクトルYのそれぞれの要素を順番に、入力レジスタに交互に入力させる。インターフェース14は、ベクトルXの要素を入力A0に入力し、ベクトルYの要素を入力B0に入力し、次のベクトルXの要素をA1入力し、次のベクトルYの要素を入力B1に入力する処理を、繰り返す。
例えば、制御器13は、ベクトルXの奇数番目の要素を入力レジスタ15に入力し、ベクトルYの奇数番目の要素を入力レジスタ16に入力し、ベクトルXの偶数番目の要素を入力レジスタ17に入力し、ベクトルYの偶数番目の要素を入力レジスタ18に入力する。
すなわち、演算器11には、ベクトルXとベクトルYの一対のベクトルデータの半分が入力され、演算器12には、ベクトルXとベクトルYの一対のベクトルデータの残り半分が入力される。
c2-2)演算器11において、入力A0とB0の演算が実行され、演算器12において、入力A1とB1の演算が実行される。
以上の処理が、演算器11では、ベクトルXとベクトルYの奇数番目の処理対象要素の全てに対して実行され、演算器12では、ベクトルXとベクトルYの偶数番目の処理対象要素の全てに対して実行される。
そして、ベクトルX、Yの全て要素に対して実行されると、加減算器33への入力が他の演算器の出力となるように、マルチプレクサ32が制御器13により制御される。
c3)演算器11の加減算器33において、演算器11のレジスタ36のレジスタ値と、演算器12のレジスタ36のレジスタ値が加算され、その加算値が演算器11のレジスタ36に格納される。
以上のように、ベクトルXとベクトルYに対するSIMD演算が2つの演算器11、12により実行されることにより倍速で実行される。
本実施形態によれば、2つの演算器を用いて、SIMD演算モードと区間演算モードとが切り替え可能で、2つの演算モードが実行可能な浮動小数点演算装置を実現することができる。すなわち、本実施形態の浮動小数点演算装置は、演算精度を要求されない演算モードのときは、SIMD演算が実行可能である。一方、演算精度が要求される演算モードのときは、2つのベクトルの内積の演算結果と演算精度が取得できる区間演算を実行可能である。
(第2の実施形態)
第1の実施形態の浮動小数点演算装置は、区間演算又はSIMD演算に基づく内積演算を実行可能であるが、第2の実施形態の浮動小数点演算装置は、区間演算又はSIMD演算に基づく行列積演算を実行可能である。
(構成)
図4は、第2の実施形態の浮動小数点演算装置のブロック図である。浮動小数点演算装置2Aは、演算アレイ41と、インターフェース42と、制御器43と、4つの入力レジスタ44〜47と、2つの出力レジスタ48,49と、2つのマルチプレクサ50,51とで構成される。本実施形態の浮動小数点演算装置2Aを有するデータ処理装置は、図1と同様の構成である。
なお、ここでは、4×4の行列の行列積の演算を実行する例を説明する。
演算アレイ41は、アレイ状に接続された複数の演算ノード52から構成される。図4に示す演算アレイ41は、演算ノード52が左右に接続される部分は、左側の演算ノード52の出力が右側の演算ノード52の入力に、演算ノード52が上下に接続される部分は、上側の演算ノード52の出力が下側の演算ノード52の入力に、それぞれ接続されるように、構成されている。
インターフェース42は、相互接続網5を介して入力されたデータを入力レジスタ44〜47へ出力する。また、インターフェース42は、出力レジスタ48と49からの出力データを相互接続網5へ出力する。
制御器43は、インターフェース42を介して入力されたコマンドに応じて、演算アレイ41と、マルチプレクサ50,51へ制御信号を出力する。また、制御器43は、演算アレイ41の各演算ノード52の各演算器61,62(図5)へも制御信号を出力する。
マルチプレクサ50は、入力レジスタ45と46からの入力データを入力し、制御信号に基づいて選択されたデータを演算アレイ41へ出力する。
マルチプレクサ51は、入力レジスタ44と47からの入力データを入力し、制御信号に基づいて選択されたデータを演算アレイ41へ出力する。
図5は、演算アレイ41の各演算ノード52の構成を示すブロック図である。演算ノード52は、2つの演算器61、62と、2つの入力制御器63、64と、2つの出力制御器65、66とで構成されている。さらに、演算ノード52は、6つの入力端子A0in,A1in,B0in,B1in,S0in,S1inと、6つの出力端子A0out,A1out,B0 out,B1out,S0out,S1 outを有している。
演算器61、62は、図3と同じ構成を有する。
演算器61には、入力制御器63の2つの出力と、演算器62の出力とが入力される。演算器62には、入力制御器64の2つの出力と、演算器61の出力とが入力される。
演算器61の出力は、出力制御器65と演算器62に入力される。演算器62の出力は、出力制御器66と演算器61に入力される。
図6は、入力制御器63、64の回路図である。
入力制御器63,64は、2つのレジスタ71と72を有する。レジスタ71の入力には、入力端子A0in, A1inが接続され、レジスタ72の入力には、入力端子B0in,B1inが接続されている。レジスタ71の出力は、演算器61,62の入力と出力端子A0out,A1outとに接続されている。レジスタ72の出力は、演算器61,62の入力と出力端子B0out,B1outとに接続されている。
演算アレイ41において右端以外の演算ノード52の出力端子A0outとB1outは、演算アレイ41において右側に隣接する演算ノード52の入力端子A0inとB1inに接続される。すなわち、右端以外の演算ノード52の入力制御器63のレジスタ71の出力は、右側隣接演算ノード52の入力制御器63のレジスタ71に入力され、右端以外の演算ノード52の入力制御器64のレジスタ72の出力は、右側隣接演算ノード52の入力制御器64のレジスタ72に入力される。
また、演算アレイ41において下端以外の演算ノード52の出力端子A1outとB0outは、演算アレイ41において下側に隣接する演算ノード52の入力端子A1inとB0inに接続される。すなわち、下端以外の演算ノード52の入力制御器64のレジスタ71の出力は、下側隣接演算ノード52の入力制御器64のレジスタ71に入力され、下端以外の演算ノード52の入力制御器63のレジスタ72の出力は、下側隣接演算ノード52の入力制御器63のレジスタ72に入力される。
すなわち、各入力制御器63,64は、入力データである入力Aと入力Bをそれぞれ、レジスタ71と72に格納し出力する。
図7は、出力制御器65、66の回路図である。
出力制御器65、66は、2つのレジスタ73と74と、マルチプレクサ75を有する。レジスタ73の入力には、演算器61,62の出力が接続されている。マルチプレクサ75の入力には、レジスタ73の出力と入力端子S0in,S1inが接続されている。マルチプレクサ75の出力は、レジスタ74の入力に接続されている。
各出力制御器65、66は、各演算器61,62の出力をレジスタ73に格納する。マルチプレクサ75は、入力端子S0in,S1inからの入力があれば、その入力を選択し、入力端子S0in,S1inからの入力がなければレジスタ73の出力を選択する。選択された値は、レジスタ74に格納され、出力される。
(動作)
本実施形態のデータ処理装置1も、区間演算とSIMD演算の両方が実行可能である。
次に、区間演算モード時とSIMD演算モード時の動作を説明する。
まず、2つの行列AA0とBB0の行列積を求める区間演算モード時の動作について説明する。
このとき、浮動小数点演算装置2Aでは、行列AA0の行ベクトルデータが入力レジスタ44に入力A0として、行列BB0の列ベクトルデータが入力レジスタ45に入力B0として、演算ノード52の入力端子A0in,B0inに入力される。また同時に、入力A0とB0と同一の入力データが、マルチプレクサ50,51を介して入力端子A1in,B1inに入力される。
その結果、演算アレイ41は、各演算ノード52において、行列積の区間演算を実行し、演算結果である行列積の機械区間の上限値を出力レジスタ48に出力S0として出力し、機械区間の下限値を出力レジスタ49に出力S1として出力すると共に、行列積の機械区間の出力後に、出力レジスタ48に中心値の行列、出力レジスタ49に誤差半径の行列を出力する。
なお、マルチプレクサを用いず、入力A0と入力B1、入力B0と入力A1のそれぞれに同一入力データを入力するようにしてもよい。
また、入力A0とB0の行列演算と入力A1とB1の行列演算とで異なる演算を行うようにしてもよい。
d.区間演算に基づく行列積の演算
次に、区間演算に基づく行列積の演算の動作について詳述する。
d1) 浮動小数点演算装置2Aでは、各演算ノード52の2つの演算器61と62の一方における乗算器31と加減算器33は上向きの丸めモードに、各演算ノード52の2つの演算器61と62の他方における乗算器31と加減算器33は下向の丸めきモードに設定される。
d2)各演算ノード52の2つの演算器61と62の加減算器33の入力として乗算器31の出力が選択されるように、制御器43は、マルチプレクサ32を制御する。
d3)さらに、各演算ノード52のレジスタ36の入力として加減算器33の出力が選択されるように、制御器43は、マルチプレクサ35を制御する。
d4)制御器43は、各演算ノード52のレジスタ36を初期化する。
d5)制御器43は、行列AA0を行ベクトルに分割し、行ベクトルを入力A0として、入力レジスタ44に入力する。同様に、制御器43は、行列BB0を列ベクトルに分割し、列ベクトルを入力B0として、入力レジスタ44に入力する。
d6)行列AA0の1行目の行ベクトルA0-0を、演算アレイ41の1行目の入力A0inと入力B1inに入力し、行列AA0の2行目の行ベクトルA0-1を、演算アレイ41の2行目の入力A0inと入力B1inに入力し、行列AA0の3行目の行ベクトルA0-2を、演算アレイ41の3行目の入力A0inと入力B1inに入力し、行列AA0の4行目の行ベクトルA0-3を、演算アレイ41の4行目の入力A0inと入力B1inに入力する。
d7)行列BB0の1列目の列ベクトルB0-0を、演算アレイ41の1列目の入力B0inと入力A1inに入力し、行列BB0の2行目の列ベクトルB0-1を、演算アレイ41の2列目の入力B0inと入力A1inに入力し、行列BB0の3行目の列ベクトルB0-2を、演算アレイ41の3列目の入力B0inと入力A1inに入力し、行列BB0の4行目の列ベクトルB0-3を、演算アレイ41の4列目の入力B0inと入力A1inに入力する。
d8)各演算ノード52では、入力された各ベクトル要素に対して次の処理が実行される。
d8-1)入力制御器63は、入力A0inと入力B0inを順に格納して出力する。
d8-2)入力制御器64は、入力A1inと入力B1inを順に格納して出力する。
d8-3)各演算器61と62の乗算器31では、2つの入力が乗算される。
d8-4)各演算器61と62の加減算器33では、乗算器31の乗算結果とレジスタ36のレジスタ値とが加算される。
d8-5)各演算器61と62のレジスタ36には、加算結果が格納され、出力制御器65から区間演算の演算結果の行列積の要素の機械区間の上限値が出力され、出力制御器66から区間演算の演算結果の行列積の要素の機械区間の下限値が出力される。
d9)行列積の全要素の機械区間の出力の完了後、各演算ノード52で、以下の処理が行われる。
d9-1)各演算ノード52の両演算器61と62の加減算器33の入力として、外部からの入力を選択するように、制御器43は、マルチプレクサ32を制御する。
d9-2)さらに、各演算ノード52の両演算器61、62において、レジスタ36の入力として、1/2器34の出力が選択されるように、制御器43は、マルチプレクサ35を制御する。
d9-3)そして、各演算器61の加減算器33において、2つの入力の加算が行われ、各演算器62の加減算器33において、2つの入力の減算が行われる。
d9-4)各演算ノード52の両演算器61と62の1/2器34において、加減算器33の出力の1/2演算が実行され、1/2器34の演算結果が、レジスタ36に格納される。
d9-5)出力制御器65は、演算器61のレジスタ36の出力を順に格納して出力する。
d9-6)出力制御器66は、演算器62のレジスタ36の出力を順に格納して出力する。
演算アレイ41において、1列目の出力S0は結果行列S0の1列目の列ベクトルS0-0として、2列目の出力S0は結果行列S0の2列目の列ベクトルS0-1として、3列目の出力S0は結果行列S0の3列目の列ベクトルS0-2として、4列目の出力S0は結果行列S0の4列目の列ベクトルS0-3として、出力レジスタ48に出力される。
演算アレイ41において、1行目の出力S1は結果行列S1の1行目の行ベクトルS1-0として、2行目の出力S1は結果行列S1の2行目の行ベクトルS1-1として、3行目の出力S1は結果行列S1の3行目の行ベクトルS1-2として、4行目の出力S1は結果行列S1の4行目の行ベクトルS1-3として、出力レジスタ49に出力される。
行列積の機械区間が出力される際には、出力レジスタ48の4つの列ベクトルS0-0〜S0-3は、統合されて行列積の演算結果である行列SS0の機械区間の上限値として出力され、出力レジスタ49の4つの行ベクトルS1-0〜S1-3は、統合されて行列積の演算結果である行列SS0の機械区間の下限値として出力される。
行列積の中心値と誤差半径が出力される際には、出力レジスタ48の4つの列ベクトルS0-0〜S0-3は、統合されて中心値行列SS0として出力され、出力レジスタ49の4つの行ベクトルS1-0〜S1-3は、統合されて誤差半径行列SS1として出力される。
次に、SIMD演算モード時の動作を説明する。
このとき、浮動小数点演算装置2Aでは、入力レジスタ44に入力A0が、入力レジスタ45に入力B0が入力されて1つの行列積が算出され、入力レジスタ46に入力A1が、入力レジスタ47に入力B1が入力されて、別の行列積が算出される。その場合、演算アレイ41内では、入力A0とB0の演算と入力A1とB1の演算は個別に実行され、出力S0に入力A0とB0の演算結果が、出力S1に入力A1とB1の演算結果が出力される。
e. SIMD演算に基づく行列積の演算
次に、SIMD演算に基づく行列積の演算動作について詳述する。
e1)まず、制御器43は、各演算ノードの演算器61と62の乗算器31と加減算器33を同一の丸めモードに設定する。例えば、演算器61の乗算器31と加減算器33が上向きモードに設定されたときは、演算器62の乗算器31と加減算器33も上向きモードに設定される。
e2)演算器61と62の加減算器33の入力として乗算器31の出力が選択されるように、制御器43は、マルチプレクサ32を制御する。
e3)演算器61と62のレジスタ36の入力として、加減算器33の出力が選択されるように、制御器43は、マルチプレクサ35を制御する。
e4)制御器43は、演算器61と62の両方のレジスタ36を初期化する。
e5)行列AA0を行ベクトルに分割して、各行ベクトルを入力A0として入力レジスタ44に入力する。
e6)行列BB0を列ベクトルに分割して、各列ベクトルを入力B0として入力レジスタ45に入力する。
e7)行列AA0の1行目の行ベクトルA0-0が、演算アレイ41の1行目の入力A0inに入力され、行列AA0の2行目の行ベクトルA0-1が、演算アレイ41の2行目の入力A0inに入力され、行列AA0の3行目の行ベクトルA0-2が、演算アレイ41の3行目の入力A0inに入力され、行列AA0の4行目の行ベクトルA0-3が、演算アレイ41の4行目の入力A0inに入力される。
e8)行列BB0の1列目の列ベクトルB0-0が、演算アレイ41の1列目の入力B0に入力され、行列BB0の2行目の列ベクトルB0-1が、演算アレイ41の2列目の入力B0に入力され、行列BB0の3行目の列ベクトルB0-2が、演算アレイ41の3列目の入力B0に入力され、行列BB0の4行目の列ベクトルB0-3が、演算アレイ41の4列目の入力B0に入力される。
e9)また、行列AA1を行ベクトルに分割して、各行ベクトルを入力A1として入力レジスタ46に入力する。
e10)行列BB1を列ベクトルに分割して、各列ベクトルを入力B1として入力レジスタ47に入力する。
e11)行列AA1の1行目の行ベクトルA1-0が、演算アレイ41の1列目の入力A1inに入力され、行列AA1の2列目の行ベクトルA1-1が、演算アレイ41の2列目の入力A1inに入力され、行列AA1の3行目の行ベクトルA1-2が、演算アレイ41の3列目の入力A1inに入力され、行列AA1の4行目の行ベクトルA1-3が、演算アレイ41の4列目の入力A1inに入力される。
e12)行列BB1の1列目の列ベクトルB1-0が、演算アレイ41の1行目の入力B1inに入力され、行列BB1の2行目の列ベクトルB1-1が、演算アレイ41の2行目の入力B1inに入力され、行列BB1の3行目の列ベクトルB1-2が、演算アレイ41の3行目の入力B1inに入力され、行列BB1の4行目の列ベクトルB1-3が、演算アレイ41の4行目の入力B1inに入力される。
e13)各演算ノード52では、入力された各ベクトル要素について次の処理が実行される。
e13-1)入力制御器63は、入力A0inと入力B0inを順に格納して出力する。
e13-2)入力制御器64は、入力A1inと入力B1inを順に格納して出力する。
e13-3)各演算器61と62では、2つの入力に対する演算が行われる。
e14)全ベクトル要素の処理の完了後、各演算ノード52で次の処理が実行される。
e14-1)各演算ノード52の出力制御器65は、演算器61の出力を順に格納して出力する。
e14-2)各演算ノード52の出力制御器66は、演算器62の出力を順に格納して出力する。
e15)演算アレイ41の1列目の出力S0は、結果行列S0の1列目の列ベクトルS0-0として出力レジスタ48に出力され、演算アレイ41の2列目の出力S0は、結果行列S0の2列目の列ベクトルS0-1として出力レジスタ48に出力され、演算アレイ41の3列目の出力S0は、結果行列S0の3列目の列ベクトルS0-2として出力レジスタ48に出力され、演算アレイ41の4列目の出力S0は、結果行列S0の4列目の列ベクトルS0-3として出力レジスタ48に出力される。
e16)また、演算アレイ41の1行目の出力S1は、結果行列S1の1列目の列ベクトルS1-0として出力レジスタ49に出力され、区間演算アレイの2行目の出力S1は、結果行列S1の2列目の列ベクトルS1-1として出力レジスタ49に出力され、区間演算アレイの3行目の出力S1は、結果行列S1の3列目の列ベクトルS1-2として出力レジスタ49に出力され、演算アレイ41の4行目の出力S1は、結果行列S1の4列目の列ベクトルS1-3として出力レジスタ49に出力される。
e17) 出力レジスタ48の4つの列ベクトルS0-0〜S0-3は、統合されて結果行列SS0として出力される。
e18) 出力レジスタ49の4つの行ベクトルS1-0〜S1-3は、統合されて結果行列SS1として出力される。
以上のSIMD演算は、各演算器61、62において、2つの行列積のための演算が行われるが、2つの演算器61と62を用いて1つの行列積を倍速で実行するようにしてもよい。
その場合のSIMD演算モード時の浮動小数点演算装置2Aの動作を説明する。
f1)まず、制御器43は、各演算ノードの演算器61と62の両方における乗算器31と加減算器33を同一の丸めモードに設定する。例えば、演算器61の乗算器31と加減算器33が上向きの丸めモードに設定されたときは、演算器62の乗算器31と加減算器33も上向きの丸めモードに設定される。
f2)演算器61と62の両方の加減算器33の入力として乗算器31の出力を選択するように、制御器43は、マルチプレクサ32を制御する。
f3)演算器61と62の両方のレジスタ36の入力として、加減算器33の出力を選択するように、制御器43は、マルチプレクサ35を制御する。
f4)制御器43は、演算器61と62の両方のレジスタ36を初期化する。
f5)行列AA0を行ベクトルに分割して、各行ベクトルを入力A0として入力レジスタ44に入力する。
f6)行列BB0を列ベクトルに分割して、各列ベクトルを入力B0として入力レジスタ45に入力する。
f7)行列AA0の1行目の行ベクトルA0-0の各要素が、演算アレイ41の1行目の入力A0inと入力B1inに交互に入力され、行列A0の2行目の行ベクトルA0-1の各要素が、演算アレイ41の2行目の入力A0inと入力B1inに交互に入力され、行列A0の3行目の行ベクトルA0-2の各要素が、演算アレイ41の3行目の入力A0inと入力B1inに交互に入力され、行列A0の4行目の行ベクトルA0-3の各要素が、演算アレイ41の4行目の入力A0inと入力B1inに交互に入力される。
f8)行列BB0の1列目の列ベクトルB0-0の各要素が、演算アレイ41の1列目の入力B0inと入力A1inに交互に入力され、行列B0の2行目の列ベクトルB0-1の各要素が、演算アレイ41の2列目の入力B0inと入力A1inに交互に入力され、行列B0の3行目の列ベクトルB0-2の各要素が、演算アレイ41の3列目の入力B0inと入力A1inに交互に入力され、行列B0の4行目の列ベクトルB0-3の各要素が、演算アレイ41の4列目の入力B0inと入力A1inに交互に入力される。
f9)各演算ノード52では、入力された各ベクトル要素について次の処理が実行される。
f9-1)入力制御器63は、入力A0inと入力B0inを順に格納して出力する。
f9-2)入力制御器64は、入力A1inと入力B1inを順に格納して出力する。
f9-3)各演算器61と62では、2つの入力に対する演算が行われる。
f10)全ベクトル要素の処理の完了後、各演算ノード52で次の処理が実行される。
f10-1)演算器61の加減算器33の入力として外部からの入力を選択するように、制御器43は、マルチプレクサ32を制御する。
f10-2)演算器61の加減算器33で、レジスタ36のレジスタ値と、外部からの入力としての演算器12のレジスタ36のレジスタ値とが加算される。
f10-3)演算器61のレジスタ36に加減算器33の加算結果が格納される。
f11)各演算ノード52の出力制御器65は、演算器61の出力を順に格納して出力する。
f12)演算アレイ41の1列目の出力S0は、結果行列S0の1列目の列ベクトルS0-0として出力レジスタ48に出力され、演算アレイ41の2列目の出力S0は、結果行列S0の2列目の列ベクトルS0-1として出力レジスタ48に出力され、演算アレイ41の3列目の出力S0は、結果行列S0の3列目の列ベクトルS0-2として出力レジスタ48に出力され、演算アレイ41の4列目の出力S0は、結果行列S0の4列目の列ベクトルS0-3として出力レジスタ48に出力される。
f13) 出力レジスタ48の4つの列ベクトルS0-0〜S0-3は、統合されて結果行列SS0として出力される。
以上のように、演算アレイ41の各演算ノード52の2つの演算器61と62を用いて1つの行列積を倍速で実行することができる。
以上のように、本実施形態の浮動小数点演算装置は、演算精度を要求されない演算モードのときは、SIMD演算に基づく行列積演算を実行し、演算精度が要求される演算モードのときは、演算結果と演算精度情報が取得できる区間演算に基づく行列積演算を実行することができる。
各実施形態の浮動小数点演算装置は、種々の分野において利用可能である。例えば、第2の実施形態の浮動小数点演算装置2Aは、例えば画像処理システムなどに適用可能である。図8は、本実施形態の浮動小数点演算装置を有する情報処理システムの構成を示すブロック図である。図8において、図1と同じ構成要素については、同じ符号を付して説明は省略する。
図8に示す情報処理システム100の例は、浮動小数点演算装置2Aと、主記憶装置3と、入出力装置4と、相互接続網5と、例えばイメージセンサを有するカメラ101と、表示装置としてのモニタ102とを含む画像処理システムである。図8の点線で示す範囲が、例えば1つの半導体装置上に形成される。
例えば、車両に搭載されたカメラ101により撮像された画像から、周囲の建物等の被写体の3次元の形状データを生成するような応用である。その場合、撮像して得られた2次元画像データから、被写体の3次元データを構築するアプリケーションプログラムの実行において、画像データの画素の位置データの演算精度が要求される。そのようなシステムにおいては、本浮動小数点演算装置2Aは、極めて有効である。2次元画像データに対する画像は、区間演算モードにて処理が実行され、3次元データが生成される。演算結果及び演算精度情報はモニタ102に表示され、ユーザは、その演算精度情報を利用した高精度の3次元データを目視することができる。
以上のように、各実施形態によれば、区間演算の演算結果と演算精度情報を同時に取得する区間演算と、SIMD演算とを切り替えて実行可能な浮動小数点演算装置、半導体装置及び情報処理システムを提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 データ処理装置、2、2A 浮動小数点演算装置、3 主記憶装置、4 入出力装置、5 相互接続網、11、12 演算器、13 制御器、14 インターフェース、15、16、17、18 入力レジスタ、19 出力レジスタ、20 出力レジスタ、21、22 マルチプレクサ、31 乗算器、32 マルチプレクサ、33 加減算器、34 1/2器、35 マルチプレクサ、36 レジスタ、41 演算アレイ、42 インターフェース、43 制御器、44 入力レジスタ、45、46、47 入力レジスタ、48、49 出力レジスタ、50、51 マルチプレクサ、52 演算ノード、61、62 演算器、63、64 入力制御器、65、66 出力制御器、71、72、73、74 レジスタ、75 マルチプレクサ、100 情報処理システム、101 カメラ、102 モニタ。

Claims (6)

  1. 第1の入力データが入力され、設定された第1の丸めモードで第1の演算を実行する第1の演算器と、
    第2の入力データが入力され、設定された第2の丸めモードで第2の演算を実行する第2の演算器と、
    を備え、
    前記第1の演算器は、前記第1の演算の第1の演算結果に前記第2の演算の第2の演算結果を加算して得られた第1の値を1/2にした第1の出力と、前記第1の演算結果と、を選択的に出力可能な第1の出力回路を有し、
    前記第2の演算器は、前記第1の演算結果から前記第2の演算結果を減算して得られた第2の値を1/2にした第2の出力と、前記第2の演算結果と、を選択的に出力可能な第2の出力回路を有する浮動小数点演算装置。
  2. 前記第1の演算器は、
    前記第1の演算結果を入力して累積加算し、第1の加算値を出力する第1の加算器と、
    前記第1の加算値を格納する第1のレジスタと、
    を有し、
    前記第2の演算器は、
    前記第2の演算結果を入力して累積加算し、第2の加算値を出力する第2の加算器と、
    前記第2の加算値を格納する第2のレジスタと、
    を有し、
    前記第1の演算器は、前記第1の演算結果と前記第2のレジスタに格納された前記第2の加算値とを選択的に切り替えて、前記第1の加算器へ入力する第1の選択回路を有し、
    前記第2の演算器は、前記第2の演算結果と前記第1のレジスタに格納された第2の加算値とを選択的に切り替えて、前記第2の加算器へ入力する第2の選択回路を有する請求項1に記載の浮動小数点演算装置。
  3. 前記第1の演算器は、
    前記第1の値を1/2にして前記第1の出力として出力する第1の1/2回路と、
    前記第1の1/2回路の前記第1の出力と、前記第1の加算器の前記第1の加算値とを選択的に切り替えて、前記第1のレジスタへ出力する第3の選択回路と、
    を有し、
    前記第2の演算器は、
    前記第2の値を1/2にして前記第2の出力として出力する第2の1/2回路と、
    前記第2の1/2回路の前記第2の出力と、前記第2の加算器の前記第2の加算値とを選択的に切り替えて、前記第2のレジスタへ出力する第4の選択回路と、
    を有する請求項2に記載の浮動小数点演算装置。
  4. 前記第1の入力データは、第1の一対のベクトルデータであり、
    前記第2の入力データは、第2の一対のベクトルデータであり、
    前記第1の演算及び前記第2の演算は、各ベクトルデータの処理対象要素の乗算処理である請求項2または3に記載の浮動小数点演算装置。
  5. 前記第1の演算器と、前記第2の演算器と、前記第1の出力回路と、前記第2の出力回路とを有する複数の演算ノードをマトリックス状に配列した演算アレイと、
    を有し、
    前記第1の入力データは、第1の行列データであり、
    前記第2の入力データは、第2の行列データであり、
    前記第1の行列データの分解された行データと前記第2の行列データの分解された列データとが前記演算アレイに対して入力される請求項2から4のいずれか1つに記載の浮動小数点演算装置。
  6. 請求項1から5のいずれか1つに記載の浮動小数点演算装置と、
    前記第1の入力データと前記第2の入力データとを入力する入力インターフェースと、
    前記第1の出力回路と、前記第2の出力回路の出力データを出力する出力インターフェースと、
    を有する情報処理システム。
JP2014183508A2014-09-092014-09-09浮動小数点演算装置、及び情報処理システムPendingJP2016057831A (ja)

Priority Applications (2)

Application NumberPriority DateFiling DateTitle
JP2014183508AJP2016057831A (ja)2014-09-092014-09-09浮動小数点演算装置、及び情報処理システム
US14/643,279US9600234B2 (en)2014-09-092015-03-10Floating-point arithmetic device, semiconductor device and information processing system

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
JP2014183508AJP2016057831A (ja)2014-09-092014-09-09浮動小数点演算装置、及び情報処理システム

Publications (1)

Publication NumberPublication Date
JP2016057831Atrue JP2016057831A (ja)2016-04-21

Family

ID=55437583

Family Applications (1)

Application NumberTitlePriority DateFiling Date
JP2014183508APendingJP2016057831A (ja)2014-09-092014-09-09浮動小数点演算装置、及び情報処理システム

Country Status (2)

CountryLink
US (1)US9600234B2 (ja)
JP (1)JP2016057831A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP2023535197A (ja)*2020-07-302023-08-16アーム・リミテッドベクトル処理

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US10409614B2 (en)2017-04-242019-09-10Intel CorporationInstructions having support for floating point and integer data types in the same register
US10474458B2 (en)2017-04-282019-11-12Intel CorporationInstructions and logic to perform floating-point and integer operations for machine learning
KR102525165B1 (ko)*2018-12-182023-04-24삼성전자주식회사연산 회로를 포함하는 비휘발성 메모리 장치 및 이를 포함하는 뉴럴 네트워크 시스템
EP3938913A1 (en)2019-03-152022-01-19INTEL CorporationMulti-tile architecture for graphics operations
CN113383310A (zh)2019-03-152021-09-10英特尔公司矩阵加速器架构内的脉动分解
EP3938893B1 (en)2019-03-152025-10-15Intel CorporationSystems and methods for cache optimization
US11175891B2 (en)*2019-03-302021-11-16Intel CorporationSystems and methods to perform floating-point addition with selected rounding
US11327761B2 (en)*2019-05-242022-05-10Texas Instruments IncorporatedProcessing device with vector transformation execution
US11663746B2 (en)2019-11-152023-05-30Intel CorporationSystolic arithmetic on sparse data
US11372644B2 (en)*2019-12-092022-06-28Meta Platforms, Inc.Matrix processing instruction with optional up/down sampling of matrix

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5268854A (en)1990-11-131993-12-07Kabushiki Kaisha ToshibaMicroprocessor with a function for three-dimensional graphic processing
US5258943A (en)*1991-12-231993-11-02Intel CorporationApparatus and method for rounding operands
JPH0821087A (ja)1994-07-091996-01-23Kajima Corp型 枠
JP3203180B2 (ja)1996-03-272001-08-27三菱電機株式会社幾何学演算装置
JP3940542B2 (ja)2000-03-132007-07-04株式会社ルネサステクノロジデータプロセッサ及びデータ処理システム
JP2004005395A (ja)2002-04-162004-01-08Sony Computer Entertainment Inc演算処理装置、半導体デバイス
US20050289209A1 (en)*2004-06-292005-12-29Intel CorporationMethod and system of achieving integer division by invariant divisor using N-bit multiply-add operation
JP5951570B2 (ja)2013-09-132016-07-13株式会社東芝行列演算装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP2023535197A (ja)*2020-07-302023-08-16アーム・リミテッドベクトル処理

Also Published As

Publication numberPublication date
US20160070536A1 (en)2016-03-10
US9600234B2 (en)2017-03-21

Similar Documents

PublicationPublication DateTitle
JP2016057831A (ja)浮動小数点演算装置、及び情報処理システム
EP3557484B1 (en)Neural network convolution operation device and method
JP5951570B2 (ja)行列演算装置
JP2022084674A (ja)代替ループ限界値
CN108205700B (zh)神经网络运算装置和方法
US12189710B2 (en)Sparse matrix multiplication in hardware
CN110188869B (zh)一种基于卷积神经网络算法的集成电路加速计算的方法及系统
JP7435602B2 (ja)演算装置および演算システム
JP6003744B2 (ja)演算処理装置及び演算処理方法
KR20200063958A (ko)차원 변환이 가능한 컨볼루션 연산 장치
EP3474133B1 (en)Filter processing apparatus and control method thereof
KR20200072666A (ko)합성곱 계층의 선택적 데이터 처리 방법 및 이를 이용한 뉴럴 프로세서
CN112446007A (zh)一种矩阵运算方法、运算装置以及处理器
BatselierA numerical linear algebra framework for solving problems with multivariate polynomials
CN110909872A (zh)集成电路芯片装置及相关产品
JP5157484B2 (ja)行列演算コプロセッサ
CN110399976B (zh)计算装置和计算方法
Kaczorek et al.Solvability of 2D hybrid linear systems-comparsion of three different methods
CN109634556B (zh)一种乘累加器及累加输出方法
CN117762492A (zh)数据处理方法、装置、计算机设备及可读存储介质
JP5896756B2 (ja)演算装置及びプログラム
US20230206043A1 (en)Deep learning acceleration with mixed precision
KR100628316B1 (ko)변환 행렬 연산 장치
JP4978936B2 (ja)2次元空間フィルタ装置
US20230214185A1 (en)Multipurpose multiply-accumulator array

[8]ページ先頭

©2009-2025 Movatter.jp