HLSConfig
class qiskit.transpiler.passes.HLSConfig(use_default_on_unspecified=True, plugin_selection='sequential', plugin_evaluation_fn=None, **kwargs)
ベース: object
高位合成コンフィグでは、変換パスがさまざまなタイプの高位オブジェクトを合成する際に使用する「メソッド」のリストを指定することができる。 HighLevelSynthesis 変換パスで使用される "メソッド "のリストを指定することができます。
上位レベルのオブジェクトとは Operation (例えば Clifford または LinearFunction). 各オブジェクトは name"clifford" フィールド(たとえば Clifford オブジェクトの場合)、適用可能な合成メソッドはこの名前に結びつけられます。
コンフィグでは、各メソッドはいくつかの方法のいずれかで指定される:
- 既知の合成プラグインの名前と、アルゴリズムの追加引数を提供する辞書からなるタプル。
- のインスタンスと
HighLevelSynthesisPluginのインスタンスとアルゴリズムの追加引数からなるタプルである。 - 既知の合成プラグインの単一の文字列
- のインスタンス
HighLevelSynthesisPlugin.
次の例は、コンフィグファイルのさまざまな作成方法を示している:
from qiskit.transpiler.passes.synthesis.high_level_synthesis import HLSConfig
from qiskit.transpiler.passes.synthesis.high_level_synthesis import ACGSynthesisPermutation
# All the ways to specify hls_config are equivalent
hls_config = HLSConfig(permutation=[("acg", {})])
hls_config = HLSConfig(permutation=["acg"])
hls_config = HLSConfig(permutation=[(ACGSynthesisPermutation(), {})])
hls_config = HLSConfig(permutation=[ACGSynthesisPermutation()])合成プラグインの名前は、 pyproject.toml の qiskit.synthesis の entry-points テーブルで、 <higher-level-object-name>. <synthesis-method-name> の形式で宣言する。
標準的な上位レベルのオブジェクトは、"default "と呼ばれる合成メソッドを持つことが推奨されている。このメソッドは、これらのオブジェクトを合成するときに自動的に呼び出されるため、コンフィグでこれらのメソッドを明示的に設定する必要はない。
与えられた上位レベル・オブジェクトの合成を避けるために、メソッドの空リストを与えることができる。
このようなコンフィグファイルの明確な使用例については HighLevelSynthesis.
高位合成の完全なプロセスの概要については、 高位合成プラグインを参照してください。
高位合成コンフィグを作成する。
パラメーター
- use_default_on_unspecified (bool) – もし True なら、明示的にメソッドのリストが指定されていないすべての上位レベルオブジェクトは、"default" アルゴリズムが存在すればそれを使って合成されます。
- plugin_selection (str) –
"sequential"(デフォルト) に設定すると、すべての上位レベルのオブジェクトに対して、指定されたメソッドを順次検討し、オブジェクトを合成できる最初のメソッドで停止します。"all"に設定すると、指定されたすべての方法が考慮され、plugin_evaluation_fnに従って最適な合成回路が選択される。 - plugin_evaluation_fn (Callable[[QuantumCircuit], int] | None) –
plugin_selection="sequential";この値が小さいほど良い回路であることを意味する。Noneの場合、回路の品質はそのサイズ(つまり、その回路が含むゲートの数)である。 - kwargs - 上位レベルのオブジェクトを合成メソッドのリストにマッピングした辞書。
方法
set_methods
set_methods(hls_name, hls_methods)
指定された上位レベル・オブジェクトの合成メソッドのリストを設定します。 これは、メソッドのリストが以前に設定されていた場合は、それを上書きする。