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

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

Info

Publication number
JP7013707B2
JP7013707B2 JP2017149827A JP2017149827A JP7013707B2 JP 7013707 B2 JP7013707 B2 JP 7013707B2 JP 2017149827 A JP2017149827 A JP 2017149827A JP 2017149827 A JP2017149827 A JP 2017149827A JP 7013707 B2 JP7013707 B2 JP 7013707B2
Authority
JP
Japan
Prior art keywords
data
calculation
input
information processing
execution
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
JP2017149827A
Other languages
English (en)
Other versions
JP2019028865A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017149827A priority Critical patent/JP7013707B2/ja
Priority to US16/047,773 priority patent/US10754658B2/en
Publication of JP2019028865A publication Critical patent/JP2019028865A/ja
Application granted granted Critical
Publication of JP7013707B2 publication Critical patent/JP7013707B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
近年、高性能コンピューティング(HPC: High-Performance Computing)等の大容量データを用いるアプリケーションは、例えば、有限要素法、電磁場解析および流体解析といった高速および大規模の科学技術計算分野において利用されている。このような配列データを用いるアプリケーションは、例えば、FPGA(Field-Programmable Gate Array)やGPU(Graphics Processing Unit)を使用したアクセラレータとしてハードウェア化することで、より一層の高速化が可能なものと考えられている。また、最近では、さらなる高速化が可能なアクセラレータとして、GPGPU(General-Purpose computing on Graphics Processing Units)も使用されるようになってきている。
すなわち、現状では、例えば、CPU(Central Processing Unit)単体の大きな性能向上が望めないため、FPGAやGPU(GPGPU)といった専用ハードウェアを用いたアクセラレータが注目され、利用されるようになっている。ここで、一般的なアクセラレータは、例えば、データバスを介してホストの大容量メモリやストレージに格納されているデータを読み書きする。しかしながら、データバスのデータ転送帯域(転送速度)は、例えば、ハードウェアの制約等により、CPUに比べて広くすることが困難である。その一方で、アクセラレータにおける演算回路の演算性能は、CPUよりも大きく優っている。そのため、アクセラレータの演算性能を最大限に引き出すためには、例えば、アクセラレータの演算回路が使うデータを、正に必要とされるタイミングでデータバスから供給することが求められる。
すなわち、FPGA等を用いたアクセラレータは、その演算性能はCPUよりもはるかに優れているにも関わらず、例えば、データバスのデータ転送特性により制限されている。そこで、FPGA等を用いたアクセラレータにおける性能を向上させる技術として、パイプライン処理が知られている。このパイプライン処理は、例えば、互いの出力が入力になるように処理を複数段の演算回路(演算部)に分割し、それぞれの演算部を同時に動作させることにより、処理の並列性を高める回路構成方法である。
従来、パイプライン処理をより一層高速化するための情報処理技術としては、様々な提案がなされている。
特開平11-053189号公報 特開平05-158686号公報
前述したように、FPGA等を用いたアクセラレータでは、パイプライン処理が利用されているが、例えば、多種類のデータセットを取り扱うアプリケーションで、かつ、その実行中に動的に使うデータセットが変動する場合には、性能の低下を招く虞がある。
すなわち、FPGA等を用いたアクセラレータは、例えば、演算性能は高いが、データ転送帯域が狭いため、パイプライン段数は増加する傾向にある。このようなパイプライン段数の多いアクセラレータ(情報処理装置)において、使用するデータセットが動的に変動する場合、新たな入力データをホストに要求し、或いは、パイプライン処理をリセットする等により、性能が劣化することになる。
そのため、例えば、可能性がある全てのデータセットをホストからアクセラレータに送信することが考えられる。しかしながら、この場合、使用されずに無駄になるデータもアクセラレータに送信することになるため、データ転送速度が遅くなり、パイプライン処理の性能劣化を招く虞がある。
また、パイプラインの実行パスに分岐が無くなるように、実行パスを分割することも考えられる。しかしながら、この場合も、例えば、分割点での中間データをアクセラレータの出力と入力に接続することになるため、やはり、パイプライン処理の性能劣化を招く虞がある。
一実施形態によれば、第1データを入力とし、互いの出力が入力になるように分割された複数段の演算部を同時に動作させるパイプライン処理を行う演算回路と、前記演算回路の演算結果に基づいて、前記第1データとは異なる第2データを前記演算回路に入力して処理を実行するか否かを判定する判定部と、を有する情報処理装置が提供される。
前記演算回路は、前記判定部が前記第2データを前記演算回路に入力して処理を実行すると判定した場合、前記第2データを使用して処理を実行する前記演算回路の演算を中断すると共に、前記第2データが入力されるまで、前記第1データを入力として処理を実行する前記演算回路の演算を継続し、前記第2データが入力されたときは、中断された前記第2データを使用して処理を実行する前記演算回路の演算を行う。
開示の情報処理装置、情報処理方法および情報処理プログラムは、パイプライン処理をより一層高速化することができるという効果を奏する。
図1は、情報処理サーバの一例を模式的に示すブロック図である。 図2は、情報処理装置におけるパイプライン処理の一例を説明するための図である。 図3は、情報処理装置上のパイプライン回路に有限要素法アプリケーションを実装した場合の動作の一例を説明するための図である。 図4は、情報処理装置におけるパイプライン処理の他の例を説明するための図である。 図5は、情報処理装置により処理されるアプリケーションの一例としての弾塑性有限要素法での接触解析を説明するための図である。 図6は、情報処理装置における解決手法の一例を説明するための図である。 図7は、情報処理装置における解決手法の他の例を説明するための図である。 図8は、本実施形態に係る情報処理装置を模式的に示すブロック図である。 図9は、情報処理装置の第1実施例を模式的に示すブロック図である。 図10は、図9に示す情報処理装置の動作の例を説明するための図(その1)である。 図11は、図9に示す情報処理装置の動作の例を説明するための図(その2)である。 図12は、図9に示す情報処理装置の動作の例を説明するための図(その3)である。 図13は、図9に示す情報処理装置におけるパイプライン処理の一例を説明するための図である。 図14は、情報処理装置の第2実施例を説明するための図である。 図15は、情報処理装置の第3実施例を説明するための図である。 図16は、情報処理装置の第4実施例を説明するための図である。 図17は、情報処理装置の第5実施例を説明するための図である。 図18は、情報処理装置の第6実施例を説明するための図である。
まず、情報処理装置、情報処理方法および情報処理プログラムの実施例を詳述する前に、情報処理装置の例およびその課題を、図1~図7を参照して説明する。図1は、情報処理サーバの一例を模式的に示すブロック図である。
図1に示されるように、情報処理サーバ100は、ホスト2,バス(データバス)3およびアクセラレータ1を含み、ホスト2は、CPU21およびメモリ22を含む。ここで、アクセラレータ(情報処理装置)1としては、例えば、演算回路10を含むFPGAが使用されている。なお、情報処理装置1としては、例えば、FPGAに限定されるものではなく、例えば、GPUやGPGPUといった専用ハードウェアを用いたアクセラレータであってもよい。
情報処理サーバ100において、FPGA等を用いたアクセラレータ1における演算回路10は、例えば、データバス3を介して、ホスト2の大容量のメモリ22に格納されているデータを読み出し、また、メモリ22にデータを書き込むようになっている。
ところで、データバス3のデータ転送帯域は、例えば、ハードウェアの制約等により、CPU21に比べて広くすることが難しい。そ一方で、アクセラレータ1における演算回路10の演算性能は、CPU21よりも大きく優っている。そのため、アクセラレータ1の演算性能を最大限に引き出すためには、例えば、アクセラレータ1の演算回路10が使うデータを、正に必要とされるタイミングでデータバス3から供給することが求められている。
ところで、ハードウェアの性能を向上させる技術として、パイプライン処理が利用されている。図2は、情報処理装置におけるパイプライン処理の一例を説明するための図であり、図2(a)は、アクセラレータ1の構成を模式的に示すブロック図である。また、図2(b)は、図2(a)に示すアクセラレータ1により処理される個々のデータに対するパイプライン実行の一例を示す図である。
図2(a)に示されるように、パイプライン処理とは、演算回路10を、互いの出力が入力となるように複数段の演算部10f,10gに分割し、それぞれの演算部10f,10gを同時に動作させることにより処理の並列性を高める回路構成手法である。
具体的に、図2(a)に示すアクセラレータ1では、演算回路10として、第1演算部10fおよび第2演算部10gの2つの演算部が設けられている。すなわち、第1演算部10fは、入力としてAをホスト(2)から読み込んで演算Fを行ってデータ(中間データ)Zを出力し、第2演算部10gは、入力としてZを第1演算部10fから読み込んで演算Gを行ってデータ(出力データ)Xをホスト2に出力する。
図2(b)に示されるように、パイプライン処理は、個々のデータAに着目すると、毎時刻で処理される演算が、入力データA(A1,A2,…)、演算F(F1,F2,…)、演算G(G1,G2,…)、および、出力データX(X1,X2,…)へと移り変わる。これにより、アクセラレータ1全体としては、データAに対応するデータXを出力する前に、連続してAを読み込むことができ、時間当たりの処理性能(スループット:throughput)を向上させることが可能になる。
ところで、パイプライン処理での高い処理性能を実現するには、入力データAが滞りなく供給されることが求められる。しかしながら、例えば、アクセラレータ1では、その演算性能に対してデータ転送帯域が狭いという事情があるため、パイプライン回路の段数は多く(深く)なる、すなわち、パイプライン段数は増加する傾向にある。このパイプライン段数の増加は、例えば、データ転送帯域は狭いが、演算性能は高いFPGA等のアクセラレータ1において顕著なものとなっている。
図3は、情報処理装置上のパイプライン回路に有限要素法アプリケーションを実装した場合の動作の一例を説明するための図である。図3に示す例は、例えば、最初に、24クロックサイクルかけてデータが入力されてから、271段のパイプラインステージによる演算処理の後に、データが出力される様子を示している。従って、図3に示す例では、データ入力時間(24クロックサイクル)の10倍の時間(271クロックサイクル)を演算処理にかけることによって、効率的なパイプライン処理が実現されている。
図4は、情報処理装置におけるパイプライン処理の他の例を説明するための図であり、図4(a)は、アクセラレータ1の構成を模式的に示すブロック図である。また、図4(b)は、図4(a)に示すアクセラレータ1により処理される個々のデータに対するパイプライン実行の一例を示す図であり、動的に2個目の入力データを待つアクセラレータのパイプライン処理の一例を示すものである。
図4(a)に示すアクセラレータ1において、演算回路10には、第1演算部10f,第2演算部10gおよび第3演算部10hの3つの演算部が設けられている。すなわち、第1演算部10fは、入力としてAをホスト2から読み込んで演算Fを行って中間データZを出力し、第2演算部10gは、入力としてZを第1演算部10fから読み込んで演算Gを行って出力データXをデータ出力部12に出力する。
さらに、第3演算部10hは、入力としてホスト2からのB、および、第1演算部10fからのZを読み込んで演算Hを行い、出力データYをデータ出力部12に出力する。なお、データ出力部12は、マルチプレクサを含み、第2演算部10gからのデータXまたは第3演算部10hからのデータYを選択して、ホスト2に出力する。
図4に示す例は、演算処理を行うデータ入力(入力データA,B)の種類が固定ではなく、処理の実行中に変動する場合を示す。すなわち、図4(a)および図4(b)の例において、通常は、図2に示す例と同様に、Aのみを入力としてXを出力するが、例えば、中間データZの値が或る条件を満たす場合には、別途Bも入力として読み込んで演算Hを行い、出力データYをホスト2に出力する。
具体的に、図4(b)では、2番目の入力データA(A2)に対して、演算Fを行った(F2)後、入力データB(B2)が必要なことが判明した場合であり、このとき、アクセラレータ1は、ホスト2に対して入力データB2を要求する。ホスト2は、アクセラレータ1の要求に基づいて、B2を、データバス3を介してアクセラレータ1に供給する。そして、アクセラレータ1では、第3演算部10hがB(B2)を読み込んで演算Hを行い、出力データY(Y2)をホスト2に出力する。
このように、例えば、アクセラレータ1の演算処理に使用する入力データの種類が実行中に変動するような場合には、パイプラインのストール(停止)期間が発生し、アクセラレータ1の性能劣化を招く虞がある。特に、FPGA等を使用したアクセラレータ1では、パイプライン段数が多いため、例えば、新たな入力データBを要求して処理を行う場合、他のパイプライン処理がリセットされると、性能劣化の影響は大きなものとなってしまう。
図5は、情報処理装置により処理されるアプリケーションの一例としての弾塑性有限要素法での接触解析を説明するための図であり、図5(a)は、弾塑性体Jが対象Kに接触している場合を示し、図5(b)は、JがKから離れている場合を示す。
例えば、情報処理装置(アクセラレータ)1により処理されるアプリケーションが、複数のデータセットを取り扱う弾塑性有限要素法の接触解析の場合、図5(a)のようなJとKが接触している場合と、図5(b)のようなJとKが離れている場合が考えられる。すなわち、図5(a)に示されるように、JとKが接触している場合、JはKから外力を受け続けるので、Jに対して塑性解析を行う。例えば、応力σは、剛塑性マトリクスD'と歪み速度εドット(上部にドットが付されたε)を用いて、次のように計算される。
σ=D'εドット
また、図5(b)に示されるように、JとKが離れている場合、JはKから外力を受けなくなるため、Jに対して弾性解析を行う。例えば、応力σは、弾性マトリクスDと歪み度εを用いて、次のように計算される。
σ=Dε
ここで、図5(a)の場合と図5(b)の場合のどちらに該当するかは、JがKから受ける力が、Aが押される方向であることを動的に判定することが求められる。そして、その判定結果によって、{D',εドット}と{D,ε}のいずれのデータセットを、応力σの計算に使用するかが変化する。すなわち、図5(a)および図5(b)に示す弾塑性有限要素法での接触解析では、例えば、図4(a)および図4(b)を参照して説明したようなパイプライン処理が行われる。なお、このようなパイプライン処理は、弾塑性有限要素法での接触解析に限定されるものではなく、様々な場合に実行されるのはいうまでもない。
図6は、情報処理装置における解決手法の一例を説明するための図であり、図6(a)は、前述した図4(a)と同様のものである。また、図6(b)は、前述した図4(b)に相当するものであり、図4(a)および図4(b)を参照して説明した課題を解決する手法の一例を説明するためのものである。
図4(a)および図4(b)を参照して説明したように、例えば、アクセラレータ1の演算処理に使用する入力データの種類が実行中に変動すると、パイプラインのストール期間が発生してアクセラレータ1の性能劣化を招く虞がある。そこで、図6(b)に示されるように、多種類のデータセットを取り扱うアプリケーションのパイプライン化として、可能性がある全てのデータセット(入力データB:B1,B2,B3,…)をアクセラレータ1に送信する構成が考えられる。なお、アクセラレータ1において、実際に使用される入力データBは、図4(b)を参照して説明したようにB2のみであり、B1,B3,B4,…は、使用されずに無駄になる。
このように、可能性がある全てのデータセットをアクセラレータに送信する場合、使用されずに無駄になるデータもアクセラレータへ常に送信することになるため、データ転送速度が遅くなり、その結果、パイプライン処理の性能が劣化してしまう。さらに、データセットの個数が増えると、さらに、処理性能の低下を招く虞もある。
図7は、情報処理装置における解決手法の他の例を説明するための図である。ここで、図7(a)は、アクセラレータ1の構成を模式的に示すブロック図であり、パイプラインの実行パスに分岐が無くなるように、実行パスを分割したものである。すなわち、実行パスを分割する際、分割点での中間データ(Z)をアクセラレータ1の出力と入力に接続することになる。また、図7(b)は、前述した図4(b)および図6(b)に相当するもので、図7(a)に示すアクセラレータ1によるパイプライン処理の一例を示すものである。
図7(a)と、前述した図4(a)(図6(a))の比較から明らかなように、図7(a)に示すアクセラレータ1では、第1演算部10fの入力データA、第2演算部10gの入力データZ、並びに、第3演算部10hの入力データZ,Bは、データ入力部11から入力される。また、第1演算部10fの出力データZ、第2演算部10gの出力データX、並びに、第3演算部10hの出力データYは、データ出力部12に出力される。
すなわち、各演算部10f,10g,10hの入力データA,Z,Bは、全てホスト2からデータ入力部11を介して入力され、各演算部10f,10g,10hの出力データZ,X,Yは、全てデータ出力部12を介してホスト2に出力される。これにより、例えば、ホスト2から送信されるデータセットによって、パイプラインの実行パス(各演算部10f,10g,10h)が特定されるため、パイプライ処理のストールを防止することができる。
しかしながら、図7(b)に示されるように、実行パスを分割すると、例えば、データ出力部12およびデータ入力部11において中間データ(Z:Z1,Z2,…)の送受信が追加されることになる。そのため、図6(a)および図6(b)を参照して説明したのと同様に、例えば、中間データZを、データ出力部12またはデータ入力部11を介してホスト2と遣り取りすることになり、データ転送速度の遅延およびパイプライン処理の性能劣化を招く虞がある。
以下、情報処理装置、情報処理方法および情報処理プログラムの実施例を、添付図面を参照して詳述する。図8は、本実施形態に係る情報処理装置を模式的に示すブロック図である。図8に示されるように、本実施形態の情報処理装置(アクセラレータ)1は、演算回路10、再実行制御部13、再実行判定部14および再実行情報メモリ(記憶部)15を含む。なお、アクセラレータ1としては、例えば、FPGAやGPU(GPGPU)等が使用され、パイプライン処理が行われるのは、前述したのと同様である。
アクセラレータ1は、ホスト2からの入力データを読み取るための入力データ用ポートP1、および、出力データをホスト2に書き込むための出力データ用ポートP2を含む。また、アクセラレータ1は、入力データが再実行の用途か否かを示す「再実行入力フラグ」を受け取る再実行入力フラグ用ポートP3、および、出力データは再実行が必要か否かを示す「再実行出力フラグ」を出力する再実行出力フラグ用ポートP4を含む。
再実行制御部13は、ポートP3を介して入力された再実行入力フラグに基づいて、演算回路10に対して再実行を指示し、再実行判定部14は、演算回路10の演算結果に基づいて、再実行が必要か否かを判定する。なお、再実行判定部14からの再実行出力フラグは、ポートP4を介して出力される。再実行情報メモリ15は、再実行に備えて、演算の途中結果等の情報を格納するためのものである。
図9は、情報処理装置の第1実施例を模式的に示すブロック図であり、前述した図4(a)および図6(a)に示す情報処理装置に対応するものである。図9に示されるように、第1実施例の情報処理装置(アクセラレータ)1は、演算回路10、データ入力部11(再実行制御部13)、データ出力部12、判定部(D:再実行判定部)14、および、再実行情報メモリ(記憶部)15を含む。演算回路10は、データAに対して演算Fを行う第1演算部10f、データ(中間データ)Zに対して演算Gを行う第2演算部10g、並びに、データBおよびZに対して演算Hを行う第3演算部10hを含む。ここで、図9(並びに、図10~図12および図14(a),図15(a),…等)では、再実行制御部13を明示していないが、データ入力部11が再実行制御部13としての機能を有している。
図9と、前述した図4(a)および図6(a)の比較から明らかなように、第1実施例のアクセラレータ1では、第1演算部10fからの中間データZが第3演算部10hではなく、再実行情報メモリ15に入力されている。そして、第3演算部10hは、データ入力部11からの入力データ(データ入力)Bと、再実行情報メモリ15からのデータ(中間データ)Zを受け取って演算Gを行い、出力データ(データ出力)Yをデータ出力部12に出力する。なお、データ出力部12は、マルチプレクサを含み、第2演算部10gからのデータXまたは第3演算部10hからのデータYを選択して、ホスト2に出力する。
すなわち、第1実施例のアクセラレータ1において、第1演算部10fからの中間データZは、再実行情報メモリ15を介して第3演算部10hに入力されるようになっている。また、例えば、ホスト2(CPU21)からの再実行入力フラグIfは、ポートP3を介してデータ入力部11(再実行制御部13)および判定部(再実行判定部)14に入力される。さらに、判定部14からの再実行出力フラグOfは、ポートP4を介してホスト2(CPU21)に入力される。ここで、判定部14は、再実行入力フラグIfおよび第1演算部10fからの信号Sを受け取って判定を行い、再実行出力フラグOfを出力する。
図10~図12は、図9に示す情報処理装置の動作の例を説明するための図であり、図10は、図9に示す情報処理装置において、再実行が不要な場合の動作の一例を説明するためのものである。また、図11は、図9に示す情報処理装置において、再実行が必要になった場合の動作の一例を説明するためのものであり、図12は、再実行を行った後、再実行が不要になった場合の動作の一例を説明するためのものである。
ここで、再実行入力フラグIfが真(True)のときは、入力データが再実行用のデータであることを表し、再実行入力フラグIfが偽(False)のときは、入力データが再実行用のデータではないことを表すものとする。さらに、再実行出力フラグOfがTrueのときは、出力データが、再実行が必要なデータであることを表し、再実行出力フラグOfがFalseのときは、出力データが、再実行が不要のデータであることを表すものとする。
図10および図11を参照して、IfがFalseの場合、すなわち、入力データの種類がAのみである場合を説明する。まず、図10に示されるように、データ入力部11(再実行制御部13)は、FalseのIfおよび入力データAを受け取り、データAを第1演算部10fに出力する。第1演算部10fは、データAを受け取って演算Fを行い、出力データ(中間データ)Zを第2演算部10gに出力し、第2演算部10gは、データZを受け取って演算Gを行い、出力データXをデータ出力部12に出力する。
このとき、判定部14は、FalseのIfおよび第1演算部10fからの信号Sを受け取り、例えば、信号Sに基づいて、再実行が不要であると判定すると、False(偽)の再実行主力フラグOfを生成する。ここで、第2演算部10gの出力データXが、データ出力部12からポートP2を介してホスト2に出力され、同時に、判定部14で生成されたFalseのOfが、ポートP4を介してホスト2に出力される。これにより、ホスト2(CPU21)は、出力データXと共に、FalseのOfを受け取り、アクセラレータ1で実行された処理は、再実行が不要であることを認識して、アクセラレータ1に対して、次の処理のためのデータを出力する。
次に、図11を参照して、IfがFalseであるが、再実行が必要な場合を説明する。まず、アクセラレータ1に対する入力時では、図10を参照して説明したのと同様に、データ入力部11は、FalseのIfおよび入力データAを受け取り、データAを第1演算部10fに出力する。第1演算部10fは、データAを受け取って演算Fを行い、中間データZを再実行情報メモリ15に出力し、再実行情報メモリ15は、受け取った中間データZを保存する。ここで、第2演算部10gは、第1演算部10fによる演算Fにより再実行が必要なことを認識して処理を停止(中断)する。
このとき、判定部14は、FalseのIfおよび第1演算部10fからの信号Sを受け取るが、例えば、信号Sに基づいて、再実行が必要であると判定すると、True(真)の再実行主力フラグOfを生成する。すなわち、第1演算部10fによる演算Fを行って再実行が必要な場合、判定部14は、FalseのOfではなくTrueのOfを生成し、そのTrueのOfを、ポートP4を介してホスト2に出力する。ホスト2は、TrueのOfを受け取ることで、アクセラレータ1で実行された処理は、再実行が必要であることを認識し、アクセラレータ1に対して、再実行を行うための追加のデータ(B)を出力する。すなわち、再実行が必要であることを認識したホスト2は、アクセラレータ1に対して、図12に示すようなTrueのIfと共に、データ(B)を出力する。
図12に示されるように、再実行が必要な場合、データ入力部11は、TrueのIfおよび入力データBを受け取り、データBを第3演算部10hに出力する。すなわち、アクセラレータ1は、例えば、ホスト2側で入力データBが準備できた時点で、TrueのIfと共に、入力データBを受け取って、再実行の処理を行う。ここで、第3演算部10hは、入力データBと共に、再実行情報メモリ15に保存されたデータ(中間データ)Zを受け取って演算Hを行い、出力データYをデータ出力部12に出力する。このとき、判定部14は、TrueのIfを受け取り、例えば、再実行を行ってさらなる再実行が不要であると判定すると、FalseのOfを生成する。
そして、第3演算部10hの出力データYが、データ出力部12からポートP2を介してホスト2に出力され、同時に、判定部14で生成されたFalseのOfが、ポートP4を介してホスト2に出力される。これにより、ホスト2は、出力データYと共に、FalseのOfを受け取り、アクセラレータ1で実行された処理は、再実行が不要であることを認識して、アクセラレータ1に対して、次の処理のためのデータを出力する。なお、図10~図12では、説明を簡略化するために、3つの演算部10f,10g,10hおよび1つの中間データZを扱う場合を説明したが、演算部および中間データの数は、さらに多数であってもよい。すなわち、第1演算部10f,第2演算部10gおよび第3演算部10hに相当する演算部は、複数設けられてもよく、それに伴って、中間データの数も複数であってもよい。
図13は、図9に示す情報処理装置におけるパイプライン処理の一例を説明するための図である。まず、再実行(入力データB)が必要になる頻度が低い場合、データ転送の帯域低下は皆無に近く、最大限のパイプライン処理性能を確保することができる。図13において、再実行による処理は、再実行入力フラグIfをTrue(真:T)にして、入力データB2を入力する。そして、第3演算部10hにより、入力データB2、および、再実行情報メモリ15から読み出したデータ(中間データ)Z2を入力として演算Hを行い、データY2を出力する。なお、前述したように、出力データY2をホスト2に出力するとき、再実行出力フラグOfはFalse(偽:F)とされる。
図13に示されるように、例えば、再実行が必要な場合(図13における太線のパス)でも、中間データZ(Z2)を再実行情報メモリ15に保存して処理を中断することにより、パイプライン処理のストールを回避することができる。また、例えば、ホスト2が再実行に必要な追加の入力データB(B2)を準備するまでの期間でも、別の入力データA3,A4,A5に対して処理を続行することができる。
さらに、ホストが入力データB(B2)を準備できた時は、例えば、再実行入力フラグIfをTrue(真:T)にすることにより、再実行をアクセラレータ1に指示することができる。そして、再実行時のパスにおいても、ストールが無いパイプライン処理を行うことが可能になる。
このように、第1実施例の情報処理装置(アクセラレータ)によれば、多種類のデータセットを取り扱うアプリケーションで、かつ、その実行中に動的に使うデータセットが変動する場合でも、効率的なパイプライン処理を情報処理装置上に実現することができる。すなわち、パイプライン処理をより一層高速化することが可能になる。なお、この第1実施例による効果は、以下に詳述する他の実施例でも、同様に奏されるのはいうまでもない。
図14は、情報処理装置の第2実施例を説明するための図であり、パイプライン処理がストールする確率を下げるために、再実行情報メモリ15が、複数個の再実行情報(Z2,Z4)を保存可能としたものである。ここで、図14(a)は、アクセラレータの構成を模式的に示すブロック図であり、図14(b)は、図14(a)に示すアクセラレータによるパイプライン処理の一例を示す図である。
図14(a)に示されるように、第2実施例の情報処理装置1において、再実行情報メモリ15は、例えば、FIFO(First In First Out)バッファであり、複数の中間データ(再実行を行うための情報)Z2,Z4,…が保存できるようになっている。すなわち、図14(b)に示されるように(前述した図13と同様に)、再実行情報メモリ15は、第1演算部10fからの中間データZ2を保存し、再実行時に、入力データB2と共に、第3演算部10hに出力する。第3演算部10hは、演算H(H2)を行って、出力データY2を、False(偽:F)の再実行出力フラグOfと共に、ホスト2に出力する。
図14(b)では、さらに、入力データA4に対する処理でも再実行が必要になった場合を示し、このときの中間データZ4を、FIFOバッファの再実行情報メモリ15に保存する。すなわち、再実行情報メモリ15はFIFOバッファであるため、再実行が必要になった場合の中間データZ2,Z4,…を順にFIFOバッファの最後尾に追加し、再実行時には、中間データZ2,Z4,…をFIFOバッファの先頭から順に取り出す。このように、FIFOバッファ(再実行情報メモリ)15に複数の中間データZ2,Z4,…を保存することで、前回発生した再実行が完了する前に、次の再実行が必要になった場合でも、ストールさせずにパイプライン処理を継続させることが可能になる。
図15は、情報処理装置の第3実施例を説明するための図であり、再実行情報メモリの空き容量が無くなった、或いは、無くなりそうなことを検知して、再実行情報を廃棄する機能を持たせたものである。ここで、図15(a)は、アクセラレータの構成を模式的に示すブロック図であり、図15(b)は、図15(a)に示すアクセラレータによるパイプライン処理の一例を示す図である。
図15(a)と、上述した図14(a)の比較から明らかなように、第3実施例の情報処理装置1は、例えば、第1演算部10fの出力と再実行情報メモリ15の入力の間に、廃棄制御信号Sdにより制御されるバッファ16を挿入するようになっている。ここで、廃棄制御信号Sdは、再実行情報メモリ15の空き容量が無くなった場合、或いは、再実行情報メモリ15の空き容量が所定の閾値よりも低下して再実行情報メモリ15の空き容量が無くなりそうになった場合に出力され、バッファ16を不活性にする。
ここで、廃棄制御信号Sdが出力されると、バッファ16は、第1演算部10fからの中間データZ(Z4)を再実行情報メモリ15に出力せずに、廃棄することになる。なお、廃棄制御信号Sdは、例えば、FIFOバッファ(再実行情報メモリ)15の満杯を表す満杯信号fullであってもよい。また、廃棄制御信号Sdは、判定部14にも入力され、中間データZ4が廃棄されて再実行情報メモリ15に保存されておらず、そのまま再実行を行うことができないことを示す再実行出力フラグOf(例えば、C:CancelのOf)を生成してホスト2に出力する。これにより、ホスト2は、中間データZ4が廃棄されたことを認識することになる。
すなわち、図15(b)に示されるように、例えば、再実行メモリ15に空きが無い時、満杯信号full(Sd)が高レベル『1』になると、バッファ16が不活性化され、第1演算部10fからの新たな中間データZ4は、再実行情報メモリ15に送られずに廃棄される。同時に、判定部14は、満杯信号fullに基づいて、中間データZ4が廃棄されたことを表すcancel(C)の再実行出力フラグOfをホスト2に出力する。ホスト2は、Cの再実行出力フラグOfを受け取って、例えば、入力データA4に対する中間データZ4が廃棄されたことを認識し、再実行の際は、入力データA4からの処理をやり直すことになる。なお、廃棄制御信号Sdとしては、満杯信号fullに限定されるものではなく、再実行情報メモリ15の空き容量が無くなりそうになった場合に出力される信号(例えば、あと数個で満杯になる事を示すalmost-full信号)を適用することもできるのは、前述の通りである。
図16は、情報処理装置の第4実施例を説明するための図であり、新たな再実行情報を廃棄する代わりに、その新たな再実行情報をホストに出力して退避させる機能を持たせたものである。ここで、図16(a)は、アクセラレータの構成を模式的に示すブロック図であり、図16(b)は、図16(a)に示すアクセラレータによるパイプライン処理の一例を示す図である。
図16(a)に示されるように、第4実施例の情報処理装置1は、上述した第3実施例におけるバッファ16の代わりに、マルチプレクサ17および18を設けるようになっている。すなわち、第1演算部10fからの中間データZは、マルチプレクサ17により、再実行情報メモリ15に入力するか、ホスト2に出力して退避させるかを切り替える。例えば、満杯信号fullが低レベル『0』のときは、中間データZを再実行情報メモリ15に渡し、満杯信号fullが高レベル『1』のときは、廃棄せずに、データ出力部12およびポートP2を介してホスト2に出力する。
同時に、判定部14は、満杯信号fullに基づいて、C(cancel)の再実行出力フラグOfを生成して、出力中間データZ4が再実行情報メモリ15に格納されずに、出力データ(Y4)に現れていることをホスト2に知らせる。その後、ホスト2は、Cの再実行入力フラグIfと共に、中間データZ4および入力データB4を入力する。ここで、マルチプレクサ18は、データ入力部11の出力および再実行情報メモリ15の出力を入力とし、出力を第3演算部10hに与えるようになっている。
すなわち、マルチプレクサ18は、再実行時には、例えば、図12および図13を参照して説明したように、再実行情報メモリ15の出力を選択して第3演算部10hに供給する。また、マルチプレクサ18は、CのIfと共に、Z4およびB4が入力された場合には、データ入力部11からのZ4を選択して第3演算部10hに供給する。なお、図16(a)および図16(b)に示されるように、第3演算部10hは、Z4と共に、データ入力部11からのB4も受け取って演算Hを行い、出力データY4を出力する。
図17は、情報処理装置の第5実施例を説明するための図であり、再実行フラグIf,Ofに対して、再実行に関連する付加情報(例えば、再実行の種類、必要なデータの種別等)を加えて、複数種類の再実行を可能とするものである。ここで、図17(a)は、アクセラレータの構成を模式的に示すブロック図であり、図17(b)は、図17(a)に示すアクセラレータによるパイプライン処理の一例を示す図である。
図17(a)に示されるように、第5実施例の情報処理装置1は、演算Jを行う第4演算部10jを有し、さらに、再実行情報メモリ15の出力(中間データZ)を、例えば、第3演算部10hまたは第4演算部10jに選択して与えるマルチプレクサ19を含む。ここで、第3演算部10hおよび第4演算部10jは、両方とも再実行処理を行うものとする。
第5実施例の情報処理装置1において、再実行情報メモリ15に保存される第1演算部10fの出力(中間データ)Zには、例えば、使用される演算部の情報が付加されている。すなわち、再実行情報メモリ15において、中間データZ2は、第3演算部10hによる演算Hを行うためのものであることが付加情報として示され、中間データZ4は、第4演算部10jによる演算Jを行うためのものであることが付加情報として示されている。
そして、再実行情報メモリ15から中間データZを読み出す場合、中間データZ2は、付加情報に基づいて第3演算部10hに入力され、中間データZ4は、付加情報に基づいて第4演算部10jに入力される。すなわち、図17(b)に示されるように、例えば、再実行情報メモリ15から、中間データZ2が読み出されると、付加情報に基づいて、マルチプレクサ19を介して第3演算部10hに入力され、入力データB2と共に演算Hが行われて出力データY2が出力される。また、例えば、再実行情報メモリ15から、中間データZ4が読み出されると、付加情報に基づいて、マルチプレクサ19を介して第4演算部10jに入力され、入力データB4と共に演算Jが行われて出力データW4が出力される。なお、上述した付加情報は、単なる例であり、様々な情報を中間データZに付加して再実行情報メモリ15に保存することにより、パイプライン処理のより一層の高速化に寄与することになる。
図18は、情報処理装置の第6実施例を説明するための図であり、再実行時に必要なデータを事前に纏めて入力しておくことにより、ホストとの再実行フラグの交換時間を低減するようにしたものである。ここで、図18(a)は、アクセラレータの構成を模式的に示すブロック図であり、図18(b)は、図18(a)に示すアクセラレータによるパイプライン処理の一例を示す図である。
図18(a)に示されるように、第6実施例の情報処理装置1は、例えば、再実行の際に必要な追加の入力データB(B2,B4)を予め読み込んで、再実行情報メモリ15に格納しておく。この時、例えば、再実行入力フラグIfの代わりに設けたデータ種別フラグIfkにより、再実行用の追加データB2,B4の入力である旨をアクセラレータ1に伝えるようになっている。
ここで、判定部14による再実行が必要か否かの判定は、前述したのと同様であるが、前述した再実行出力フラグOfは、ポートP4を介してホスト2に出力するのではなく、第3演算部10hに出力する。これは、第3演算部10hが、情報処理装置1から追加データB2,B4を読み出すかどうかの判断に使うためである。この第6実施例は、例えば、再実行を生じるデータが事前に分かる場合に適用するのが好ましい。
図18(b)に示されるように、例えば、再実行を生じるデータが、事前に入力データA2およびA4であることが分かっている場合、再実行が生じることを検知したときに、追加データB2およびB4を予め纏めて読み込むことができる、これにより、再実行が生じる場合でも、再実行情報メモリ15から追加データB2,B4を読み出すことで、以後はストールせずにパイプライン動作を行うことが可能になる。これにより、例えば、ホスト2との再実行フラグ(If,Of)の交換時間を低減することが可能になる。
上述した様々な実施例は、例えば、問題のない範囲において、適宜組み合わせて適用することが可能である。また、上述した実施例では、説明のために、アクセラレータ(情報処理装置)の構成を簡略化したが、例えば、演算部、中間データおよび追加データの数等は、さらに多数であってもよいのはもちろんである。さらに、上述した各実施例は、演算処理装置(例えば、ホスト2におけるCPU21)により実行されるプログラムとして実施することができるのはいうまでもない。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
第1データを入力としてパイプライン処理を行う演算部と、
前記演算部の演算結果に基づいて、前記第1データとは異なる第2データを前記演算部に入力して処理を実行するか否かを判定する判定部と、を有する情報処理装置であって、
前記演算部は、前記判定部が前記第2データを前記演算部に入力して処理を実行すると判定した場合、前記第2データを使用して処理を実行する前記演算部の演算を中断すると共に、前記第2データが入力されるまで、前記第1データを入力として処理を実行する前記演算部の演算を継続し、前記第2データが入力されたときは、中断された前記第2データを使用して処理を実行する前記演算部の演算を行う、
ことを特徴とする情報処理装置。
(付記2)
前記第1データおよび前記第2データは、ホストからの入力データであり、
前記判定部は、前記演算部の演算結果に基づく再実行制御信号と共に、前記入力データが再実行の用途か否かを示す再実行入力フラグを受け取り、前記第2データを前記演算部に入力して処理を再実行するか否かを判定し、前記情報処理装置により処理が行われた出力データと共に、前記出力データは再実行が必要か否かを示す再実行出力フラグを出力する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)
前記演算部は、
前記第1データを受け取って第1演算を行う第1演算部と、
前記第1演算部の出力を受け取って第2演算を行う第2演算部と、
前記第1演算部の出力と共に、前記第2データを受け取って第3演算を行う第3演算部と、を含み、
前記情報処理装置は、さらに、
前記第1演算部の出力を中間データとして保存する記憶部を有し、
前記判定部が前記第2データを前記演算部に入力して処理を実行すると判定した場合、前記中間データを、前記記憶部に保存し、
前記第2データが入力されたときは、前記記憶部に保存された前記中間データを、前記第2データと共に、前記第3演算部に入力して前記第3演算を行う、
ことを特徴とする付記2に記載の情報処理装置。
(付記4)
前記記憶部は、複数の前記中間データを保持して順番に出力するFIFOバッファである、
ことを特徴とする付記3に記載の情報処理装置。
(付記5)
前記記憶部の空き容量が無くなった場合、或いは、所定の閾値よりも低下して無くなりそうになった場合には、新たな前記中間データを前記記憶部に保存せずに廃棄する、
ことを特徴とする付記4に記載の情報処理装置。
(付記6)
前記記憶部の空き容量が無くなった場合、或いは、所定の閾値よりも低下して無くなりそうになった場合には、新たな前記中間データを前記記憶部に保存せずに前記ホストに出力して退避させる、
ことを特徴とする付記4に記載の情報処理装置。
(付記7)
前記記憶部は、前記中間データと共に、前記中間データを使用して行う再実行に関連する付加情報を保存する、
ことを特徴とする付記3乃至付記6のいずれか1項に記載の情報処理装置。
(付記8)
前記記憶部は、
前記判定部が前記第2データを前記演算部に入力して処理を実行すると判定する前に、前記第2データを、前記ホストから受け取って保存する、
ことを特徴とする付記3乃至付記7のいずれか1項に記載の情報処理装置。
(付記9)
前記演算部は、
前記第1演算部,前記第2演算部および前記第3演算部に相当する演算部は、複数設けられている、
ことを特徴とする付記1乃至付記8のいずれか1項に記載の情報処理装置。
(付記10)
前記情報処理装置は、FPGA,GPUまたはGPGPUを使用したアクセラレータである、
ことを特徴とする付記1乃至付記9のいずれか1項に記載の情報処理装置。
(付記11)
第1データを入力としてパイプライン処理を行う演算部と、前記演算部の演算結果に基づいて、前記第1データとは異なる第2データを前記演算部に入力して処理を実行するか否かを判定する判定部と、を有し、前記演算部により処理を実行する情報処理方法であって、
前記判定部が前記第2データを前記演算部に入力して処理を実行すると判定した場合、前記第2データを使用して処理を実行する前記演算部の演算を中断し、
前記第2データが入力されるまで、前記第1データを入力として処理を実行する前記演算部の演算を継続し、
前記第2データが入力されたときは、中断された前記第2データを使用して処理を実行する前記演算部の演算を行う、
ことを特徴とする情報処理方法。
(付記12)
第1データを入力としてパイプライン処理を行う演算部と、前記演算部の演算結果に基づいて、前記第1データとは異なる第2データを前記演算部に入力して処理を実行するか否かを判定する判定部と、を有する情報処理装置の情報処理プログラムであって、
前記情報処理装置を制御するホストのCPUに、
前記判定部が前記第2データを前記演算部に入力して処理を実行すると判定した場合、前記第2データを使用して処理を実行する前記演算部の演算を中断し、
前記第2データが入力されるまで、前記第1データを入力として処理を実行する前記演算部の演算を継続し、
前記第2データが入力されたときは、中断された前記第2データを使用して処理を実行する前記演算部の演算を行う、処理を実行させる、
ことを特徴とする情報処理プログラム。
1 情報処理装置(アクセラレータ)
2 ホスト
3 データバス
10 演算回路
10f 第1演算部
10g 第2演算部
10h 第3演算部
10j 第4演算部
11 データ入力部
12 データ出力部
13 再実行制御部
14 再実行判定部(判定部)
15 再実行情報メモリ(記憶部)
16 バッファ
17~19 マルチプレクサ
21 CPU
22 メモリ

Claims (9)

  1. 第1データを入力とし、互いの出力が入力になるように分割された複数段の演算部を同時に動作させるパイプライン処理を行う演算回路と、
    前記演算回路の演算結果に基づいて、前記第1データとは異なる第2データを前記演算回路に入力して処理を実行するか否かを判定する判定部と、を有する情報処理装置であって、
    前記演算回路は、前記判定部が前記第2データを前記演算回路に入力して処理を実行すると判定した場合、前記第2データを使用して処理を実行する前記演算回路の演算を中断すると共に、前記第2データが入力されるまで、前記第1データを入力として処理を実行する前記演算回路の演算を継続し、前記第2データが入力されたときは、中断された前記第2データを使用して処理を実行する前記演算回路の演算を行う、
    ことを特徴とする情報処理装置。
  2. 前記第1データおよび前記第2データは、ホストからの入力データであり、
    前記判定部は、前記演算回路の演算結果に基づく再実行制御信号と共に、前記入力データが再実行の用途か否かを示す再実行入力フラグを受け取り、前記第2データを前記演算回路に入力して処理を再実行するか否かを判定し、前記情報処理装置により処理が行われた出力データと共に、前記出力データは再実行が必要か否かを示す再実行出力フラグを出力する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記演算回路は、
    前記第1データを受け取って第1演算を行う第1演算部と、
    前記第1演算部の出力を受け取って第2演算を行う第2演算部と、
    前記第1演算部の出力と共に、前記第2データを受け取って第3演算を行う第3演算部と、を含み、
    前記情報処理装置は、さらに、
    前記第1演算部の出力を中間データとして保存する記憶部を有し、
    前記判定部が前記第2データを前記演算回路に入力して処理を実行すると判定した場合、前記中間データを、前記記憶部に保存し、
    前記第2データが入力されたときは、前記記憶部に保存された前記中間データを、前記第2データと共に、前記第3演算部に入力して前記第3演算を行う、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記記憶部は、複数の前記中間データを保持して順番に出力するFIFOバッファである、
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記記憶部の空き容量が無くなった場合、或いは、所定の閾値よりも低下して無くなりそうになった場合には、新たな前記中間データを前記記憶部に保存せずに廃棄する、
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記記憶部の空き容量が無くなった場合、或いは、所定の閾値よりも低下して無くなりそうになった場合には、新たな前記中間データを前記記憶部に保存せずに前記ホストに出力して退避させる、
    ことを特徴とする請求項4に記載の情報処理装置。
  7. 前記記憶部は、前記中間データと共に、前記中間データを使用して行う再実行に関連する付加情報を保存する、
    ことを特徴とする請求項3乃至請求項6のいずれか1項に記載の情報処理装置。
  8. 前記記憶部は、
    前記判定部が前記第2データを前記演算回路に入力して処理を実行すると判定する前に、前記第2データを、前記ホストから受け取って保存する、
    ことを特徴とする請求項3乃至請求項7のいずれか1項に記載の情報処理装置。
  9. 第1データを入力とし、互いの出力が入力になるように分割された複数段の演算部を同時に動作させるパイプライン処理を行う演算回路と、前記演算回路の演算結果に基づいて、前記第1データとは異なる第2データを前記演算回路に入力して処理を実行するか否かを判定する判定部と、を有し、前記演算回路により処理を実行する情報処理方法であって、
    前記判定部が前記第2データを前記演算回路に入力して処理を実行すると判定した場合、前記第2データを使用して処理を実行する前記演算回路の演算を中断し、
    前記第2データが入力されるまで、前記第1データを入力として処理を実行する前記演算回路の演算を継続し、
    前記第2データが入力されたときは、中断された前記第2データを使用して処理を実行する前記演算回路の演算を行う、
    ことを特徴とする情報処理方法。
JP2017149827A 2017-08-02 2017-08-02 情報処理装置および情報処理方法 Active JP7013707B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017149827A JP7013707B2 (ja) 2017-08-02 2017-08-02 情報処理装置および情報処理方法
US16/047,773 US10754658B2 (en) 2017-08-02 2018-07-27 Information processing apparatus, information processing method, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017149827A JP7013707B2 (ja) 2017-08-02 2017-08-02 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2019028865A JP2019028865A (ja) 2019-02-21
JP7013707B2 true JP7013707B2 (ja) 2022-02-01

Family

ID=65229457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017149827A Active JP7013707B2 (ja) 2017-08-02 2017-08-02 情報処理装置および情報処理方法

Country Status (2)

Country Link
US (1) US10754658B2 (ja)
JP (1) JP7013707B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
KR20240132105A (ko) 2013-02-07 2024-09-02 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179745B1 (en) * 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11892118B2 (en) 2019-02-20 2024-02-06 Ricoh Company, Ltd. Display stand and display stand system
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
WO2020255239A1 (ja) * 2019-06-18 2020-12-24 日本電信電話株式会社 データ処理装置、データ処理方法及びプログラム
US11438452B1 (en) 2019-08-09 2022-09-06 Apple Inc. Propagating context information in a privacy preserving manner
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US10976965B1 (en) * 2020-10-14 2021-04-13 First Capitol Consulting, Inc. Optimization of in-memory processing of data represented by an acyclic graph so that the removal and re-materialization of data in selected nodes is minimized

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011134181A (ja) 2009-12-25 2011-07-07 Fujitsu Ltd 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3144859B2 (ja) 1991-12-04 2001-03-12 沖電気工業株式会社 算術論理演算装置
US5524265A (en) * 1994-03-08 1996-06-04 Texas Instruments Incorporated Architecture of transfer processor
JP3493085B2 (ja) * 1995-11-13 2004-02-03 株式会社東芝 演算器
US6317803B1 (en) * 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
JPH1153189A (ja) 1997-07-31 1999-02-26 Toshiba Corp 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
US6308261B1 (en) * 1998-01-30 2001-10-23 Hewlett-Packard Company Computer system having an instruction for probing memory latency
US6751583B1 (en) * 1999-10-29 2004-06-15 Vast Systems Technology Corporation Hardware and software co-simulation including simulating a target processor using binary translation
US8292811B2 (en) * 2003-03-20 2012-10-23 Siemens Medical Solutions Usa, Inc. Advanced application framework system and method for use with a diagnostic medical ultrasound streaming application
US8055886B2 (en) * 2007-07-12 2011-11-08 Texas Instruments Incorporated Processor micro-architecture for compute, save or restore multiple registers and responsive to first instruction for repeated issue of second instruction
US8576713B2 (en) * 2010-04-23 2013-11-05 Ixia Traffic generator with priority flow control
US10534724B2 (en) * 2015-12-24 2020-01-14 Intel Corporation Instructions and logic to suspend/resume migration of enclaves in a secure enclave page cache
US10254967B2 (en) * 2016-01-13 2019-04-09 Sandisk Technologies Llc Data path control for non-volatile memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011134181A (ja) 2009-12-25 2011-07-07 Fujitsu Ltd 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法

