JP2015026332A - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP2015026332A
JP2015026332A JP2013156961A JP2013156961A JP2015026332A JP 2015026332 A JP2015026332 A JP 2015026332A JP 2013156961 A JP2013156961 A JP 2013156961A JP 2013156961 A JP2013156961 A JP 2013156961A JP 2015026332 A JP2015026332 A JP 2015026332A
Authority
JP
Japan
Prior art keywords
cpu
mode
program
function
information processing
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
JP2013156961A
Other languages
English (en)
Inventor
千晴 山野
Chiharu Yamano
千晴 山野
英樹 新原
Hideki Niihara
英樹 新原
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.)
Denso IT Laboratory Inc
Original Assignee
Denso IT Laboratory Inc
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 Denso IT Laboratory Inc filed Critical Denso IT Laboratory Inc
Priority to JP2013156961A priority Critical patent/JP2015026332A/ja
Publication of JP2015026332A publication Critical patent/JP2015026332A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 同じ記述で複数の演算器での演算を行えるようにした情報処理装置を提供する。【解決手段】 情報処理装置1は、CPU10と、GPU20と、主関数と当該主関数が呼び出すCPU10用またはGPU20用の補助関数からなる関数群と、CPU10またはGPU20のいずれで処理を実行するかを指定するモード指定関数とを含むライブラリ17を記憶したHDD15と、主関数とモード指定関数を含むプログラム16を記憶するHDD15とを備える。CPU10は、HDD15からライブラリ17を読み出し、ライブラリ17を用いてプログラム16に記述されたモード指定関数で指定されたモードを特定すると共に、プログラム16に記述された主関数を特定し、特定したモードに基づいて主関数に対応する補助関数をライブラリ17から呼び出し、モードに対応するCPU10またはGPU20に対して補助関数に基づく命令を出す。【選択図】 図1

Description

