[go: up one dir, main page]

JP2019215697A - パラメータ最適化装置、方法、およびプログラム - Google Patents

パラメータ最適化装置、方法、およびプログラム Download PDF

Info

Publication number
JP2019215697A
JP2019215697A JP2018112515A JP2018112515A JP2019215697A JP 2019215697 A JP2019215697 A JP 2019215697A JP 2018112515 A JP2018112515 A JP 2018112515A JP 2018112515 A JP2018112515 A JP 2018112515A JP 2019215697 A JP2019215697 A JP 2019215697A
Authority
JP
Japan
Prior art keywords
circuit
processing
synthesis
loop
synthesis information
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.)
Granted
Application number
JP2018112515A
Other languages
English (en)
Other versions
JP6996431B2 (ja
Inventor
周平 吉田
Shuhei Yoshida
周平 吉田
祐太 右近
Yuta Ukon
祐太 右近
晃嗣 山崎
Akitsugu Yamazaki
晃嗣 山崎
新田 高庸
Takayasu Nitta
高庸 新田
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018112515A priority Critical patent/JP6996431B2/ja
Priority to US17/251,739 priority patent/US11720080B2/en
Priority to PCT/JP2019/020104 priority patent/WO2019239820A1/ja
Publication of JP2019215697A publication Critical patent/JP2019215697A/ja
Application granted granted Critical
Publication of JP6996431B2 publication Critical patent/JP6996431B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4097Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31338Design, flexible manufacturing cell design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】高位合成におけるループ展開数と回路並列数の最適な組み合わせを決定する。【解決手段】回路合成情報生成部11が、パラメータの候補としてループ展開数Mと回路並列数Nの組み合わせを複数設定して、これら組み合わせごとに、高位合成処理により得られる合成回路を示す回路合成情報23を生成し、最適パラメータ決定部13が、生成された回路合成情報23ごとに、当該回路合成情報23が示す合成回路に関する推定処理性能Pを算出し、最大の推定処理性能Pmaxが得られた回路合成情報23に基づいて、ループ展開数Mと回路並列数Nの最適な組み合わせを決定する。【選択図】 図1

Description

本発明は、入力されたパケットを処理する処理回路が並列展開された処理システムを対象として、高位合成で用いる設計パラメータを最適化するためのパラメータ最適化技術に関する。
近年、FPGA(Field-Programmable Gate Array)などのPLD(Programmable Logic Device)の大規模化に伴う回路設計の自動化を目的として、C/C++のような高性能プログラミング言語で記述されたソースコードからVerilog HDL(Hardware Description Language)などのハードウェア記述言語で記述されたRTL(Register Transfer Level)コードを生成する「高位合成」と呼ばれる技術の実用化が進展している。
図6は、パラメータ最適化の対象となる処理システムの一例を示すブロック図である。図6に示す処理システム50は、全体としてFPGAからなり、並列展開されている複数の処理回路51に対して対象処理をループ展開して実行する処理システムである。
処理システム50は、例えば図6に示すように、主な回路部として、振り分けられたパケットPKに対して予めループ展開された対象処理の一部を実行するN個(Nは2以上の整数)の処理回路(51)#1,#2,…,#Nと、同時に入力される複数フローのパケットPKを、並列展開されている処理回路#1,#2,…,#Nに振り分ける振分部52と、処理回路#1,#2,…,#Nで得られた処理結果を集約して出力する集約部53とを備えている。
高位合成処理では、処理システム50の性能をチューニングするために、設計者が設定可能な設計パラメータが用意されている。性能チューニングに用いる設計パラメータの1つとして、ループ展開数がある。図7は、ループ展開数を指定したソースコードの一例である。
ループ展開とは、ループ処理における各イテレーションの処理を、並列展開した処理回路を用いて処理することで処理の高速化を図る手法である。図7の例では、ループ総数Q(Qは2以上の整数)回のループ処理に対してループ展開数M(Mは2以上の整数)を設定している。これは、例えば全部でQ回のループ処理が必要な対象処理において、1ループにMループ分の処理を展開してまとめて実行することにより、必要となるループ数をQ/M回に削減することを意味している。
このようにして、ループ展開数を任意の値に設定することで、処理回路の並列展開数を指定して処理システムを設計することができる。この場合、ループ展開数は増やせば増やすほど、処理システムの処理性能は向上するが、これに伴って処理システムにおけるリソース使用量も増加する。
従来、高位合成を用いた回路設計において、設計者が指定する設計パラメータ(例えば、ループ展開数など)の値を最適化する手法が提案されている(例えば、特許文献1など参照)。図8は、ソースコード記述から生成される解析木の一例である。この手法では、図8に示すような処理回路の動作を表す解析木を元に「回路あたりの処理レイテンシ」の最小化を目的として最適化を図っている。
特許第5516596号公報
一般に、高位合成において処理システムの性能をチューニングする際、処理システムの処理回路に関する「回路あたりの性能」を向上させると「回路あたりのリソース使用量」が増加する。このため、処理システムの「全体で使用可能なリソース量」が制限されており一定であるとすると、「回路あたりの性能」と「回路並列数」はトレードオフの関係にある。
しかしながら、前述したような従来技術では、処理回路に関する「回路あたりの性能」の最大化を目的としているため、「回路あたりの性能」と「回路並列数」のトレードオフを最適化することは困難であるという問題点があった。
通常、図6に示したように、並列展開した複数の処理回路を用いる場合、処理時間のオーバヘッドが発生する。例えば、入力パケットのフローに応じて処理回路内のステートを切り替えながら処理を行う場合が考えられる。このような場合には、ステート切り替えの所要時間に相当するオーバヘッドが発生するため、単位時間あたりに到着するフロー数が一定数以上の場合、「回路あたりの性能」を劣化させてでも「回路並列数」を増加させた方が、システム全体としては処理性能が高くなる場合があるからである。
本発明はこのような課題を解決するためのものであり、高位合成処理におけるループ展開数と回路並列数の最適な組み合わせを決定できるパラメータ最適化技術を提供することを目的としている。
このような目的を達成するために、本発明にかかるパラメータ最適化装置は、複数の処理回路に対して対象処理をループ展開して実行する処理システムを、高位合成処理により回路設計する際、前記高位合成処理で用いる設計パラメータであるループ展開数と回路並列数の最適な組み合わせを決定するパラメータ最適化装置であって、前記設計パラメータの候補となる、前記ループ展開数と前記回路並列数の組み合わせを複数設定し、これら組み合わせごとに、前記高位合成処理により得られる合成回路を示す回路合成情報を生成する回路合成情報生成部と、前記回路合成情報ごとに、当該回路合成情報が示す合成回路に関する推定処理性能を算出し、最大の推定処理性能が得られた回路合成情報に基づいて、前記ループ展開数と前記回路並列数の最適な組み合わせを決定する最適パラメータ決定部とを備えている。
また、本発明にかかる上記パラメータ最適化装置の一構成例は、前記回路合成情報生成部が、前記組み合わせを設定する際、前記ループ展開で展開すべきループの総数を示すループ総数に基づいて、前記ループ展開数を設定するようにしたものである。
また、本発明にかかる上記パラメータ最適化装置の一構成例は、前記回路合成情報生成部が、前記組み合わせを設定する際、前記処理システムで使用可能なリソースを示すリソース制約に基づいて、前記回路並列数を設定するようにしたものである。
また、本発明にかかる上記パラメータ最適化装置の一構成例は、前記最適パラメータ決定部が、前記推定処理性能を算出する際、前記回路合成情報と、前記対象処理で許容される処理遅延を示す遅延制約と、前記対象処理に対して並列的に入力されるデータの同時入力数とに基づいて、前記推定処理性能を算出するようにしたものである。
また、本発明にかかる上記パラメータ最適化装置の一構成例は、前記処理システムが、振り分けられたパケットに対して予めループ展開された前記対象処理の一部を実行する前記複数の処理回路と、同時に入力される複数フローのパケットを、前記複数の処理回路に対して振り分ける振分部と、前記複数の処理回路で得られた処理結果を集約して出力する集約部とを備えるものである。
また、本発明にかかる上記パラメータ最適化装置の一構成例は、前記複数の処理回路が、前記振分部から振り分けられたパケットのフローに応じて、当該パケットを処理するためのステートを切り替えるようにしたものである。
また、本発明にかかるパラメータ最適化方法は、複数の処理回路に対して対象処理をループ展開して実行する処理システムを、高位合成処理により回路設計する際、前記高位合成処理で用いる設計パラメータであるループ展開数と回路並列数の最適な組み合わせを決定するパラメータ最適化装置で用いられるパラメータ最適化方法であって、回路合成情報生成部が、前記設計パラメータの候補となる、前記ループ展開数と前記回路並列数の組み合わせを複数設定し、これら組み合わせごとに、前記高位合成処理により得られる合成回路を示す回路合成情報を生成する回路合成情報生成ステップと、最適パラメータ決定部が、前記回路合成情報ごとに、当該回路合成情報が示す合成回路に関する推定処理性能を算出し、最大の推定処理性能が得られた回路合成情報に基づいて、前記ループ展開数と前記回路並列数の最適な組み合わせを決定する最適パラメータ決定ステップとを備えている。
また、本発明にかかるプログラムは、コンピュータを、前述したいずれかのパラメータ最適化装置を構成する各部として機能させるためのプログラムである。
本発明によれば、候補として複数設定されたループ展開数と回路並列数の組み合わせのうちから、推定処理性能が最も高い合成回路のループ展開数と回路並列数が最適な組み合わせとして選択されることになる。したがって、高位合成処理において処理システムの性能をチューニングする際に問題となる、処理回路に関する「回路あたりの性能」と「回路並列数」のトレードオフを最適化することが可能となる。また、高位合成処理において処理システムの性能をチューニングするのに要する工程期間を大幅に短縮することができ、チューニングに要する作業負担や作業コストを大幅に削減する可能となる。
パラメータ最適化装置の構成を示すブロック図である。 回路合成情報の構成例である。 回路合成情報生成処理を示すフローチャートである。 最適パラメータ決定処理を示すフローチャートである。 一般的な待ち行列システムを示す概念図である。 パラメータ最適化の対象となる処理システムの一例を示すブロック図である。 ループ展開数を指定したソースコードの一例である。 ソースコード記述から生成される解析木の一例である。
次に、本発明の一実施の形態について図面を参照して説明する。
[パラメータ最適化装置]
まず、図1を参照して、本実施の形態にかかるパラメータ最適化装置10について説明する。図1は、パラメータ最適化装置の構成を示すブロック図である。
このパラメータ最適化装置10は、全体としてサーバ装置などの情報処理装置(コンピュータ)からなり、複数の処理回路に対して対象処理をループ展開して実行する処理システムを、高位合成処理により回路設計する際、高位合成処理で用いるパラメータであるループ展開数と回路並列数の最適な組み合わせを決定する機能を有している。
本実施の形態では、前述の図6に示したような、振り分けられたパケットを処理する複数の処理回路51が並列展開された処理システム50を対象として、高位合成処理で用いるループ展開数と回路並列数の最適な組み合わせを決定する場合について説明する。なお、パラメータ最適化の対象となる処理システムは、パケットを処理する処理システム50に限定されるものではなく、複数の処理回路に対して対象処理をループ展開して実行する処理システムであれば、同様にして本実施の形態を適用でき、同様の作用効果が得られる。
処理システム50は、前述した図6の構成と同様に、主な回路部として、振り分けられたパケットPKに対して予めループ展開された対象処理の一部を実行するN個(Nは2以上の整数)の処理回路(51)#1,#2,…,#Nと、同時に入力される複数フローのパケットPKを、並列展開されている処理回路#1,#2,…,#Nに振り分ける振分部52と、処理回路#1,#2,…,#Nで得られた処理結果を集約して出力する集約部53とを備えているものとする。
図1に示すように、パラメータ最適化装置10は、主な機能部として、回路合成情報生成部11、回路合成情報記憶部12、および最適パラメータ決定部13を備えている。これら機能部のうち、回路合成情報生成部11と最適パラメータ決定部13は、CPUとプログラムとが協働することにより実現されている。このプログラムは、外部装置や記録媒体(ともに図示せず)からパラメータ最適化装置10の記憶部(図示せず)に予め格納される。なお、プログラムは、記録媒体に記録して提供することもでき、通信ネットワークを介して提供することもできる。
回路合成情報生成部11は、入力されたソースコード21に記述されている、ループ展開で展開すべきループの総数を示すループ総数Qと、リソース制約情報22で指定された、処理システム50で使用可能なリソースを示すリソース制約とに基づいて、設計パラメータの候補となる、ループ展開数M(Mは2以上の整数)と回路並列数Nとの組み合わせを複数設定する機能と、これら組み合わせごとに、当該組み合わせを適用した際に高位合成処理により得られる合成回路を示す回路合成情報23を生成して、回路合成情報記憶部12に登録する機能を有している。
回路合成情報記憶部12は、ハードディスクや半導体メモリなど記憶装置からなり、回路合成情報生成部11で生成された回路合成情報23を記憶する機能を有している。
図2は、回路合成情報の構成例である。図2に示すように、回路合成情報23は、ループ展開数Mと回路並列数Nの組み合わせを示すパラメータと、合成回路の構成を示す処理サイクル数、動作周波数[MHz]、ステート切替サイクル数からなる合成結果情報とを含んでいる。これら回路合成情報23は、組み合わせを識別するためのIDが付与されて、回路合成情報記憶部12に登録されている。
最適パラメータ決定部13は、遅延制約情報24で指定された処理システム50の対象処理で許容される処理遅延を示す遅延制約と、処理システム50の対象処理に対して並列的に同時に入力されうるパケット(データ)のフロー数を示す同時アクセスフロー数(同時入力数)25とに基づいて、回路合成情報記憶部12に登録されている回路合成情報23ごとに、当該回路合成情報23が示す合成回路から得られる推定処理性能Pを算出する機能と、これら推定処理性能のうち最大推定処理性能Pmaxが得られた回路合成情報23に基づいて、ループ展開数Mと回路並列数Nの最適な組み合わせを決定し、最適パラメータ26として出力する機能とを有している。
[回路合成情報生成部]
次に、図1を参照して、回路合成情報生成部11の詳細について説明する。
図1に示すように、回路合成情報生成部11は、主な処理部として、パラメータ設定部11A、高位合成部11B、回路並列数算出部11C、および情報登録部11Dを備えている。
パラメータ設定部11Aは、ソースコード21で指定されたループ総数Qに基づいて、候補となるループ展開数Mを複数設定する機能を有している。
高位合成部11Bは、パラメータ設定部11Aが設定したループ展開数Mごとに、当該ループ展開数Mを適用した際に得られる合成回路を、高位合成処理により合成する機能を有している。
回路並列数算出部11Cは、リソース制約情報22で指定された処理システム50で使用可能なリソースを示すリソース制約と、高位合成部11Bで合成された合成回路のリソース使用量とに基づいて、合成回路ごとに候補となる回路並列数Nを算出して設定する機能を有している。
情報登録部11Dは、候補として設定されたループ展開数Mと回路並列数Nとの組み合わせに、組み合わせを識別するためのIDと、対応する合成回路の構成を示す合成結果情報とを付与し、得られた回路合成情報23を回路合成情報記憶部12に登録する機能を有している。
[最適パラメータ決定部]
次に、図1を参照して、最適パラメータ決定部13の詳細について説明する。
図1に示すように、最適パラメータ決定部13は、主な処理部として、性能推定部13A、性能比較部13B、最適パラメータ記憶部13C、およびパラメータ出力部13Dを備えている。
性能推定部13Aは、回路合成情報記憶部12に登録されている回路合成情報23ごとに、回路合成情報23に含まれるループ展開数Mと回路並列数Nとの組み合わせを適用した場合に得られる処理システム50の性能値である推定処理性能Pを算出する機能を有している。
性能比較部13Bは、性能推定部13Aで算出された推定処理性能Pを最適パラメータ記憶部13Cで記憶している最大推定処理性能Pmaxと比較する機能と、PがPmaxより大きい場合には、PmaxをPで更新するとともに、Pと対応するループ展開数Mと回路並列数Nとの組み合わせを最適パラメータとして最適パラメータ記憶部13Cに保存する機能とを有している。
パラメータ出力部13Dは、回路合成情報記憶部12に登録されているすべての回路合成情報23に関するPとPmaxとの比較が完了した後、最適パラメータ記憶部13Cに保存されている最適パラメータを取得して出力する機能を有している。
[本実施の形態の動作]
次に、本実施の形態にかかるパラメータ最適化装置10の動作について説明する。
[回路合成情報生成動作]
まず、図3を参照して、回路合成情報生成部11の回路合成情報生成動作について説明する。図3は、回路合成情報生成処理を示すフローチャートである。
まず、パラメータ設定部11Aは、例えば図7に示したようなソースコード21に含まれるfor文の記述からループ総数Qを取得する(ステップ100)。
続いて、パラメータ設定部11Aは、ループ展開数Miを1〜Qの範囲で1ずつ変化させて設定するため、まず、変数iを1で初期化し(ステップ101)、iの値をループ展開数Miに設定する(ステップ102)。
次に、高位合成部11Bは、パラメータ設定部11Aが設定したループ展開数Miを適用した際に得られる合成回路を、高位合成コンパラを用いてソースコード21から合成する(ステップ103)。
続いて、回路並列数算出部11Cは、高位合成部11Bで合成された合成回路に関する合成結果情報から、処理回路51あたりのリソース使用量Siを取得し(ステップ104)、このリソース使用量Siと、リソース制約情報22で指定された処理システム50で使用可能なリソースを示すリソース制約Smaxとに基づいて、ループ展開数Miの合成回路に関する回路並列数Niを算出する(ステップ105)。
この際、Niについては、Si×NiがSmax以下となる最大の数をNiとして選択する方法が考えられるが、これに限定されるものではない。例えば、ソースコード21から合成される合成回路以外に、並列化に必要な周辺回路などのリソースに関する使用リソース量を加味してNiを算出してもよい。
この後、情報登録部11Dは、得られたループ展開数Miと回路並列数Niとの組み合わせに、組み合わせを識別するためのIDと、対応する合成回路の構成を示す合成結果情報とを付与し、得られた回路合成情報23を回路合成情報記憶部12に登録する(ステップ106)。
次に、パラメータ設定部11Aは、変数iがループ総数Qに到達したか確認し(ステップ107)、iがQに到達していない場合(ステップ107:NO)、iをインクリメント(i=i+1)した後(ステップ108)、ステップ102へ戻る。
一方、iがQに到達した場合(ステップ107:YES)、一連の回路合成情報生成処理を終了する。
[最適パラメータ決定動作]
次に、図4を参照して、最適パラメータ決定部13の最適パラメータ決定動作について説明する。図4は、最適パラメータ決定処理を示すフローチャートである。
まず、性能推定部13Aは、最適パラメータ記憶部13Cで記憶する最大推定処理性能Pmaxをゼロで初期化した後(ステップ110)、回路合成情報記憶部12から未選択の回路合成情報23を1つ選択し(ステップ111)、選択した回路合成情報23に含まれるループ展開数Mと回路並列数Nとの組み合わせを適用した場合に得られる処理システム50の性能値である推定処理性能Pを算出する(ステップ112)。推定処理性能Pの算出方法については後述する。
性能比較部13Bは、性能推定部13Aで算出された推定処理性能Pを、最適パラメータ記憶部13Cで記憶している最大推定処理性能Pmaxと比較し(ステップ113)、PがPmax以下の場合には(ステップ113:NO)、ステップ111へ戻る。
一方、PがPmaxより大きい場合(ステップ113:YES)、性能比較部13Bは、PmaxをPで更新するとともに(ステップ114)、Pと対応するループ展開数Mと回路並列数Nとの組み合わせを最適パラメータ26として最適パラメータ記憶部13Cに保存する(ステップ115)。
この後、パラメータ出力部13Dは、回路合成情報記憶部12に登録されているすべての回路合成情報23の選択が完了したか確認し(ステップ116)、未完了の場合には(ステップ116:NO)、ステップ111へ戻る。
一方、すべての回路合成情報23の選択が完了した場合(ステップ116:YES)、パラメータ出力部13Dは、最適パラメータ記憶部13Cに保存されている最適パラメータ26を取得して出力し(ステップ117)、一連の最適パラメータ決定処理を終了する。
なお、性能比較部13Bが、最適パラメータ記憶部13Cに最適パラメータを保存する際、選択した回路合成情報23に含まれるループ展開数Mと回路並列数Nとの組み合わせを示すIDを保存してもよい。また、パラメータ出力部13Dが最適パラメータを出力する際、ループ展開数Mと回路並列数Nとの組み合わせを示すIDを出力してもよい。
[推定処理性能算出方法]
次に、図5を参照して、性能推定部13Aにおける推定処理性能算出方法について説明する。図5は、一般的な待ち行列システムを示す概念図である。
本推定手法では、入力パケットがランダムに到着する処理システム50における処理遅延を確率論的に評価するために、最適化の対象となる処理システム50を、図5に示すような待ち行列システム30として捉え、待ち行列理論に基づく理論式を用いて性能を推定する。ここでは、推定処理性能を「遅延制約を満たす最大の入力レート」と定義する。また、遅延制約は、遅延制約情報24により「遅延がa秒以内である確率がb%以上」であるというように与えられるものとする。
図5に示すように、待ち行列システム30は、複数のサービス窓口31と待ち行列から構成されている。この待ち行列システムを図6の処理システム50と対比させると、外部から入力されるパケットPKがランダムに到着する要求REQに対応し、並列展開された処理回路51がサービス窓口31に対応し、振分部52においてパケットを格納するためのキュー(図示せず)が待ち行列32に対応する。なお、キューはレジスタあるいはメモリを用いて実装される。
次に、性能推定に用いる推定式について説明する。
待ち行列理論に基づいて対象とする待ち行列システムにおける各要求の待ち時間を確率論的に評価するための理論式は、次の式(1)で表される。
Figure 2019215697
式(1)において、Cは待ち行列システム30における、各要求REQの待ち時間が許容値tを超える確率を表す。また、nはサービス窓口数を表し、Eは呼量すなわち要求REQの量に関する尺度を表している。また、AHTは要求REQの1件あたりのサービス時間を表し、Bは対象とするシステムが呼損系であると仮定した場合の呼損率を表している。ここで、呼損系とは、サービス窓口31が全て使用中の状態で新たな要求REQが到着した場合、その要求REQを待ち行列に並ばせるのではなく破棄する機能を有するシステムを指す。
式(1)のうち、呼損率Bについては、次の式(2)を用いて算出される。
Figure 2019215697
式(2)のうち、呼量Eについては、次の式(3)を用いて算出される。ここで、λは単位時間あたりの要求到着数を表す。その他の変数の定義は式(1)と同様である。
Figure 2019215697
また、遅延入力レートRと要求到着数λの関係は式(4)のように表される。ここで、Lはパケット長を表す。
Figure 2019215697
これらをまとめると、遅延制約が「遅延がa秒以内である確率がb%以上」である場合、許容値tの値をa秒に設定して、遅延入力レートRすなわち呼量Eを増加させていくことにより、確率Cの値がb%を維持する最大入力レートRmaxを求める。求めたRmaxが待ち行列システム30に関する推定処理性能Pとなる。
[AHT算出方法]
続いて、AHTの算出方法を説明する。
パラメータ最適化の対象とする処理システム50は、各処理回路51において、入力パケットのフローに応じて処理回路51内のステートを切り替えながら処理することを特徴とする。このため、現在処理中のパケットのフローと次に入力されるパケットのフローが異なる場合、処理回路51内のステートの切り替え処理が発生し、処理時間のオーバヘッドが発生する。
また、同一処理回路51に同時に入力されるフロー数が増えれば増えるほど、現在処理中のパケットのフローと次に入力されるパケットのフローが異なる確率は高くなる。したがって、同一処理回路51に同時に入力されるフロー数が増えれば増えるほど、処理回路51内のステート切り替えによる処理時間のオーバヘッドが発生する確率が高くなる。
以上を考慮して、本発明では、ステート切り替えによる処理時間のオーバヘッド発生確率を加味した期待値としてAHTを算出する。
次の式(5)は、AHTの算出式である。
Figure 2019215697
式(5)において、Psameは、入力パケットのフローが1つ前の入力パケットのフローと同じ確率を表す。また、AHTαは、ステート切り替えが発生しない場合のパケットあたりの処理時間を表し、AHTβは、ステート切り替えが発生する場合のパケットあたりの処理時間を表している。AHTαとAHTβは、回路合成情報記憶部12に保持された情報から算出する。
式(5)のうち、Psameは、次の式(6)を用いて算出される。
Figure 2019215697
式(6)において、サービス窓口数nは、回路並列数とする。また、Nflowは、システムに対する同時アクセスフロー数を表す。ここでは、処理システム50に入力されるパケットのフローはランダムであり、各フローの到着確率が1/Nflowであるという仮定の元でPsameを算出しているが、フローごとに異なる到着確率を仮定してPsameを算出してもよい。
[本実施の形態の効果]
このように、本実施の形態は、回路合成情報生成部11が、パラメータの候補としてループ展開数Mと回路並列数Nの組み合わせを複数設定して、これら組み合わせごとに、高位合成処理により得られる合成回路を示す回路合成情報23を生成し、最適パラメータ決定部13が、生成された回路合成情報23ごとに、当該回路合成情報23が示す合成回路に関する推定処理性能Pを算出し、最大の推定処理性能Pmaxが得られた回路合成情報23に基づいて、ループ展開数Mと回路並列数Nの最適な組み合わせを決定するようにしたものである。
これにより、候補として複数設定されたループ展開数Mと回路並列数Nの組み合わせのうちから、推定処理性能Pが最も高い推定処理性能Pmaxである合成回路のループ展開数Mと回路並列数Nが最適な組み合わせとして選択されることになる。したがって、高位合成処理において処理システム50の性能をチューニングする際に問題となる、処理回路51に関する「回路あたりの性能」と「回路並列数」のトレードオフを最適化することが可能となる。また、高位合成処理において処理システム50の性能をチューニングするのに要する工程期間を大幅に短縮することができ、チューニングに要する作業負担や作業コストを大幅に削減する可能となる。
また、本実施の形態において、回路合成情報生成部11が、組み合わせを設定する際、ループ展開で展開すべきループの総数を示すループ総数に基づいて、ループ展開数を設定するようにしてもよい。
また、本実施の形態において、回路合成情報生成部11が、処理システムで使用可能なリソースを示すリソース制約に基づいて、回路並列数を設定するようにしてもよい。
これにより、規定のループ総数およびリソース制約を持つ処理システム50に対して、過不足のない最適なループ展開数および回路並列数を特定することができる。
また、本実施の形態において、最適パラメータ決定部13が、推定処理性能Pを算出する際、回路合成情報23と、対象処理で許容される処理遅延を示す遅延制約と、対象処理に対して並列的に入力されるデータの同時入力数とに基づいて、推定処理性能Pを算出するようにしてもよい。
これにより、入力されたパケットのフローに応じて処理時間が異なる場合であっても、外部から与えられる各フローの到着確率を加味した最適化を図ることができ、実動作環境を反映した回路性能の最適化が可能となる。
[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
10…パラメータ最適化装置、11…回路合成情報生成部、11A…パラメータ設定部、11B…高位合成部、11C…回路並列数算出部、11D…情報登録部、12…回路合成情報記憶部、13…最適パラメータ決定部、13A…性能推定部、13B…性能比較部、13C…最適パラメータ記憶部、13D…パラメータ出力部、21…ソースコード、22…リソース制約情報、23…回路合成情報、24…遅延制約情報、25…同時アクセスフロー数、26…最適パラメータ。

Claims (8)

  1. 複数の処理回路に対して対象処理をループ展開して実行する処理システムを、高位合成処理により回路設計する際、前記高位合成処理で用いる設計パラメータであるループ展開数と回路並列数の最適な組み合わせを決定するパラメータ最適化装置であって、
    前記設計パラメータの候補となる、前記ループ展開数と前記回路並列数の組み合わせを複数設定し、これら組み合わせごとに、前記高位合成処理により得られる合成回路を示す回路合成情報を生成する回路合成情報生成部と、
    前記回路合成情報ごとに、当該回路合成情報が示す合成回路に関する推定処理性能を算出し、最大の推定処理性能が得られた回路合成情報に基づいて、前記ループ展開数と前記回路並列数の最適な組み合わせを決定する最適パラメータ決定部と
    を備えることを特徴とするパラメータ最適化装置。
  2. 請求項1に記載のパラメータ最適化装置において、
    前記回路合成情報生成部は、前記組み合わせを設定する際、前記ループ展開で展開すべきループの総数を示すループ総数に基づいて、前記ループ展開数を設定することを特徴とするパラメータ最適化装置。
  3. 請求項1または請求項2に記載のパラメータ最適化装置において、
    前記回路合成情報生成部は、前記組み合わせを設定する際、前記処理システムで使用可能なリソースを示すリソース制約に基づいて、前記回路並列数を設定することを特徴とするパラメータ最適化装置。
  4. 請求項1〜請求項3のいずれかに記載のパラメータ最適化装置において、
    前記最適パラメータ決定部は、前記推定処理性能を算出する際、前記回路合成情報と、前記対象処理で許容される処理遅延を示す遅延制約と、前記対象処理に対して並列的に入力されるデータの同時入力数とに基づいて、前記推定処理性能を算出することを特徴とするパラメータ最適化装置。
  5. 請求項1〜請求項4のいずれかに記載のパラメータ最適化装置において、
    前記処理システムは、
    振り分けられたパケットに対して予めループ展開された前記対象処理の一部を実行する前記複数の処理回路と、
    同時に入力される複数フローのパケットを、前記複数の処理回路に対して振り分ける振分部と、
    前記複数の処理回路で得られた処理結果を集約して出力する集約部とを備える
    ことを特徴とするパラメータ最適化装置。
  6. 請求項5に記載のパラメータ最適化装置において、
    前記複数の処理回路は、前記振分部から振り分けられたパケットのフローに応じて、当該パケットを処理するためのステートを切り替えることを特徴とするパラメータ最適化装置。
  7. 複数の処理回路に対して対象処理をループ展開して実行する処理システムを、高位合成処理により回路設計する際、前記高位合成処理で用いる設計パラメータであるループ展開数と回路並列数の最適な組み合わせを決定するパラメータ最適化装置で用いられるパラメータ最適化方法であって、
    回路合成情報生成部が、前記設計パラメータの候補となる、前記ループ展開数と前記回路並列数の組み合わせを複数設定し、これら組み合わせごとに、前記高位合成処理により得られる合成回路を示す回路合成情報を生成する回路合成情報生成ステップと、
    最適パラメータ決定部が、前記回路合成情報ごとに、当該回路合成情報が示す合成回路に関する推定処理性能を算出し、最大の推定処理性能が得られた回路合成情報に基づいて、前記ループ展開数と前記回路並列数の最適な組み合わせを決定する最適パラメータ決定ステップと
    を備えることを特徴とするパラメータ最適化方法。
  8. コンピュータを、請求項1〜請求項6のいずれかに記載のパラメータ最適化装置を構成する各部として機能させるためのプログラム。
JP2018112515A 2018-06-13 2018-06-13 パラメータ最適化装置、方法、およびプログラム Active JP6996431B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018112515A JP6996431B2 (ja) 2018-06-13 2018-06-13 パラメータ最適化装置、方法、およびプログラム
US17/251,739 US11720080B2 (en) 2018-06-13 2019-05-21 Parameter optimization device, method and program
PCT/JP2019/020104 WO2019239820A1 (ja) 2018-06-13 2019-05-21 パラメータ最適化装置、方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018112515A JP6996431B2 (ja) 2018-06-13 2018-06-13 パラメータ最適化装置、方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019215697A true JP2019215697A (ja) 2019-12-19
JP6996431B2 JP6996431B2 (ja) 2022-01-17

Family

ID=68842519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018112515A Active JP6996431B2 (ja) 2018-06-13 2018-06-13 パラメータ最適化装置、方法、およびプログラム

Country Status (3)

Country Link
US (1) US11720080B2 (ja)
JP (1) JP6996431B2 (ja)
WO (1) WO2019239820A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12271716B2 (en) 2022-06-09 2025-04-08 Fujitsu Limited Computer-readable recording medium storing conversion program and conversion processing method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002269162A (ja) * 2001-03-08 2002-09-20 Nec Eng Ltd 動作合成方法
JP2018041301A (ja) * 2016-09-08 2018-03-15 東芝情報システム株式会社 Rtl最適化システム及びrtl最適化プログラム
WO2018066074A1 (ja) * 2016-10-04 2018-04-12 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367651A (en) * 1992-11-30 1994-11-22 Intel Corporation Integrated register allocation, instruction scheduling, instruction reduction and loop unrolling
WO2010113330A2 (en) 2009-03-31 2010-10-07 Nec Corporation Method and apparatus for design space exploration in high level synthesis
JP6242170B2 (ja) * 2013-11-13 2017-12-06 三菱電機株式会社 回路設計支援装置及びプログラム
US10326448B2 (en) * 2013-11-15 2019-06-18 Scientific Concepts International Corporation Code partitioning for the array of devices
CN105447285B (zh) * 2016-01-20 2018-11-30 杭州菲数科技有限公司 一种提高OpenCL硬件执行效率的方法
US10380313B1 (en) * 2016-12-08 2019-08-13 Xilinx, Inc. Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002269162A (ja) * 2001-03-08 2002-09-20 Nec Eng Ltd 動作合成方法
JP2018041301A (ja) * 2016-09-08 2018-03-15 東芝情報システム株式会社 Rtl最適化システム及びrtl最適化プログラム
WO2018066074A1 (ja) * 2016-10-04 2018-04-12 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12271716B2 (en) 2022-06-09 2025-04-08 Fujitsu Limited Computer-readable recording medium storing conversion program and conversion processing method

Also Published As

Publication number Publication date
JP6996431B2 (ja) 2022-01-17
US11720080B2 (en) 2023-08-08
WO2019239820A1 (ja) 2019-12-19
US20210116882A1 (en) 2021-04-22

Similar Documents

Publication Publication Date Title
Mahmoudi et al. Performance modeling of serverless computing platforms
US6826733B2 (en) Parameter variation tolerant method for circuit design optimization
Campbell et al. The orienteering problem with stochastic travel and service times
Xie et al. Power of d choices for large-scale bin packing: A loss model
US7480880B2 (en) Method, system, and program product for computing a yield gradient from statistical timing
WO2018120990A1 (zh) 业务部署的方法与装置
KR20160049465A (ko) 클록 신호의 레이턴시를 조정하기 위한 방법, 장치, 및 프로그램
US20120266120A1 (en) Glitch power reduction
JP6996431B2 (ja) パラメータ最適化装置、方法、およびプログラム
Aït-Salaht et al. Stochastic bounds and histograms for network performance analysis
Brocal et al. Task period selection to minimize hyperperiod
US10380287B1 (en) Systems and methods for modifying a balanced clock structure
US11132489B1 (en) Layer assignment based on wirelength threshold
Jeż A universal randomized packet scheduling algorithm
Shortle et al. Approximation for a two-class weighted fair queueing discipline
Quaglia et al. Grain sensitive event scheduling in time warp parallel discrete event simulation
Fujiwara et al. A high-level synthesis algorithm for FPGA designs optimizing critical path with interconnection-delay and clock-skew consideration
US20160103710A1 (en) Scheduling device
Ewetz et al. Fast clock skew scheduling based on sparse-graph algorithms
US20210406915A1 (en) Mobile wireless customer micro-care apparatus and method
Vesilo Core allocation to minimize total flow time in a multicore system in the presence of a processing time constraint
Hahn et al. Symblicit exploration and elimination for probabilistic model checking
Hall et al. Using m/g/l queueing models with vacations to analyze virtualized logic computations
Wüchner et al. Homogeneous finite-source retrial queues with search of customers from the orbit
Hao et al. Simultaneous scheduling and binding for resource usage and interconnect complexity reduction in high-level synthesis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201006

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211129

R150 Certificate of patent or registration of utility model

Ref document number: 6996431

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350