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" for 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이면 명시적으로 지정된 메서드 목록이 없는 모든 상위 수준 객체가 존재할 경우 "기본" 알고리즘을 사용하여 합성됩니다.
- plugin_selection (str) –
"sequential"(기본값)로 설정하면 모든 상위 레벨 객체에 대해 합성 패스는 지정된 메서드를 순차적으로 고려하고 객체를 합성할 수 있는 첫 번째 메서드에서 중지합니다."all"로 설정하면 지정된 모든 방법이 고려되고plugin_evaluation_fn에 따라 가장 적합한 합성 회로가 선택됩니다. - plugin_evaluation_fn (Callable[[QuantumCircuit], int] | None) –;인 경우 합성된 양자 회로의 품질을 평가하는 콜러블
plugin_selection="all"; 값이 작을수록 회로의 품질이 더 우수함을 의미합니다. 만약 그렇다면None, 회로의 품질은 그 크기(즉, 회로에 포함된 게이트의 수)에 달려 있다. - kwargs - 상위 레벨 객체를 합성 메서드 목록에 매핑하는 사전입니다.
메소드
set_methods
set_methods(hls_name, hls_methods)
지정된 상위 레벨 객체에 대한 합성 메서드 목록을 설정합니다. 이렇게 하면 이전에 설정한 메소드 목록도 덮어쓰게 됩니다.