本発明は、CPUに加えて、CPU(Central Processing Unit)とは能力の異なる演算器を有する情報処理装置に関する。
GPU(Graphic Processing Unit)は、パーソナルコンピュータやワークステーション等の画像処理を担当する主要な部品の一つである。GPUは、もともとは、動画信号生成専用の演算器であるが、並列的な演算が得意であるという性質を有するので、近年では、GPUによって並列演算部分を計算させることで、CPUよりも高速に演算するGPUコンピューティングが注目されている。
GPUは、NVIDIA(登録商標)やAMD(登録商標)などの複数のベンダーから提供されているが、ベンダーごとに開発環境が異なるため、使用するGPUのアーキテクチャーをよく理解しないとその使用が難しく、また、使用できたとしてもGPUの性能を十分に引き出すことは難しかった。
特許文献1は、このような問題点に鑑み、GPUによるプログラム作成を簡便にすることを目的とした技術を開示している。特許文献1に記載された方法は、nt_parallel_for()という関数を準備し、その関数をコールするだけで、GPUを使用するための記述部分と同等の機能を実現させるものである。
特開2012−22580号公報
しかし、特許文献1に記載された方法は、特定のGPUを想定した解決手段にすぎず、複数のベンダーから提供される開発環境に対応できるものではない。また、開発環境の違いはGPUに限ったことではなく、CPUに関しても、例えば、インテル(登録商標)、ARM(登録商標)、IBM(登録商標)等、多数のベンダーから提供されており、それぞれ開発環境が異なる。
それに加えて、高速演算処理を行う場合には、計算すべき問題や動作環境によって最適な演算器(CPU、GPU等)が変わる場合があり、いずれの演算器が最適かは実際に計算してみないと分からない場合も多い。特許文献1では、この点がまったく考慮されておらず、いったんGPUで演算処理するプログラムを記述した後に、CPUで演算処理するように変更することは容易ではない。
そこで、本発明は、上記背景に鑑み、同じ記述で複数の演算器での演算を行えるようにした情報処理装置を提供することを目的とする。
本発明の情報処理装置は、CPU(Central Processing Unit)と、前記CPUとは能力の異なる演算器と、主関数と当該主関数が呼び出すCPU用または演算器用の補助関数からなる関数群と、CPUまたは演算器のいずれで処理を実行するかを指定するモード指定関数とを含むライブラリを記憶したライブラリ記憶部と、前記主関数と前記モード指定関数を含むプログラムを記憶するプログラム記憶部とを備え、前記CPUは、前記プログラム記憶部からプログラムを読み出して実行する際に、前記ライブラリ記憶部から前記ライブラリを読み出し、前記ライブラリを用いて前記プログラムに記述されたモード指定関数で指定されたモードを特定すると共に、前記プログラムに記述された主関数を特定し、前記特定したモードに基づいて前記主関数に対応する補助関数を前記ライブラリから呼び出し、前記モードに対応する前記CPUまたは前記演算器に対して前記補助関数に基づく命令を出す構成を有する。ここで、前記演算器は、GPU(Graphics Processing Unit)であってもよい。
このように、主関数および補助関数からなる関数群を有するライブラリを用いて、プログラムに記述された主関数からモードに対応した補助関数を呼び出して実行する構成により、プログラムの開発者は、CPUおよび演算器のそれぞれの記述方法を理解していなくても、主関数によってプログラムを記述することができるので、容易にプログラムを作成できる。なお、演算器は、一つに限らず、複数の演算器を備えていてもよい。この場合、ライブラリには、各演算器に対応する補助関数を用意する。また、CPUまたは演算器のいずれで処理を実行するかのモードを書き換えることにより、処理を行うCPUまたは演算器を容易に変更することができるので、例えば、CPUで処理してみてパフォーマンスが出ない場合には、他の演算器で処理させるように容易にプログラムを変更することができ、最適な演算器での処理を実現することができる。
本発明の情報処理装置は、前記CPUと前記演算器とがそれぞれのメモリを有する場合に、前記CPUまたは前記演算器による演算を行うのに必要なデータが、前記モードに対応する前記CPUまたは前記演算器のメモリ上にあるか否かを判断し、前記必要なデータが前記モードに対応する前記CPUまたは前記演算器のメモリ上にない場合には、前記必要なデータを前記モードに対応する前記CPUまたは前記演算器のメモリへ転送する命令を出す構成を有する。これにより、前記CPUまたは前記演算器による演算を適切に行うことができる。
本発明の情報処理装置において、前記CPUは、前記CPUと前記演算器とがそれぞれのメモリを有する場合には、前記プログラムを実行する前に、前記CPUのメモリと前記演算器のメモリに、同じ大きさのメモリ領域を確保してもよい。このようにCPUと演算器のそれぞれに同じ大きさの領域を確保することにより、CPUと演算器との間でデータを転送して処理を行う場合などに、転送されたデータの管理を容易に行える。
本発明の情報処理装置において、前記CPUは、前記プログラムの実行が終了するときに、前記メモリ領域を解放してもよい。この構成により、メモリ上に不要なデータが残ってしまうことに起因して生じる不具合を防止できる。
本発明の情報処理装置において、前記CPUは、前記CPUまたは前記演算器への命令に対する処理結果を受信する前に、前記CPUまたは前記演算器に次の命令を出してもよい。このようにCPUまたは演算器からの処理結果を待たずに、次の命令を出すことにより、CPUと演算器での並列処理が可能になる。
本発明の情報処理方法は、CPU(Central Processing Unit)と、前記CPUとは能力の異なる演算器とを備える情報処理装置による情報処理方法であって、前記CPUが、主関数と当該主関数が呼び出すCPU用または演算器用の補助関数からなる関数群と、CPUまたは演算器のいずれで処理を実行するかを指定するモード指定関数とを含むライブラリを記憶したライブラリ記憶部から、前記ライブラリを読み出すステップと、前記CPUが、前記主関数と前記モード指定関数を含むプログラムを記憶するプログラム記憶部から、前記プログラムを読み出すステップと、前記CPUが、前記ライブラリを用いて前記プログラムに記述されたモード指定関数で指定されたモードを特定すると共に、前記プログラムに記述された主関数を特定し、前記特定したモードに基づいて前記主関数に対応する補助関数を前記ライブラリから呼び出し、前記モードに対応する前記CPUまたは前記演算器に対して前記補助関数に基づく命令を出すステップとを備える。
本発明のプログラムは、CPU(Central Processing Unit)と、前記CPUとは能力の異なる演算器とを備える情報処理装置にて実行されるプログラムであって、CPUまたは演算器のいずれで処理を実行するかを指定するモード指定関数に設定された引数に基づいて、処理を行うモードを特定するステップと、主関数が実行されると、前記特定したモードに基づいて前記主関数に対応する補助関数を呼び出し、前記モードに対応する前記CPUまたは前記演算器に対して前記補助関数に基づく命令を出すステップとを実行させる構成を有する。
本発明の情報処理方法及びプログラムも、上記した本発明の情報処理装置と同様に、同じ記述により、CPUおよび演算器のいずれでも演算が可能な情報処理装置を実現することができる。なお、本発明の情報処理装置の各種の構成を、本発明の情報処理装置およびプログラムに適用することが可能である。
本発明によれば、同じ記述により、CPUおよび演算器のいずれでも演算が可能な情報処理装置を実現することができる。また、実行のモードを書き換えるだけで、処理を行うCPUまたは演算器を容易に変更することができるので、処理を行うのに最適なCPUまたは演算器を容易に見つけることができる。
実施の形態の情報処理装置の構成を示す図である。 HDDに記憶されたライブラリの例を示す図である。 主関数と補助関数の具体例を示す図である。 実施の形態の情報処理装置の動作を示す図である。 情報処理装置によって処理されるプログラムの一例を示す図である。
以下、本発明の実施の形態の情報処理装置について、図面を参照して説明する。なお、以下に説明する例では、CPU以外の演算器の例として1つのGPUを取り上げるが、CPU以外の演算器は1つに限らず、複数であってもよい。
図1は、実施の形態の情報処理装置1の構成を示す図である。情報処理装置1は、CPU10、RAM11(Random Access Memory)、ROM12(Read Only Memory)、キーボード13、マウス14、HDD(Hard Disc Drive)15、GPU20を備えている。
HDD15には、プログラム16、NTPライブラリ17、CPU用カーネル18、GPU用カーネル19が記憶されている。HDD15は、「ライブラリ記憶部」および「プログラム記憶部」に該当する。プログラム16は、本実施の形態の情報処理装置1がCPU10およびGPU20を用いて実行するプログラム16であり、本実施の形態の開発環境においてプログラム開発者が開発したプログラムである。CPU用カーネル18は、CPU10に対する実行命令の関数である。GPU用カーネル19は、GPU20に対する実行命令の関数である。従来であれば、プログラム開発者は、CPU用カーネル18、GPU用カーネル19の内容を熟知した上で、かつ、情報処理装置1が行う処理をCPU10で行った方が効率が良いのか、GPU20で行った方が効率が良いのかを検討して、CPU10に対する実行命令、GPU20に対する実行命令からなるプログラムを作成する必要があった。
本実施の形態の情報処理装置1は、CPU10およびGPU20のそれぞれに対する命令を同じ記述によって記述するための構成として、ライブラリ17を記憶している。図2は、ライブラリ17に記憶されたデータの例を示す図である。図2に見られるように、ライブラリ17には、主関数とそれに対応する補助関数が対応付けられて記憶されている。また、図2には示していないが、ライブラリ17には、処理を実行するモードを指定するモード指定関数も記憶されている。モード指定関数は、その引数によってモードを指定するものであり、具体的には、後述する図5にて説明する。
図3は、主関数および補助関数の具体例を示す図である。図3は、乗算の主関数および補助関数を示している。図3(a)に示すように主関数は、CPU10かGPU20のいずれの演算器で実行するかに応じて、補助関数を呼び出す。なお、CPUも演算器の一つであるので、本明細書にて「演算器」という場合に、CPUを含むことがある。
図3(b)は、CPU10用の補助関数の例を示す図である。この補助関数は、CPU用カーネル18で提供されている関数(INTEL(登録商標)のMKL)によって実装されている。図3(c)は、GPU20用の補助関数の例を示す図である。この補助関数は、GPU用カーネル19で提供されている関数(NVIDIA(登録商標)のCUBLAS)によって実装されている。
なお、ライブラリ17には、図2及び図3に例示する関数のほかに、数値演算子(行列乗算、配列演算、減算、配列のべき乗、行列のべき乗等)、論理演算子(論理否定、論理積、論理和、排他的論理和等)、比較演算子、一般関数(絶対値、指数、自然対数、平方根等)、三角関数、フーリエ変換(2次元高速フーリエ変換、2次元逆離散フーリエ変換)、補間、汎用関数(サイズ変更、転置、垂直方向結合、水平方向結合等)、フィルタ(2次元コンボリューション、2次元メディアフィルタ等)、色空間関数(RGBからグレースケールへの変換、RGBからYCbCrへの変換、RGBからHSVへの変換等)、静的関数(単位行列生成、全要素が1の行列生成、全要素が0の行列生成、一様分布の擬似乱数生成、正規分布の擬似乱数生成、数列生成等)等の多数の関数が記憶されている。
なお、図3(a)に示した主関数の例では、mtimesという関数を呼び出す例を挙げているが、このような数値演算の場合には、例えば、「*」という数値演算子によって関数を呼び出せるように、演算子のオーバーロードを行ってもよい。例えば、プログラムに「A*B」と記述され、CPU10が「A*B」を読み込むと、CPU10は主関数であるmtimes(A,B)を呼び出す。その結果、補助関数が呼び出されるので、情報処理装置1は、CPU10およびGPU20のいずれの演算器に対しても乗算の命令を出すことができる。
図4は、本実施の形態の情報処理装置1によってプログラム16を実行するときの動作を示すフローチャートである。図5は、情報処理装置1によって処理されるプログラム16の一例を示す図である。情報処理装置1は、まず、HDD15に記憶されたプログラム16を実行するに際して、各演算器のメモリの領域を確保する(S10)。本実施の形態においては、CPU10のRAM11とGPU20のRAM21において、同じ大きさのメモリ領域を確保する。
続いて、CPU10は、HDD15からプログラム16を読み出し、読み出したプログラム16にしたがって処理を行っていく。まず、CPU10は、読み出したプログラム16に基づいて、モードの判定を行う(S11)。図5に示す例では、第5行目に「NTP::setCalcDevice( eGPU );」という関数が記載されており、ここで、GPUモードが設定されている。したがって、CPU10は、GPUモードであると判定し、これ以降の処理はGPUモードで行う。
次に、CPU10は、主関数を読み出し(S12)、主関数に対応する補助関数であって実行中のモードに対応する補助関数を呼び出す(S13)。例えば、図5に示す例において、第10行目に「NTP c=a*b;」という数値演算子が記載されているが、CPU10はこの数値演算子をmtimes(a,b)という関数でオーバーロードする。なお、「NTP c=a*b;」に代えて「NTP c = mtimes(a,b);」と記述してもよく、この場合には、演算子のオーバーロードを行わない。
次に、CPU10は、演算に必要なデータが記憶されている領域がどこにあるかを確認し、必要に応じてデータ転送を行う(S14)。すなわち、CPUモードで演算を行う際に用いるデータが、CPU10のRAM11に記憶されているかどうか、GPUモードで演算を行う際に用いるデータがGPU20のRAM21に記憶されているかどうかを判断する。
そして、例えば、CPUモードで、CPU10が演算を行う際に、その演算に必要となるデータがGPU20のRAM21に記憶されている場合には、GPU20のRAM21に記憶されたデータをCPU10のRAM11に転送するように、GPU20に対して命令する。逆に、GPUモードで演算を行う場合に、演算に必要なデータがCPU10のRAM11にあるときは、RAM11に記憶されたデータをGPU20のRAM21に転送するように、CPU10に対して命令する。
図5に示す例では、第10行目に、GPUモードで処理すべき「NTP c=a*b;」という命令が記述されている。変数a,bは、GPU20で生成されてRAM21に記憶されているので(第7行、第8行)、この場合には、データを転送する必要はない。第10行目にCPUモードで処理すべき「c=a*b;」という命令が記述されているが、この場合には、変数a,bは、CPU10のRAM11にはないので、演算に先立って、GPU20に対して、GPU20のRAM21に記憶された変数a,bのデータをCPU10のRAM11に転送するように命令する。
続いて、CPU10は、主関数であるmtimesに対応するGPUモードの補助関数として、「ctimes_gpu」をコールする(図2及び図3参照)。そして、CPU10は、モードに対応する演算器に対して命令を送信する。ここでは、GPUモードであるので、CPU10は、「ctimes_gpu」の補助関数が規定する命令をGPU20に送信する(S15)。
続いて、CPU10は、プログラム16が終了したか否か判定し(S16)、終了していない場合には(S16でNO)、モードを判定する処理(S11)に戻り、以上に説明した処理を繰り返し行う。逆に、例えば、図5に示すプログラム16の最終行に記載された「NTP::term(); 」を読み出した場合等のようにプログラム16が終了したと判定された場合には(S16でYES)、各演算器のメモリを解放する(S17)。具体的には、情報処理装置1は、RAM11およびRAM21に割り当てたメモリ領域を解放する。そして、情報処理装置1によるプログラム16の実行を終了する。以上、本実施の形態の情報処理装置1の構成および動作について説明した。
本実施の形態の情報処理装置1は、主関数と当該主関数に対応する補助関数との組合せを有するライブラリ17を記憶しておき、プログラム16を実行する際には、モードに合わせて主関数に補助関数を呼び出して実行するので、プログラム開発者は、主関数によってプログラム16を記述することによって、CPU10およびGPU20を用いた処理を行うことができ、プログラム16の作成が容易になる。本実施の形態では、CPU10とGPU20の2つ演算器を有する情報処理装置1を例としたが、演算器の数がさらに多くなった場合には、同じプログラム16の記述によってさらに多くの演算器を動作させることができるので、本実施の形態の構成の効果がより顕著になる。
また、本実施の形態では、どの演算器を使って処理を行うかを特定するモードを変えることにより、CPU10とGPU20とを簡単に切り替えることができる。したがって、GPU20を使ってパフォーマンスが出ない場合にはCPU10を使って処理を行う等のプログラム変更を容易に行うことができ、最適に演算器を用いた処理を実現できる。
また、本実施の形態では、CPU10のRAM11とGPU20のRAM21に同じ大きさのメモリ領域を確保するので、CPU10とGPU20との間でデータの転送が発生する場合にも、安全に処理することができる。例えば、変数a,bは、GPU20で生成され、GPU20のRAM21に記憶されている(第7行、第8行)。CPUモードに切り替えて(第13行)、「c=a*b」を演算する際には(第17行)、CPU10のRAM11にあらかじめ確保されたメモリ領域において、変数a,bの記憶領域を割り当て、GPU20から変数a,bのデータを転送することができる。
以上、本発明の情報処理装置について、実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。
上記した実施の形態では特に言及しなかったが、演算器(CPUまたはGPU)に対する命令の送信は、命令に対する処理結果を待って送信してもよいし、処理結果を待たずに送信してもよい。処理結果を待たずに送信する場合には、いくつかの命令を送信した後で、処理結果を待つ。これにより、CPUとGPUの並列処理を実現することが可能となる。
以上説明したとおり、本発明によれば、同じ記述により、CPUと演算器のいずれでも演算が可能な情報処理装置を実現することができ、CPUと演算器とを備えた情報処理装置において、プログラム開発者がプログラミングを行いやすい開発環境を提供することができる。
1 情報処理装置
10 CPU
11 RAM
12 ROM
13 キーボード
14 マウス
15 HDD
16 プログラム
17 ライブラリ
18 CPU用カーネル
19 GPU用カーネル
20 GPU
21 RAM

