JP6485335B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6485335B2 JP6485335B2 JP2015226658A JP2015226658A JP6485335B2 JP 6485335 B2 JP6485335 B2 JP 6485335B2 JP 2015226658 A JP2015226658 A JP 2015226658A JP 2015226658 A JP2015226658 A JP 2015226658A JP 6485335 B2 JP6485335 B2 JP 6485335B2
- Authority
- JP
- Japan
- Prior art keywords
- logic circuit
- processing
- time
- task
- total
- 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
Links
Images
Landscapes
- Microcomputers (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Description
本実施の形態における構成制御プログラムは、以下のような処理を行って、より早く処理が終了するロジック回路を選択してPLD内に配置(構成)する。
総処理時間T#total = T#wait + T#conf + T#exe
総処理終了時刻T#total_end = 現在時刻 + T#total(最小値)
この総処理終了時刻T#total_endは、後で構成可能時間T#waitを算出する際に参照されるので、メモリに記憶しておく。
図10は、構成制御プログラムの処理時間予測処理のフローチャート図である。構成制御プログラムは、タスクを処理するロジック回路の平均処理時間μを以下の通り計算する(S40)。
μ=Tconst+L(引数値)
ここで、Tconstは固定処理時間であり、高位合成時にタスクの内容に応じて予測される時間か、過去の同じタスクの処理時間の平均値である。また、L(x)は、タスクの引数xに応じた処理時間の変動に対応する。タスクの引数xで処理量が変動するのでその変動時間に対応する。
L(x,y)=c0*x + c1*x*y
C0, C1は係数である。
μ=Cimp *{Tconst + L(引数値)}
Env = T_fpga*E0 + P_fpga*E1
T_fpgaは、FPGAの温度Tに依存する処理時間のぶれ値であり、P_fpgaは、FPGAの消費電力Pに依存する処理時間のぶれ値である。FPGAの温度が高くなると処理速度が変化し、消費電力が上がると処理速度が変化するので、そのぶれ値を処理時間に反映させるのが望ましい。E0, E1は係数または重み値である。
Env = μ*{(F_ref-F_fpga)/F_ref}*Ct
ここで、Ctは変換係数または重み値である。F_fpga>F_refの場合はEvnが負の値になり処理時間は短くなり、逆の場合はEvnが正の値になり処理時間は長くなる。平均値μに両周波数の差の割合を乗じた分だけ、処理時間が長くなったり短くなったりする。
T#exe = μ + W0*σ*rand + W1*Env
ここで、W0,W1は重み付け係数(W0,W1=0〜1)、randは標準正規乱数である。すなわち、標準正規乱数randは分布が正規分布になる乱数であり、標準正規乱数randに過去の処理時間の分散度合いである標準偏差σを乗じることで、毎回のロジック回路の処理時間のランダムな変動を加えることができる。
第1の例は、固定パケットの送信を行う関数send()であり、過去の処理時間の履歴が以下のとおりとする。
1回目:処理時間1105 ns
2回目:処理時間1320 ns
3回目:処理時間1190 ns
Tconst = 1205 ns
σ = 88.4 ns
Env = Tconst * {(250MHx-F_fpga)/250MHx}
= 1205 ns * {(250MHx-F_fpga)/250MHx}
W1 = 0.7
T#exe = Tconst + W0*σ*rand + W1*Env
= 1205 ns + W1*1205 ns * {(250MHx-F_fpga)/250MHx} + W0*σ*rand
= 1205 ns[1+0.7{(250-F_fpga)/250}] + 88.4 ns*rand
第2の例は、関数var(sizex, sizey, *image)である。この関数は、画素数がsizex * sizeyの入力画像に対して、4×4画素毎の画素値の分散値をメモリRAMに出力する関数であり、処理量が引数sizex * sizeyに比例する。*imageは分散値を求める画像フィルタのポインタを意味する。
1回目:引数(256, 256, *ptr)、処理時間1200 ps
2回目:引数(64, 64, *ptr)、処理時間900 ps
μ = A * sizex * sizey + Tconst
つまり、L(*)=A * sizex * sizeyと見なしている。Aは係数である。
A = 0.184 [ps/pel]
Tconst = 146.2 ps
ここで、pelは画素(pixel)を意味する。
Env = F(RAM使用量)
W1 = 0.1
ここで、RAM使用量が多いほどRAMの空き領域が少なくなり、処理時間は長くなるので、その変動要因が上記のEnvに反映されている。
T#exe = (sizex * sizey * 0.184) + 146.2 + 0.1*F(RAM使用量)
図11は、構成可能時間の計算のフローチャート図である。以下、構成可能時間T#waitの計算方法について説明する。構成可能時間T#waitは、複数のロジック回路の候補C#それぞれが、最も早くFPGA内に構成(配置)することができる時間である。また、FPGA内の空き領域は、発生済みのタスクのロジック回路が動作を終了した時刻(総処理終了時刻T#total_end)毎に変化するので、構成制御プログラムは、その変化する空き領域に基づいて候補C#を構成(配置)できるか否か判定する。
T#wait = 総処理終了時刻T#_total_end - 現在時刻
図13は、前述の構成制御プログラムによる各タスクのロジック回路の構成(配置)例1を示す図である。この例1では、プロセッサから4つの新規タスクTA0-TA3が順番に要求される。図13中、横軸は時刻を示す。
総処理時間T0_total=1950ns
総処理終了時刻T0_total_end=2400ns
総処理時間T1_total=2680ns
総処理終了時刻T1_total_end=3400ns
構成可能時間T2wait=900ns
総処理時間t2_total=500ns
総処理終了時刻T2_total_end=2900ns
構成可能時間T2wait=800ns
総処理時間t2_total=1000ns
総処理終了時刻T2_total_end=3900ns
図14は、前述の構成制御プログラムによる各タスクのロジック回路の構成(配置)例2を示す図である。この例2でも、4つの新規タスクTA0-TA3が順番に要求される。そして、例2では、新規タスクT0, T1, T2の回路C0, C1, C2の構成(配置)は例1と同じであるが、新規タスクTA3の回路C3を構成(配置)するタイミングが例1と異なる。
構成可能時間T2wait=0ns
総処理時間t2_total=1000ns
総処理終了時刻T2_total_end=3100ns
複数のタスクを実行するプロセッサと、
前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、より短い総処理時間の第2のロジック回路を選択し前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する構成制御部とを有する、演算処理装置。
前記構成制御部は、
前記第2のロジック回路の選択において、前記複数の総処理時間のうち最短の総処理時間に対応する第2のロジック回路を選択する、付記1に記載の演算処理装置。
前記構成制御部は、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内に既に構成されている第1のロジック回路のタスク処理の終了と同期せずに、前記処理要求されたタスクに対応する第2のロジック回路を前記プログラマブルロジック回路に構成する、付記1または2に記載の演算処理装置。
前記構成制御部は、
前記タスクの処理要求の際に、前記選択した第2のロジック回路の総処理時間と現在時刻とから前記総処理終了時刻を算出して記憶し、
さらに、前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成した際に、前記処理時間と現在時刻から前記総処理終了時刻を算出し、前記記憶済みの総処理終了時刻を更新する、付記1または2に記載の演算処理装置。
前記構成制御部は、
前記タスクに対応する第2のロジック回路の処理時間の実績値を記憶し、
新たなタスクの処理要求の際に、前記新たなタスクに対応するタスクの前記処理時間の実績値に基づいて、前記新たなタスクに対応する第2のロジック回路の処理時間を予測する、付記1または2に記載の演算処理装置。
前記構成制御部は、
前記構成可能時間を算出する際に、発生済みタスクのロジック回路の前記総処理終了時刻が早い順に、前記新たなタスクに対応するロジック回路が前記プログラマブルロジック回路内に構成可能か否かを判定し、現在時刻から構成可能な前記総処理終了時刻までの時間を前記構成可能時間として算出する、付記1または2に記載の演算処理装置。
前記構成制御部は、
前記新たなタスクに対応するロジック回路が前記プログラマブルロジック回路内に構成可能か否かの判定を、前記ロジック回路が構成されてから実行終了までの期間において、前記ロジック回路が前記プログラマブルロジック回路内に構成可能か否かを判定する、付記6に記載の演算処理装置。
前記構成制御部は、
前記新たなタスクに対応するロジック回路を、当該新たなタスクよりも先に発生したタスクに対応するロジック回路を前記プログラマブルロジック回路内に構成するよりも前に、前記プログラマブルロジック回路内に構成する、付記7に記載の演算処理装置。
前記構成制御部は、
前記ロジック回路の処理終了後に、前記選択した第2のロジック回路の実績処理時間を対応するタスクと関連付けて記憶し、
前記複数種類の第2のロジック回路それぞれの処理に要する処理時間を、前記記憶した実績処理時間に基づいて予測する、付記1または2に記載の演算処理装置。
前記複数の第2のロジック回路は、少なくとも、第1の面積と第1の処理速度を有する第1の回路と、前記第1の面積より広い第2の面積と前記第1の処理速度より早い第2の処理速度を有する第2の回路とを有する、付記1に記載の演算処理装置。
前記プログラマブルロジック回路は、フィールドプログラマブルゲートアレイまたは再構成可能回路のいずれかである、付記1に記載の演算処理装置。
複数のタスクを実行するプロセッサと、
前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、を有する演算処理装置の制御方法であって、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、
前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、
より短い総処理時間の第2のロジック回路を選択し、
前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する演算処理装置の制御方法。
PLD:プログラマブルロジックデバイス
15:構成制御プログラム
C#:候補のロジック回路
T#wait:構成可能時間
T#conf:構成時間
T#exe:処理時間
T#total:総処理時間
T#total_end:総処理終了時刻
Claims (10)
- 複数のタスクを実行するプロセッサと、
前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、より短い総処理時間の第2のロジック回路を選択し前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する構成制御部とを有する、演算処理装置。 - 前記構成制御部は、
前記第2のロジック回路の選択において、前記複数の総処理時間のうち最短の総処理時間に対応する第2のロジック回路を選択する、請求項1に記載の演算処理装置。 - 前記構成制御部は、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内に既に構成されている第1のロジック回路のタスク処理の終了と同期せずに、前記処理要求されたタスクに対応する第2のロジック回路を前記プログラマブルロジック回路に構成する、請求項1または2に記載の演算処理装置。 - 前記構成制御部は、
前記タスクの処理要求の際に、前記選択した第2のロジック回路の総処理時間と現在時刻とから前記総処理終了時刻を算出して記憶し、
さらに、前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成した際に、前記処理時間と現在時刻から前記総処理終了時刻を算出し、前記記憶済みの総処理終了時刻を更新する、請求項1または2に記載の演算処理装置。 - 前記構成制御部は、
前記タスクに対応する第2のロジック回路の処理時間の実績値を記憶し、
新たなタスクの処理要求の際に、前記新たなタスクに対応するタスクの前記処理時間の実績値に基づいて、前記新たなタスクに対応する第2のロジック回路の処理時間を予測する、請求項1または2に記載の演算処理装置。 - 前記構成制御部は、
前記構成可能時間を算出する際に、発生済みタスクのロジック回路の前記総処理終了時刻が早い順に、前記新たなタスクに対応するロジック回路が前記プログラマブルロジック回路内に構成可能か否かを判定し、現在時刻から構成可能な前記総処理終了時刻までの時間を前記構成可能時間として算出する、請求項1または2に記載の演算処理装置。 - 前記構成制御部は、
前記新たなタスクに対応するロジック回路が前記プログラマブルロジック回路内に構成可能か否かの判定を、前記ロジック回路が構成されてから実行終了までの期間において、前記ロジック回路が前記プログラマブルロジック回路内に構成可能か否かを判定する、請求項6に記載の演算処理装置。 - 前記構成制御部は、
前記新たなタスクに対応するロジック回路を、当該新たなタスクよりも先に発生したタスクに対応するロジック回路を前記プログラマブルロジック回路内に構成するよりも前に、前記プログラマブルロジック回路内に構成する、請求項7に記載の演算処理装置。 - 前記構成制御部は、
前記ロジック回路の処理終了後に、前記選択した第2のロジック回路の実績処理時間を対応するタスクと関連付けて記憶し、
前記複数種類の第2のロジック回路それぞれの処理に要する処理時間を、前記記憶した実績処理時間に基づいて予測する、請求項1または2に記載の演算処理装置。 - 複数のタスクを実行するプロセッサと、
前記複数のタスクの少なくとも一部のタスクに対応するロジック回路を構成し、前記構成したロジック回路が前記タスクの処理を実行するプログラマブルロジック回路と、を有する演算処理装置の制御方法であって、
前記タスクの処理要求に応じて、前記プログラマブルロジック回路内の構成済または構成予約済の第1のロジック回路の総処理終了時刻と前記第1のロジック回路の面積とに基づいて、前記処理要求されたタスクに対応する複数種類の第2のロジック回路それぞれが構成可能となるまでの構成可能時間を算出し、
前記複数種類の第2のロジック回路それぞれの構成に要する構成時間とそれぞれの処理に要する処理時間とに前記構成可能時間をそれぞれ加算した複数の総処理時間を算出し、
より短い総処理時間の第2のロジック回路を選択し、
前記選択した第2のロジック回路を前記プログラマブルロジック回路内に構成する演算処理装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015226658A JP6485335B2 (ja) | 2015-11-19 | 2015-11-19 | 演算処理装置及び演算処理装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015226658A JP6485335B2 (ja) | 2015-11-19 | 2015-11-19 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017097478A JP2017097478A (ja) | 2017-06-01 |
JP6485335B2 true JP6485335B2 (ja) | 2019-03-20 |
Family
ID=58803929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015226658A Active JP6485335B2 (ja) | 2015-11-19 | 2015-11-19 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6485335B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6823251B2 (ja) * | 2016-10-13 | 2021-02-03 | 富士通株式会社 | 情報処理装置、情報処理方法及びプログラム |
US11645059B2 (en) | 2017-12-20 | 2023-05-09 | International Business Machines Corporation | Dynamically replacing a call to a software library with a call to an accelerator |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3684901B2 (ja) * | 1999-03-02 | 2005-08-17 | 富士ゼロックス株式会社 | 情報処理システム |
JP4909588B2 (ja) * | 2005-12-28 | 2012-04-04 | 日本電気株式会社 | 情報処理装置及び再構成デバイスの利用方法 |
JP2009070265A (ja) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | 情報処理装置 |
JP5441487B2 (ja) * | 2009-04-27 | 2014-03-12 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
JP5589479B2 (ja) * | 2010-03-25 | 2014-09-17 | 富士ゼロックス株式会社 | データ処理装置 |
-
2015
- 2015-11-19 JP JP2015226658A patent/JP6485335B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017097478A (ja) | 2017-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8543955B1 (en) | Apparatus and methods for time-multiplex field-programmable gate arrays | |
US8719550B2 (en) | Reconfigurable processing system including synchronized postprocessing | |
US11171652B2 (en) | Method and apparatus for implementing configurable streaming networks | |
TWI827792B (zh) | 多路徑神經網路、資源配置的方法及多路徑神經網路分析器 | |
EP4235421A2 (en) | Controlling operation of a gpu | |
US10262096B2 (en) | Component placement with repacking for programmable logic devices | |
US8522185B1 (en) | Method for placement and routing of a circuit design | |
JP6485335B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP5798378B2 (ja) | 装置、処理方法、およびプログラム | |
US10860775B1 (en) | Clock pin to clock tap assignment based on circuit device connectivity | |
US20100228958A1 (en) | Information processing apparatus, method for controlling information processing apparatus and computer readable medium | |
US9692688B2 (en) | Delay specific routings for programmable logic devices | |
US10671429B2 (en) | Circuit assignment within reconfigurable device based on predicted shortest processing completion time | |
US10664561B1 (en) | Automatic pipelining of memory circuits | |
JP2003150657A (ja) | 高位合成方法および高位合成装置 | |
US10606972B2 (en) | Method, design program, and design apparatus of a high level synthesis process of a circuit | |
US11657197B2 (en) | Support system and computer readable medium | |
US9348619B1 (en) | Interactive datasheet system | |
US11030377B1 (en) | Routing based on pin placement within routing blockage | |
JP5832311B2 (ja) | 再構成デバイス、処理割当て方法及びプログラム | |
JP5907607B2 (ja) | 処理配置方法及びプログラム | |
US10706201B1 (en) | Circuit design routing using multi-panel track assignment | |
US10579767B1 (en) | Systems and methods for routing a clock net with multiple layer ranges | |
JP2008198003A (ja) | アレイ型プロセッサ | |
WO2011155622A1 (ja) | 回路合成装置、方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180706 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181220 |
|
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: 20190122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190204 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6485335 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |