JP2018132981A - Information processing apparatus having accelerator and information processing method - Google Patents
Information processing apparatus having accelerator and information processing method Download PDFInfo
- Publication number
- JP2018132981A JP2018132981A JP2017026835A JP2017026835A JP2018132981A JP 2018132981 A JP2018132981 A JP 2018132981A JP 2017026835 A JP2017026835 A JP 2017026835A JP 2017026835 A JP2017026835 A JP 2017026835A JP 2018132981 A JP2018132981 A JP 2018132981A
- Authority
- JP
- Japan
- Prior art keywords
- program
- fpga
- information processing
- accelerator
- hardware accelerator
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】ハードウェアアクセラレータの規模を考慮してオフロードする機能を決定する必要性がなくなる上に、オフロードする機能を効率的に決定できるようにする。【解決手段】情報処理装置1は、アプリケーションのソースプログラムをプロセッサ用のプログラムに変換し、ソースプログラムにおける指令されたオフロード可能なプログラムからハードウェアアクセラレータ用のプログラムを生成するソースプログラム変換手段4と、プログラムの実行状況を監視する実行状況監視手段5と、ハードウェアアクセラレータの余裕能力を判定するアクセラレータ判定手段6と、実行状況監視手段の監視結果とアクセラレータ判定手段の判定結果とに基づいて、アプリケーションプログラムの実行中に、ハードウェアアクセラレータにオフロードするプログラムを決定するオフロード決定手段7とを備える。【選択図】図7PROBLEM TO BE SOLVED: To eliminate the need to determine an offload function in consideration of the scale of a hardware accelerator, and to efficiently determine an offload function. An information processing apparatus 1 has a source program conversion means 4 that converts an application source program into a program for a processor and generates a program for a hardware accelerator from an instructed offloadable program in the source program. , The application based on the execution status monitoring means 5 for monitoring the execution status of the program, the accelerator determination means 6 for determining the margin capacity of the hardware accelerator, and the monitoring result of the execution status monitoring means and the determination result of the accelerator determination means. The program is provided with an offload determining means 7 for determining a program to be offloaded to the hardware accelerator during execution of the program. [Selection diagram] FIG. 7
Description
本発明は、ハードウェアアクセラレータを用いる情報処理装置および情報処理方法に関する。 The present invention relates to an information processing apparatus and an information processing method using a hardware accelerator.
データセンタなどのHPC(High Performance Computing)が求められる分野において、コンピュータの高性能化と低消費電力を実現するために、プロセッサ(以下、CPU:Central Processing Unit という。)とハードウェアアクセラレータとを組み合わせる技術が採用されている。ビッグデータ解析や画像処理の分野において、CPUとGPU(Graphics Processing Unit)とを結合して高速のデータ処理が実現される。 In areas where high performance computing (HPC) is required, such as data centers, a processor (hereinafter referred to as a CPU: Central Processing Unit) and a hardware accelerator are combined to achieve high performance and low power consumption of computers. Technology is adopted. In the fields of big data analysis and image processing, high-speed data processing is realized by combining a CPU and a GPU (Graphics Processing Unit).
FPGA(Field Programmable Gate Array )は、任意の論理機能を実装できるデバイスである。FPGAの機能は、FPGAが実装された製品の出荷後でも更新可能である。そのような特長を生かして、ハードウェアアクセラレータとしてFPGAが使用されることがある(例えば、特許文献1参照)。 An FPGA (Field Programmable Gate Array) is a device that can implement an arbitrary logical function. The functions of the FPGA can be updated even after shipment of a product in which the FPGA is mounted. Taking advantage of such features, an FPGA may be used as a hardware accelerator (see, for example, Patent Document 1).
CPUとハードウェアアクセラレータとしてのFPGAとを含むシステムにおいて、FPGAは、例えば、CPUの負荷が大きくなる特定の処理をCPUに代わって処理する。処理の肩代わりは、オフロードと呼ばれる。負荷が大きくなる処理があらかじめ想定可能である場合、例えば特許文献1に記載されているように、FPGAの規模(容量)を考慮して、特定の処理を実行するためのFPGAの機能があらかじめ選定される。
In a system including a CPU and an FPGA as a hardware accelerator, the FPGA performs, for example, a specific process that increases the load on the CPU instead of the CPU. The shoulder of processing is called off-road. When a process that increases the load can be assumed in advance, for example, as described in
一例として、CPUとFPGAとを含むシステムの外部で、アプリケーションプログラムをテスト的に実行し、実行結果に基づいてオフロードすべき特定の処理の選定が行われる。そして、選定された特定の処理のFPGA用のプログラムが作成され、FPGAにロードされる。その後、CPUとFPGAとを含むシステムにおいて、アプリケーションプログラムが実際に実行される。 As an example, an application program is executed as a test outside a system including a CPU and an FPGA, and a specific process to be offloaded is selected based on the execution result. Then, a program for the selected specific processing FPGA is created and loaded into the FPGA. Thereafter, the application program is actually executed in a system including the CPU and the FPGA.
特許文献2および特許文献3には、CPUとFPGAとを含むシステムに入力されるデータの処理内容およびデータ処理量に応じて動的にFPGAを再構成することが記載されている。
特許文献2に記載された装置は、使用頻度が高いソフトウェアモジュール(CPUで実行されている機能)を、ハードウェアモジュール(FPGAで実行されている機能)に割り当てるように構成されている(特許文献2の段落0019,0020等参照)。上述したように、オフロード対象の特定の処理があらかじめ選定される方式では、特定の処理を選定するための処理(例えば、テスト的なプログラムの実行)が求められるので手間がかかる反面、CPUとFPGAとを含むシステムは、簡便にオフロード対象を決定できるという利点がある。しかし、特許文献2に記載された装置では、そのような効果は考慮されていない。特許文献2に記載された装置は、動的なハードウェアモジュールの割り当てを行っているが、ハードウェアモジュールの割り当ては、モジュールの使用頻度のみに基づいて行われている。
The device described in
特許文献3に記載された装置は、CPUで実現される機能をソフトウェア(SW)機能とし、FPGAで実現される機能をハードウェア(HW)機能とする。そして、リソースマネージャは、SWリソースおよびHWリソースの利用状況の情報と処理内容の情報とを管理する。すなわち、リソースマネージャは、どのソフトウェア資源がどの程度利用されているかを把握できる。また、リソースマネージャは、どのハードウェア資源がどの程度利用されているかを把握できる。よって、アプリケーションを実行するために必要な処理機能に対して、効率的な機能の割り当てを行うことができるとされている(特許文献3の段落0026等参照)。
In the device described in
しかし、特許文献3に記載された装置でも、あらかじめ特定の処理を選定するための処理が実行されることによる効果は考慮されていない。
However, even the apparatus described in
本発明は、ハードウェアアクセラレータを用いる場合に、ハードウェアアクセラレータの規模を考慮してオフロードする機能を決定する必要性がなくなる上に、オフロードする機能を効率的に決定できるようにすることを目的とする。 The present invention eliminates the necessity of determining a function to be offloaded in consideration of the scale of the hardware accelerator when using a hardware accelerator, and makes it possible to efficiently determine the function to be offloaded. Objective.
本発明によるアクセラレータを有する情報処理装置は、プロセッサと内部構成を再構築可能なハードウェアアクセラレータとを備えたアクセラレータを有する情報処理装置であって、アプリケーションのソースプログラムをプロセッサ用のプログラムに変換し、ソースプログラムにおける指令されたオフロード可能なプログラムからハードウェアアクセラレータ用のプログラムを生成するソースプログラム変換手段と、プログラムの実行状況を監視する実行状況監視手段と、ハードウェアアクセラレータの余裕能力を判定するアクセラレータ判定手段と、実行状況監視手段の監視結果とアクセラレータ判定手段の判定結果とに基づいて、アプリケーションプログラムの実行中に、ハードウェアアクセラレータにオフロードするプログラムを決定するオフロード決定手段とを備えたことを特徴とする。 An information processing apparatus having an accelerator according to the present invention is an information processing apparatus having an accelerator including a processor and a hardware accelerator capable of reconfiguring an internal configuration, and converts an application source program into a program for a processor, Source program conversion means for generating a program for a hardware accelerator from a commandable offloadable program in the source program, execution status monitoring means for monitoring the execution status of the program, and an accelerator for determining the spare capacity of the hardware accelerator Based on the determination means, the monitoring result of the execution status monitoring means, and the determination result of the accelerator determination means, a program to be offloaded to the hardware accelerator during execution of the application program is determined. Characterized by comprising a offload determining means for.
本発明による情報処理方法は、プロセッサと内部構成を再構築可能なハードウェアアクセラレータとを備えた情報処理装置で実行される情報処理方法であって、アプリケーションのソースプログラムをプロセッサ用のプログラムに変換し、ソースプログラムにおける指令されたオフロード可能なプログラムからハードウェアアクセラレータ用のプログラムを生成し、プログラムの実行状況を監視し、ハードウェアアクセラレータの余裕能力を判定し、プログラムの実行状況の監視結果とハードウェアアクセラレータの余裕能力の判定結果とに基づいて、アプリケーションプログラムの実行中に、ハードウェアアクセラレータにオフロードするプログラムを決定することを特徴とする。 An information processing method according to the present invention is an information processing method executed by an information processing apparatus including a processor and a hardware accelerator capable of reconfiguring an internal configuration, and converts an application source program into a program for a processor. Generate a hardware accelerator program from the offloadable program commanded in the source program, monitor the execution status of the program, determine the spare capacity of the hardware accelerator, monitor the execution status of the program and the hardware A program to be offloaded to the hardware accelerator is determined during execution of the application program based on the determination result of the spare capacity of the hardware accelerator.
本発明によれば、ハードウェアアクセラレータの規模を考慮してオフロードする機能を決定する必要性をなくし、かつ、オフロードする機能を効率的に決定できる。 According to the present invention, it is possible to eliminate the necessity of determining the function to be offloaded in consideration of the scale of the hardware accelerator and to efficiently determine the function to be offloaded.
実施形態1.
以下、本発明の実施形態を図面を参照して説明する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
図1は、本発明による情報処理装置の第1の実施形態を示すブロック図である。図1に示すように、情報処理装置は、CPU11とFPGAアクセラレータ12とを有する。FPGAアクセラレータ12は、ハードウェアアクセラレータとなるFPGAであるが、複数のFPGA素子を含んでいてもよい。CPU11とFPGAアクセラレータ12とは、例えば、PCI Express (登録商標)規格のバスでデータの送受信を行う。
FIG. 1 is a block diagram showing a first embodiment of an information processing apparatus according to the present invention. As illustrated in FIG. 1, the information processing apparatus includes a
情報処理装置は、さらに、コンパイラ13、実行状況監視部21、FPGAプログラム管理テーブル22、関数テーブル31、関数テーブル管理部32、FPGA資源管理部41、FPGA資源管理テーブル42、FPGAプログラム管理部43、および動的オフロード部51を含む。
The information processing apparatus further includes a
コンパイラ13は、アプリケーションプログラムのソースプログラムをCPU11が実行可能なCPU用プログラム(CPU用のオブジェクトプログラム)に変換する。さらに、本実施形態では、コンパイラ13は、ソースコードの構文解析によってFPGAアクセラレータ12にオフロード可能な処理であると判断した場合には、FPGA用プログラム(FPGA用のオブジェクトプログラム)を生成する。FPGA用プログラムは、対応するCPU用プログラムが実現する機能と同じ機能をFPGAアクセラレータ12が実現するように、FPGAアクセラレータ12の構成を再構築するためのデータの集まりである。
The
実行状況監視部21は、関数群の実行状況を監視し、実行状況をFPGAプログラム管理テーブル22に記録する。関数は、アプリケーションプログラムにおけるひとまとまりの処理(ルーチン)である。実行状況として、例えば、オフロード状態(オフロードされているか否か)、実行頻度、関数のFPGA用プログラムの容量、優先度等がある。なお、優先度については、例えば、実行頻度が高い関数に対して高い優先度が設定されたり、実行頻度が高い関数が暗黙的に優先度が高いと見なされたり、ソースプログラムに埋め込まれているデータに基づいてコンパイル時に優先度の設定がなされたりする。
The execution
関数テーブル31は、アプリケーションプログラムを構成する関数へのジャンプテーブルである。関数テーブル31に記録されるデータ(エントリ)は、一般に、コンパイラ13やリンカーによって作成され、情報処理装置の主記憶などに記憶される。具体的には、関数テーブル31には、それぞれの関数について、CPU用プログラムとFPGA用プログラムとのうちのいずれを使用すべきかを示すデータがエントリとして設定される。図1には、関数Func1,Func2,Func3,Func4 が例示されている。なお、矢印の先のFuncx-y (x:1〜4)の"y" が"C"になっているものは、CPU用プログラムを示し、"F" になっているものは、FPGA用プログラムを示す。
The function table 31 is a jump table to functions constituting the application program. Data (entries) recorded in the function table 31 is generally created by the
関数テーブル管理部32は、FPGA用プログラムとCPU用プログラムのどちらを呼び出すかを管理する。
The function
FPGA資源管理部41は、FPGAアクセラレータ12の未使用ゲートアレイ数(空き容量)などを監視し、監視結果をFPGA資源管理テーブル42に記録する。
The FPGA
FPGAプログラム管理部43は、FPGAプログラム管理テーブル22に記録されているデータとFPGA資源管理テーブル42に記録されているデータとに基づいて動的オフロード部51および関数テーブル管理部32を制御する。
The FPGA
動的オフロード部51は、指定されたFPGA用プログラムなどをFPGAアクセラレータ12にロードし、必要なデバイスドライバをOS(Operating System:図1において図示せず)に組み込むための制御を行う。
The
次に、情報処理装置の動作を説明する。図2は、コンパイラ13の処理を説明するための模式図である。本実施形態では、ソースプログラム101には、FPGAアクセラレータ12にオフロード可能な処理かどうかを特定可能な構文が含まれる。例えば、図2に示すように、オフロード可能な処理に対して、"#FPGA_OFFLOAD"といったプラグマ (pragma:コンパイラに特定の情報を渡すために使用する識別子(指令))が付されている。なお、オフロード可能な処理かどうかを特定可能であることを指定できれば、他のコンパイラオプションを使用してもよい。
Next, the operation of the information processing apparatus will be described. FIG. 2 is a schematic diagram for explaining the processing of the
コンパイラ13は、ソースプログラム101を入力し、構文解析を行う(ステップS11)。
The
オフロード可能な処理であることを示す指令等を見いだすと(ステップS12)、ソースコードからFPGA用プログラム(FPGA用オブジェクト)を生成し(ステップS13)、FPGA用プログラム102を、情報処理装置の補助記憶などに格納する。なお、本実施形態では、関数Func1 は、オフロード不能な処理である。オフロード不能な処理は、一例として、オフロードしても処理の高速化が見込めないような処理や、FPGAアクセラレータ12の資源を大量消費するような処理である。
When a command indicating that the process can be offloaded is found (step S12), an FPGA program (FPGA object) is generated from the source code (step S13), and the
その後、コンパイラ13は、ソースコードをCPU用プログラムに変換し(ステップS14)、CPU用プログラム103を、情報処理装置の主記憶や補助記憶などに格納する。
Thereafter, the
図3は、CPU11によって実行されるOS61の処理と、FPGAアクセラレータ12を含むハードウェア81の処理とを説明するための説明図である。
FIG. 3 is an explanatory diagram for explaining the processing of the
ハードウェア81には、FPGA用プログラム102をFPGAアクセラレータ12に組み込むための機構であるFPGAプログラム組み込み機能部82(図1において図示せず)が含まれている。FPGAプログラム組み込み機能部82は、動的オフロード部51からのFPGA用プログラム組み込み要求に応じて、補助記憶等の記憶部91に格納されているFPGA用プログラム102をFPGAアクセラレータ12に組み込む。具体的には、FPGAアクセラレータ12の構成を再構築する。
The
また、OS61は、デバイスドライバ組み込み機能62を備えている。OS61は、例えば動的オフロード部51からのCPU用プログラム組み込み要求に応じて、デバイスドライバ組み込み機能62を用いて、OS61に、記憶部71に格納されているデバイスドライバ72を組み込む。
The
図4は、FPGA用プログラムがFPGAアクセラレータ12に組み込まれる(ロードされる)様子を示す説明図である。図4に示す例では、動的オフロード部51は、実行状況監視部21の監視結果等に基づく所定の条件が成立したので、関数Func2 および関数Func4 のFPGA用プログラムに相当するFunc2-F およびFunc4-F が、FPGAアクセラレータ12にロードされることが例示されている。なお、同時に、対応するデバイスドライバがOS61に組み込まれる。
FIG. 4 is an explanatory diagram showing how the FPGA program is incorporated (loaded) into the
図5は、アプリケーションプログラムに基づいて実行されるアプリケーションの実行中の情報処理装置の動作の一例を示すフローチャートである。 FIG. 5 is a flowchart illustrating an example of the operation of the information processing apparatus during execution of an application executed based on the application program.
アプリケーションの実行中に、実行状況監視部21は、各関数の実行頻度(CPU11での実行頻度およびFPGAアクセラレータ12での実行頻度)を判定する(ステップS101)。実行頻度は、例えば、所定時間あたりの実行回数であるが、単純に実行回数の累積値であってもよい。さらに、実行状況監視部21は、関数の実行時間を測定してもよい。実行状況監視部21は、実行頻度を更新したら、更新後の実行頻度をFPGAプログラム管理テーブル22に記録する(ステップS102)。
During execution of the application, the execution
なお、例えば、関数の実行頻度が所定のしきい値以下になったときに、動的オフロード部51は、その関数に関してオフロードを解除する。その結果、FPGAアクセラレータ12の空き容量(未使用のゲートアレイ数)が増加する。
For example, when the function execution frequency becomes equal to or lower than a predetermined threshold, the
FPGA資源管理部41は、例えば、関数のオフロードが行われたとき、および、オフロード解除が行われたときに、FPGAアクセラレータ12の空き容量を算出する(ステップS103).そして、実行状況監視部21は、空き容量をFPGA資源管理テーブル42に記録する(ステップS104)。
The FPGA
なお、FPGA資源管理部41は、空き容量の監視を常時行ったり、所定時間ごとに空き容量の算出を行ってもよい。
Note that the FPGA
FPGAプログラム管理部43は、関数に関して所定の条件が成立したら(ステップS105)、その関数をオフロードすることに決定する。所定の条件は、例えば、実行頻度が所定のしきい値を越え、かつ、その関数のFPGA用プログラムの実行に必要とされるゲートアレイ数が空き容量以下であることである。実行頻度が所定のしきい値を越えていなくても、その関数の実行時間が所定時間よりも長く、かつ、その関数のFPGA用プログラムの実行に必要とされるゲートアレイ数が空き容量以下であれば、FPGAプログラム管理部43は、その関数をオフロードすることに決定してもよい。また、FPGAプログラム管理部43は、あらかじめ決められている時間以上オフロードが実行されず、空き容量が十分である場合に、実行頻度が高い関数や実行時間が長い関数をオフロードすることに決定してもよい。
The FPGA
FPGAプログラム管理部43は、オフロードすることに決定した場合、動的オフロード部51に、その関数のオフロードを要求する。動的オフロード部51は、要求に応じて、その関数のオフロードを実行する(ステップS106)。具体的には、動的オフロード部51は、FPGAプログラム組み込み機能部82に対して、FPGA用プログラム組み込み要求を出す(図3参照)。オフロード対象の関数が例えばFunc2 であれば、FPGAプログラム組み込み機能部82は、FPGA用プログラムFunc2-F をFPGAアクセラレータ12にロードする。また、動的オフロード部51は、OS61に、FPGA用プログラムFunc2-F に対応するデバイスドライバについてデバイスドライバ組み込み要求を行う(図3参照)。
If the FPGA
また、FPGAプログラム管理部43は、関数テーブル管理部32に、例えばFunc2 についてのエントリ変更を要求する。関数テーブル管理部32は、エントリを、Func2 についてはFPGA用プログラムFunc2-F が呼び出されるように変更する。
Further, the FPGA
本実施形態では、あらかじめFPGAの規模に応じてオフロードする機能を定義する必要はない。換言すれば、ソフトウェアとは独立して、FPGAの規模を設計したり、FPGA素子を選定できる。 In this embodiment, it is not necessary to define a function for offloading in advance according to the scale of the FPGA. In other words, an FPGA scale can be designed and an FPGA element can be selected independently of software.
また、開発者(設計者)は、ハードウェアアクセラレータの有無やハードウェアアクセラレータの規模を意識せずにアプリケーションの開発ができる。 In addition, a developer (designer) can develop an application without being aware of the presence or absence of a hardware accelerator and the scale of the hardware accelerator.
さらに、オフロードの効果が高い処理を優先的にオフロードできるようになる。 Furthermore, it becomes possible to preferentially offload a process having a high offload effect.
なお、本実施形態では、FPGAがプロセッサのハードウェアアクセラレータとして使用される場合を例にしたが、GPU(Graphics Processing Unit)やDSP(Digital Signal Processor)などがハードウェアアクセラレータとして使用される場合にも本実施形態を適用できる。ただし、その場合には、一般にGPUやDSPは、内部構成を再構築可能な(reconfigurable)デバイスではないので、上記の実施形態における「空き容量」は、ゲートアレイ数ではなく、余裕能力等で表現される。なお、余裕能力は、「空き容量」を含む上位概念でもある。 In this embodiment, the case where the FPGA is used as a hardware accelerator of the processor is taken as an example, but the case where a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), or the like is used as a hardware accelerator is also exemplified. This embodiment can be applied. However, in that case, since the GPU and DSP are generally not reconfigurable devices whose internal configuration can be reconfigured, the “free capacity” in the above embodiment is expressed not by the number of gate arrays but by a margin capacity or the like. Is done. The margin capacity is also a superordinate concept including “free capacity”.
また、ハードウェアアクセラレータとしてFPGAが使用されることが好ましいが、内部構成を再構築可能な他のデバイス(例えば、CPLD:Complex Programmable Logic Device )を用いた場合でも、本実施形態を適用することができる。 Although it is preferable to use an FPGA as a hardware accelerator, this embodiment can be applied even when another device (for example, CPLD: Complex Programmable Logic Device) whose internal configuration can be reconfigured is used. it can.
実施形態2.
第1の実施形態では、アプリケーションプログラムの実行前に、コンパイラによってFPGA用プログラムが生成されたが、アプリケーションプログラムの実行中にFPGA用プログラムを生成するようにしてもよい。
In the first embodiment, the FPGA program is generated by the compiler before the execution of the application program. However, the FPGA program may be generated during the execution of the application program.
図6は、アプリケーションプログラムの実行中にFPGA用プログラムを生成する情報処理装置の動作の一例を示すフローチャートである。なお、情報処理装置の構成は、図1に示された第1の実施形態の構成と同じである。 FIG. 6 is a flowchart illustrating an example of the operation of the information processing apparatus that generates the FPGA program during execution of the application program. The configuration of the information processing apparatus is the same as that of the first embodiment shown in FIG.
図6(A)には、情報処理装置が、CPU用プログラムで処理#1を実行し(ステップS201)、CPU用プログラムで処理#2を繰り返し実行し(ステップS202,S204)、その後、CPU用プログラムで処理#3を実行する(ステップS205)例が示されている。
In FIG. 6A, the information processing apparatus executes the
図6(B)には、処理#2がFPGA用プログラムで実行される(ステップS203)例が示されている。具体的には、情報処理装置において、FPGAプログラム管理部43が関数をオフロードすることに決定したときに、動的オフロード部51は、コンパイラに対して、処理#2のソースコードのコンパイル(FPGA用プログラムの生成)を要求する。生成されたFPGA用プログラムは、第1の実施形態の場合と同様に、情報処理装置の補助記憶などに格納される。
FIG. 6B shows an example in which the
そして、動的オフロード部51は、FPGAプログラム組み込み機能部82に対して、FPGA用プログラム組み込み要求を出す(図3参照)。FPGAプログラム組み込み機能部82は、FPGA用プログラムをFPGAアクセラレータ12にロードする。また、動的オフロード部51は、OS61に、FPGA用プログラムに対応するデバイスドライバのデバイスドライバ組み込み要求を行う(図3参照)。
Then, the
また、FPGAプログラム管理部43は、関数テーブル管理部32に、FPGA用プログラムについてのエントリ変更を要求する。関数テーブル管理部32は、エントリを、FPGA用プログラムが呼び出されるように変更する。
Further, the FPGA
図7は、本発明による情報処理装置の主要部を示すブロック図である。図7に示すように、情報処理装置1は、プロセッサ2(例えば、CPU11)と内部構成を再構築可能なハードウェアアクセラレータ3((例えば、FPGAアクセラレータ12)とを備え、アプリケーションのソースプログラムをプロセッサ用のプログラム(例えば、CPU用プログラム)に変換し、ソースプログラムにおける指令されたオフロード可能なプログラムからハードウェアアクセラレータ用のプログラム(例えば、FPGA用プログラム)を生成するソースプログラム変換手段4(例えば、コンパイラ13で実現される。)と、プログラムの実行状況を監視する実行状況監視手段5(例えば、実行状況監視部21で実現される。)と、ハードウェアアクセラレータの余裕能力(例えば、FPGAの空き容量)を判定するアクセラレータ判定手段6(例えば、FPGA資源管理部41で実現される。)と、実行状況監視手段5の監視結果とアクセラレータ判定手段6の判定結果とに基づいて、アプリケーションプログラムの実行中に、ハードウェアアクセラレータ3にオフロードするプログラム(例えば関数)を決定するオフロード決定手段7(例えば、FPGAプログラム管理部43で実現される。)とを備えている。
FIG. 7 is a block diagram showing a main part of the information processing apparatus according to the present invention. As illustrated in FIG. 7, the
情報処理装置は、プロセッサ用のプログラムとハードウェアアクセラレータ用のプログラムとのいずれを使用するのかを特定するためのテーブル(例えば、関数テーブル31)を備えていてもよい。 The information processing apparatus may include a table (for example, a function table 31) for specifying which of a processor program and a hardware accelerator program is used.
1 情報処理装置
2 プロセッサ
3 ハードウェアアクセラレータ
4 ソースプログラム変換手段
5 実行状況監視手段
6 アクセラレータ判定手段
7 オフロード決定手段
11 CPU
12 FPGAアクセラレータ
13 コンパイラ
21 実行状況監視部
22 FPGAプログラム管理テーブル
31 関数テーブル
32 関数テーブル管理部
41 FPGA資源管理部
42 FPGA資源管理テーブル
43 FPGAプログラム管理部
51 動的オフロード部
61 OS
62 デバイスドライバ組み込み機能
71 記憶部
72 デバイスドライバ
81 ハードウェア
82 FPGAプログラム組み込み機能部
91 記憶部
101 ソースプログラム
102 FPGA用プログラム
103 ソースプログラム
DESCRIPTION OF
DESCRIPTION OF
62 Device Driver Embedded
Claims (8)
アプリケーションのソースプログラムをプロセッサ用のプログラムに変換し、該ソースプログラムにおける指令されたオフロード可能なプログラムからハードウェアアクセラレータ用のプログラムを生成するソースプログラム変換手段と、
プログラムの実行状況を監視する実行状況監視手段と、
前記ハードウェアアクセラレータの余裕能力を判定するアクセラレータ判定手段と、
前記実行状況監視手段の監視結果と前記アクセラレータ判定手段の判定結果とに基づいて、前記アプリケーションプログラムの実行中に、前記ハードウェアアクセラレータにオフロードするプログラムを決定するオフロード決定手段と
を備えたことを特徴とする情報処理装置。 An information processing apparatus having an accelerator including a processor and a hardware accelerator capable of reconfiguring an internal configuration,
Source program conversion means for converting a source program of an application into a program for a processor and generating a program for a hardware accelerator from a commandable offloadable program in the source program;
Execution status monitoring means for monitoring the execution status of the program;
Accelerator determination means for determining a margin capacity of the hardware accelerator;
Offload determination means for determining a program to be offloaded to the hardware accelerator during execution of the application program based on the monitoring result of the execution status monitoring means and the determination result of the accelerator determination means An information processing apparatus characterized by the above.
前記ハードウェアアクセラレータの余裕能力は、前記FPGAの空き容量である
請求項1記載の情報処理装置。 The hardware accelerator is realized by FPGA,
The information processing apparatus according to claim 1, wherein a margin capacity of the hardware accelerator is a free capacity of the FPGA.
請求項1または請求項2記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the command in the source program is a pragma.
請求項1から請求項3のうちのいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 3, wherein the execution status monitoring unit monitors the execution frequency of the program as the execution status of the program.
請求項1から請求項4のうちのいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 4, further comprising a table for specifying which of a processor program and a hardware accelerator program is used.
アプリケーションのソースプログラムをプロセッサ用のプログラムに変換し、該ソースプログラムにおける指令されたオフロード可能なプログラムからハードウェアアクセラレータ用のプログラムを生成し、
プログラムの実行状況を監視し、
前記ハードウェアアクセラレータの余裕能力を判定し、
前記プログラムの実行状況の監視結果と前記ハードウェアアクセラレータの余裕能力の判定結果とに基づいて、前記アプリケーションプログラムの実行中に、前記ハードウェアアクセラレータにオフロードするプログラムを決定する
ことを特徴とする情報処理方法。 An information processing method executed by an information processing apparatus including a processor and a hardware accelerator capable of reconfiguring an internal configuration,
Converting a source program of an application into a program for a processor, generating a program for a hardware accelerator from a command capable of being offloaded in the source program,
Monitor program execution status,
Determine the spare capacity of the hardware accelerator,
Information that determines the program to be offloaded to the hardware accelerator during execution of the application program based on the monitoring result of the execution status of the program and the determination result of the spare capacity of the hardware accelerator Processing method.
請求項6記載の情報処理方法。 The information processing method according to claim 6, wherein a free capacity of the FPGA is determined as a margin capability of the hardware accelerator realized by an FPGA.
請求項6または請求項7記載の情報処理方法。 The information processing method according to claim 6 or 7, wherein the command in the source program is a pragma.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017026835A JP2018132981A (en) | 2017-02-16 | 2017-02-16 | Information processing apparatus having accelerator and information processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017026835A JP2018132981A (en) | 2017-02-16 | 2017-02-16 | Information processing apparatus having accelerator and information processing method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018132981A true JP2018132981A (en) | 2018-08-23 |
Family
ID=63248744
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017026835A Pending JP2018132981A (en) | 2017-02-16 | 2017-02-16 | Information processing apparatus having accelerator and information processing method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018132981A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2024024001A1 (en) * | 2022-07-27 | 2024-02-01 | ||
| US20240296249A1 (en) * | 2021-06-28 | 2024-09-05 | Nippon Telegraph And Telephone Corporation | Integrity verification system of circuit information and integrity verification method of circuit information |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007207136A (en) * | 2006-02-06 | 2007-08-16 | Nec Corp | Data processor, data processing method, and data processing program |
| JP2007328416A (en) * | 2006-06-06 | 2007-12-20 | Univ Waseda | Global compiler for heterogeneous multiprocessors |
| WO2014002412A1 (en) * | 2012-06-26 | 2014-01-03 | 日本電気株式会社 | Program conversion device and method, processing switching method, method of determining execution scheme and program storage medium therefor, processor system, and parallel execution method |
| JP2014524607A (en) * | 2011-08-02 | 2014-09-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Techniques for compiling and executing high-level programs on heterogeneous computers |
| WO2015142538A1 (en) * | 2014-03-19 | 2015-09-24 | Qualcomm Incorporated | Hardware-based atomic operations for supporting inter-task communication |
-
2017
- 2017-02-16 JP JP2017026835A patent/JP2018132981A/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007207136A (en) * | 2006-02-06 | 2007-08-16 | Nec Corp | Data processor, data processing method, and data processing program |
| JP2007328416A (en) * | 2006-06-06 | 2007-12-20 | Univ Waseda | Global compiler for heterogeneous multiprocessors |
| JP2014524607A (en) * | 2011-08-02 | 2014-09-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Techniques for compiling and executing high-level programs on heterogeneous computers |
| WO2014002412A1 (en) * | 2012-06-26 | 2014-01-03 | 日本電気株式会社 | Program conversion device and method, processing switching method, method of determining execution scheme and program storage medium therefor, processor system, and parallel execution method |
| WO2015142538A1 (en) * | 2014-03-19 | 2015-09-24 | Qualcomm Incorporated | Hardware-based atomic operations for supporting inter-task communication |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20240296249A1 (en) * | 2021-06-28 | 2024-09-05 | Nippon Telegraph And Telephone Corporation | Integrity verification system of circuit information and integrity verification method of circuit information |
| JPWO2024024001A1 (en) * | 2022-07-27 | 2024-02-01 | ||
| WO2024024001A1 (en) * | 2022-07-27 | 2024-02-01 | 日本電信電話株式会社 | Accelerator state control device, accelerator state control system, accelerator state control method, and program |
| JP7720013B2 (en) | 2022-07-27 | 2025-08-07 | Ntt株式会社 | Accelerator state control device, accelerator state control system, accelerator state control method and program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11778057B2 (en) | System and method for intent-based service deployment | |
| JP6370218B2 (en) | MEMORY MANAGEMENT METHOD, COMPUTER SYSTEM, COMPUTER PROGRAM, AND STORAGE MEDIUM | |
| JP6138774B2 (en) | Computer-implemented method and computer system | |
| JP5980916B2 (en) | Computer-implemented method and computer system | |
| KR102052964B1 (en) | Method and system for scheduling computing | |
| US9501285B2 (en) | Register allocation to threads | |
| JP2013546106A (en) | Distributed computing architecture | |
| KR101656360B1 (en) | Cloud System for supporting auto-scaled Hadoop Distributed Parallel Processing System | |
| JP2021034023A (en) | Methods and apparatus for configuring heterogenous components in accelerator | |
| US20220350668A1 (en) | Function parallelism in a runtime container of a function-as-a-service (faas) system | |
| US20210149726A1 (en) | Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium | |
| CN114546587A (en) | A method for expanding and shrinking capacity of online image recognition service and related device | |
| JP2018132981A (en) | Information processing apparatus having accelerator and information processing method | |
| KR102130813B1 (en) | Re-configurable processor and method for operating re-configurable processor | |
| US9218275B2 (en) | Memory management control system, memory management control method, and storage medium storing memory management control program | |
| JP2012141887A (en) | Information processing device, information processing method, and program | |
| CN106547603B (en) | Method and device for reducing garbage collection time of golang language system | |
| US20180157510A1 (en) | Interrupt generated random number generator states | |
| US20170147408A1 (en) | Common resource updating apparatus and common resource updating method | |
| CN115543566A (en) | Method and system for executing computation graph by multiple threads |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200109 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201120 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201201 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210601 |