Claims (8)

  1. CPU(Central Processing Unit)と、
    前記CPUとは能力の異なる演算器と、
    主関数と当該主関数が呼び出すCPU用または演算器用の補助関数からなる関数群と、CPUまたは演算器のいずれで処理を実行するかを指定するモード指定関数とを含むライブラリを記憶したライブラリ記憶部と、
    前記主関数と前記モード指定関数を含むプログラムを記憶するプログラム記憶部と、
    を備え、
    前記CPUは、前記プログラム記憶部からプログラムを読み出して実行する際に、前記ライブラリ記憶部から前記ライブラリを読み出し、前記ライブラリを用いて前記プログラムに記述されたモード指定関数で指定されたモードを特定すると共に、前記プログラムに記述された主関数を特定し、前記特定したモードに基づいて前記主関数に対応する補助関数を前記ライブラリから呼び出し、前記モードに対応する前記CPUまたは前記演算器に対して前記補助関数に基づく命令を出す情報処理装置。
  2. 前記演算器は、GPU(Graphics Processing Unit)である請求項1に記載の情報処理装置。
  3. 前記CPUと前記演算器とがそれぞれのメモリを有する場合に、前記CPUまたは前記演算器による演算を行うのに必要なデータが、前記モードに対応する前記CPUまたは前記演算器のメモリ上にあるか否かを判断し、前記必要なデータが前記モードに対応する前記CPUまたは前記演算器のメモリ上にない場合には、前記必要なデータを前記モードに対応する前記CPUまたは前記演算器のメモリへ転送する命令を出す請求項1または2に記載の情報処理装置。
  4. 前記CPUは、前記CPUと前記演算器とがそれぞれのメモリを有する場合には、前記プログラムを実行する前に、前記CPUのメモリと前記演算器のメモリに、同じ大きさのメモリ領域を確保する請求項1乃至3のいずれかに記載の情報処理装置。
  5. 前記CPUは、前記プログラムの実行が終了するときに、前記メモリ領域を解放する請求項4に記載の情報処理装置。
  6. 前記CPUは、前記CPUまたは前記演算器への命令に対する処理結果を受信する前に、前記CPUまたは前記演算器に次の命令を出す請求項1乃至5のいずれかに記載の情報処理装置。
  7. CPU(Central Processing Unit)と、前記CPUとは能力の異なる演算器とを備える情報処理装置による情報処理方法であって、
    前記CPUが、主関数と当該主関数が呼び出すCPU用または演算器用の補助関数からなる関数群と、CPUまたは演算器のいずれで処理を実行するかを指定するモード指定関数とを含むライブラリを記憶したライブラリ記憶部から、前記ライブラリを読み出すステップと、
    前記CPUが、前記主関数と前記モード指定関数を含むプログラムを記憶するプログラム記憶部から、前記プログラムを読み出すステップと、
    前記CPUが、前記ライブラリを用いて前記プログラムに記述されたモード指定関数で指定されたモードを特定すると共に、前記プログラムに記述された主関数を特定し、前記特定したモードに基づいて前記主関数に対応する補助関数を前記ライブラリから呼び出し、前記モードに対応する前記CPUまたは前記演算器に対して前記補助関数に基づく命令を出すステップと、
    を備える情報処理方法。
  8. CPU(Central Processing Unit)と、前記CPUとは能力の異なる演算器とを備える情報処理装置にて実行されるプログラムであって、
    CPUまたは演算器のいずれで処理を実行するかを指定するモード指定関数に設定された引数に基づいて、処理を行うモードを特定するステップと、
    主関数が実行されると、前記特定したモードに基づいて前記主関数に対応する補助関数を呼び出し、前記モードに対応する前記CPUまたは前記演算器に対して前記補助関数に基づく命令を出すステップと、
    を実行させるプログラム。