Also Published As

Publication number Publication date
US20190042271A1 (en) 2019-02-07
US10754658B2 (en) 2020-08-25
JP2019028865A (ja) 2019-02-21

Similar Documents

Publication Publication Date Title
JP7013707B2 (ja) 情報処理装置および情報処理方法
CN108133270B (zh) 卷积神经网络加速方法及装置
CN111340200B (zh) 用于执行人工神经网络正向运算的装置和方法
US9557995B2 (en) Data processing apparatus and method for performing segmented operations
CN110825436B (zh) 应用于人工智能芯片的计算方法和人工智能芯片
CN117435855B (zh) 用于进行卷积运算的方法、电子设备和存储介质
US20210089322A1 (en) Logical register recovery within a processor
US9189394B2 (en) Memory-link compression for graphic processor unit
JP7229305B2 (ja) 命令実行結果をライトバックするための装置及び方法、処理装置
CN109032665B (zh) 微处理器中指令输出处理方法及装置
US9588570B2 (en) Apparatus and method for adjusting bandwidth
US7865697B2 (en) Apparatus for and method of processor to processor communication for coprocessor functionality activation
JP6894474B2 (ja) 情報処理方法とプロセッサ
US20070198811A1 (en) Data-driven information processor performing operations between data sets included in data packet
US20190196839A1 (en) System and method for increasing address generation operations per cycle
US8589661B2 (en) Odd and even start bit vectors
CN116324741A (zh) 用于可配置硬件加速器的方法和装置
KR20010085353A (ko) 고속 컨텍스트 전환을 갖는 컴퓨터
CN118672655A (zh) 指令处理装置、方法、处理器、电子设备和存储介质
CN118672661A (zh) 数据处理方法、装置、电子设备和存储介质
US20190042421A1 (en) Memory control apparatus and memory control method
US20210073000A1 (en) Reusing adjacent simd unit for fast wide result generation
CN118689543A (zh) 数据处理方法、装置、电子设备和存储介质
US8806130B2 (en) Memory access device outputting transfer request
US10175989B2 (en) VLIW type instruction packet structure and processor suitable for processing such an instruction packet

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210624

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211115

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20211115

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20211124

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20211130

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: 20211221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220103