JP2013156961A 2013-07-29 2013-07-29 情報処理装置、情報処理方法、及びプログラム Pending JP2015026332A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013156961A JP2015026332A (ja) 2013-07-29 2013-07-29 情報処理装置、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013156961A JP2015026332A (ja) 2013-07-29 2013-07-29 情報処理装置、情報処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2015026332A true JP2015026332A (ja) 2015-02-05

Family

ID=52490911

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013156961A Pending JP2015026332A (ja) 2013-07-29 2013-07-29 情報処理装置、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2015026332A (ja)

Similar Documents

Publication Publication Date Title
US10338925B2 (en) Tensor register files
US10949177B2 (en) Method and system of a command buffer between a CPU and GPU
US10372456B2 (en) Tensor processor instruction set architecture
Zhou et al. Optimization of parallel iterated local search algorithms on graphics processing unit
JP2020528621A (ja) 加速数学エンジン
US9910714B2 (en) Scriptable dynamic load balancing in computer systems
US20120221788A1 (en) Multi-dimensional array manipulation
EP2698707B1 (en) A method and compilation apparatus for selecting a data layout providing the optimum performance for a target processor using a SIMD scheme
JP5744574B2 (ja) 画像処理装置、画像処理方法及びプログラム
KR20220156954A (ko) 하드웨어 가속 리소스를 인에이블하기 위한 컴파일러-개시 타일 교체
US9830731B2 (en) Methods of a graphics-processing unit for tile-based rendering of a display area and graphics-processing apparatus
CN110168497A (zh) 可变波阵面大小
CN106462426A (zh) 用于图形处理单元的组合计算任务
US10353708B2 (en) Strided loading of non-sequential memory locations by skipping memory locations between consecutive loads
US20200410330A1 (en) Composable neural network kernels
US20220188382A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium
JP2015026332A (ja) 情報処理装置、情報処理方法、及びプログラム
US9430304B2 (en) Method and system for block scheduling control in a processor by remapping
US11630667B2 (en) Dedicated vector sub-processor system
US20230205500A1 (en) Computation architecture synthesis
CN110879744B (zh) 利用多线程执行计算图的方法和系统
Joseph et al. Performance and energy consumption analysis of java code utilizing embedded GPU
KR20240068718A (ko) 컨볼루션 신경망 연산
CN116964618A (zh) 对偶向量算术逻辑单元
Slusanschi et al. Image vectorization on modern architectures

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151113