키스킷 0.36 릴리즈 노트
0.36.2
테라 0.20.2
Prelude
키스킷 테라 0.20.2 는 버그 수정 릴리스로, 지난 패치 릴리스 이후 확인된 몇 가지 사소한 문제를 해결합니다.
버그 수정
-
문제를 수정했습니다
BackendV2-기반 가짜 백엔드 클래스(예:qiskit.providers.fake_provider모듈에서FakeMontrealV2, 여기서 값은dtm및dt속성 및 관련 속성Target.dt값이 초로 제대로 변환되지 않는 문제를 수정했습니다. 이러한 가짜 백엔드를 스케줄링에 사용할 경우 문제가 발생할 수 있습니다. 8018번을 참조하세요. -
marginal_counts()는 이제 0이 아닌 요소가 포함된indices매개 변수를 사용하여 메모리를 한계 설정하라는 요청을 받을 때 성공합니다. 이전에는 16진수 결과 표현이 충분히 작은 샷의 경우ValueError. 8044를 참조하세요. -
OpenQASM 3 익스포터(
qiskit.qasm3)는 이제 게이트 선언 전에input또는output선언을 출력합니다. 이는 OpenQASM 3 팀의 현재 참조 ANTLR 문법과 더 일치합니다. 7964번을 참조하세요. -
트랜스파일러 패스의 버그를 수정했습니다
RZXCalibrationBuilder트랜스파일러 패스에서 스케일링된 교차 공명 펄스 진폭이 할당 후에도 파라미터화된 것처럼 보일 수 있는 버그를 수정했습니다. 이로 인해 펄스 시각화 도구가 예상되는 숫자 형식이 아닌 매개변수화된 형식을 사용할 수 있습니다. 8031번을 참조하세요. -
함수 관련 문제를 수정했습니다
transpile()함수를 실행할 때BackendV2-기반 백엔드로 실행하고scheduling_method키워드 인수를 설정할 때 발생하는 문제를 수정했습니다. 이전에는 이 함수가 백엔드에서 지원하는 명령어의 기본 길이를 올바르게 처리하지 못해 오류가 발생했습니다. -
트랜스파일러 패스의 버그를 수정했습니다
RZXCalibrationBuilder트랜스파일러 패스에서 가끔 펄스가 잘못된 지속 시간으로 구성되던 버그를 수정했습니다. 7994번을 참조하세요. -
트랜스파일러 패스는
SabreSwap에서 사용되는 트랜스파일러 패스transpile()routing_method="sabre"를 설정하면 트랜스파일링의 라우팅 단계에서 더 이상 클래식 컨디셔닝 게이트와 그 후속 게이트가 회로에서 산발적으로 드롭되지 않습니다. 8040을 참조하세요. -
Statevector는 이제 값(예:for coefficient in statevector)을 직접 반복할 수 있으며len에서 길이를 올바르게 보고합니다. 이전에는 범위를 벗어난 데이터에 액세스하려고 시도하고QiskitError. 8039번을 참조하세요.
에어 0.10.4
변경 없음
이그니스 0.7.1
Prelude
이 버그 수정 릴리스는 주로 qiskit-ignis 문서를 빌드하는 데 사용되는 소스 파일이 포함된 docs/ 디렉터리가 Python 패키지에 포함되도록 하는 패키징 문제를 해결합니다.
IBM Q 제공자 0.19.1
변경 없음
0.36.1
테라 0.20.1
Prelude
키스킷 테라 0.20.1 는 릴리스 0.20.0 에서 확인된 문제를 해결하는 버그 수정 릴리스입니다.
알려진 문제점
-
QPY 역직렬화
qpy.load()함수로 역직렬화하면 회로에서 직접 인스턴스화된UCPauliRotGate클래스에 대한 회전 축 인수가 표준 위치에 저장되지 않기 때문에 회로에서 객체를 직접 인스턴스화하면 실패합니다. 이 문제를 해결하려면 대신 서브클래스를 사용할 수 있습니다:UCRXGate,UCRYGate또는UCRZGate(각각"X","Y","Z"의 회전 축을 사용하는지 여부에 따라) 클래스 생성자에 회전 축을 포함하면 QPY에서 올바르게 작동합니다. -
키스킷 테라에 처음 소개된 이후 0.20,
XXPlusYYGate는 다른 모든 회전 게이트에 비해 음의 각도 규칙을 사용했습니다. 키스킷 테라 0.21 에서는 다른 로테이션 게이트와 일치하도록 수정될 예정입니다. 이것은 다른 회전 게이트에는 영향을 미치지 않으며XXMinusYYGate.
버그 수정
-
고정
Clifford,Pauli및CNOTDihedral연산자 초기화를 포함하는 호환 가능한 회로에서Delay명령어를 포함합니다. 이러한 지침은 운영자로 전환할 때 ID로 취급됩니다. -
함수에서
eval_observables()함수가quantum_state인수의 유형이StateFn인 경우 오류를 발생시키는 문제를 수정했습니다.eval_observables이제 유형 힌트로 표시된 모든 입력 유형을 올바르게 지원합니다. -
시각화 기능 관련 문제 수정
dag_drawer()및 메서드DAGCircuit.draw()의 시각화 함수 및 메서드 관련 문제를 수정했습니다DAGCircuit객체에 대한 시각화를 생성하려고 할 때Qubit또는Clbit가 포함되지 않은 객체에 대한 시각화 생성 시 실패하던 문제를 수정했습니다(QuantumRegister또는ClassicalRegister. 7915를 수정했습니다. -
클래스에 대한 매개변수 유효성 검사 수정
Drag. 이전에는 음의 부호를 가진 큰 베타 값에 민감하지 않았기 때문에 최대 값이 진폭 제한( 1.0 )을 초과하는 파형 샘플이 발생할 수 있었습니다. -
많은 알고리즘에서 사용되는
QuantumInstance클래스(예:VQE)는 작업 상태가 업데이트되기를 기다리는 동안 잠자기 값을 하드코딩하고 있었습니다. 이제 이니셜라이저의wait속성에 설정된 대로 구성된 슬립 값을 존중합니다QuantumInstance. -
함수 관련 문제를 수정했습니다
schedulelist함수의 문제를 수정했습니다QuantumCircuit객체를 지정하는 호출자에게 단일 항목이 있는 단일Schedulelist객체를 반환하는 문제를 수정했습니다. -
제공된 백엔드에 정의된 읽기 오류가 있는 백엔드로 실행할 때
plot_error_map시각화 기능이 작동하지 않던 문제를 수정했습니다BackendProperties또는BackendV2백엔드. 7879를 수정했습니다. -
메서드에 인스턴스가 주어졌을 때 기하급수적인 런타임과 종료되지 않을 수 있는 버그를 수정했습니다
Pauli인스턴스가init_observables()메서드에 전달될 때 기하급수적인 시간 초과 및 종료되지 않는 버그를 수정했습니다. -
Fixed
SabreSwap및 확장transpile()optimization_level=3를 사용하여 간혹 측정값을 잘못 재주문하는 문제를 수정했습니다. 이전에는 두 측정값이 동일한 클래식 비트에 쓰인다면SabreSwap는 (커플링 맵에 따라) 순서를 바꿔서 등가가 아닌 회로를 생성할 수 있었습니다. 이 동작은 확률적이어서 안정적으로 나타나지 않았을 수 있습니다. 수정 #7950 -
트랜스파일러 패스
SabreSwap트랜스파일러 패스, 그리고 더 나아가SabreLayout와transpile()optimization_level=3는 이제 무한 루프에 갇히지 않도록 보장하는 탈출 메커니즘을 갖췄습니다. 이전에는 특정 입력값이 운이 나쁘면 안정적인 로컬 최소 검색 공간에 갇혀 패스가 더 이상 진행되지 않을 수 있었습니다. 이제 라우팅이 최근 진전이 없는 것으로 감지되면 일련의 스왑을 강제로 수행하여 라우팅을 계속할 수 있도록 합니다. 수정 #7707. -
QPY 역직렬화 관련 문제를 수정했습니다
qpy.load()함수의UCRXGate,UCRYGate및UCRZGate클래스의 함수를 통한 역직렬화 문제를 수정했습니다. 이전에는 이러한 게이트가 포함된 QPY 파일은 파일을 로드하려고 할 때 오류가 발생했습니다. 7847 수정.
에어 0.10.4
변경 없음
이그니스 0.7.0
변경 없음
IBM Q 제공자 0.19.1
0.19.1
버그 수정
- PR #1129는
least_busy()메서드가 더 이상 유효한 입력 또는 출력 유형으로 BaseBackend 을 지원하지 않도록 업데이트하는데, 이는 qiskit-terra에서 오랫동안 사용되지 않았고 최근에 제거되었기 때문이다.
0.36.0
테라 0.20.0
변경 없음
에어 0.10.4
업그레이드 주의사항
- 키스킷 에어는 더 이상 안전하지 않은 부동소수점 최적화를 사용하여 컴파일되지 않습니다. 대부분의 효과는 키스킷 에어에 로컬라이즈되었어야 하지만, 이전에 라이브러리가 "0으로 플러시" 모드를 잘못 설정하여 비정상적인 처리의 일부 측면이 사용자 코드에 유출되었을 수 있습니다. 더 이상 이런 일은 일어나지 않을 것입니다.
버그 수정
-
캐시 차단 트랜스파일러가 슈퍼옵을 캐시 차단으로 인식하도록 수정했습니다. 1479번 문제 해결 <https://github.com/Qiskit/qiskit-aer/issues/1479> 이제 노이즈 모델이 있는 밀도_매트릭스를 병렬화할 수 있습니다. 이 문제를 확인하기 위해 test_noise.TestNoise.test_kraus_gate_noise_on_QFT_cache_blocking이라는 새로운 테스트가 추가되었습니다. 또한 이 수정에는 새로운 테스트 사례를 추가하여 발견된 문제 1483( <https://github.com/Qiskit/qiskit-aer/issues/1483> )에 대한 수정도 포함되어 있습니다. 이렇게 하면 상태 벡터의 청크에 대한 측정값이 수정됩니다.
-
백엔드에서 T2 값이 2 * T1 보다 클 때 오류가 발생하던 버그(
NoiseModel.from_backend())를 수정했습니다. 이 수정 후에는 T2 값을 최대 2 * T1 까지 잘라내고 잘릴 경우 사용자 경고를 발행하게 됩니다. 이 버그는 #1391에 도입되었으며, 그 이전에는NoiseModel.from_backend()에서 T2 값을 2 * T1 까지 자동으로 잘라냈습니다.자세한 내용은 1464호를 참조하세요.
-
장치= OpenMP 스레딩이 항상 적용되었기 때문에 적은 수의 큐비트에 대해 추력이 매우 느렸습니다. 이 수정 사항은 상태 벡터_병렬_임계값을 사용하여 OpenMP 스레드를 장치=CPU와 동일하게 적용합니다.
-
키스킷 에어는 더 이상 로드 시 부동 소수점 모드를 "0으로 플러시"로 설정하지 않습니다. 다운스트림 사용자는 이전에 Numpy에서 다음과 같은 경고를 보았을 수 있습니다:
<class ‘numpy.float64’> 유형에 대한 가장 작은 하위 노멀의 값은 0입니다.
이제 이러한 오류가 더 이상 발생하지 않으며 부동 소수점 처리가 올바르게 수행됩니다.
-
속성이 설정된 회로에서 시뮬레이션을 실행할 때 발생할 수 있는 문제를 수정했습니다
QuantumCircuit.metadata속성이 설정된 회로에서 시뮬레이션을 실행할 때 발생할 수 있는 문제를 수정했습니다. 어트리뷰트는metadata어트리뷰트는 모든 파이썬 딕셔너리가 될 수 있으며, 이전에는 qiskit-aer가 어트리뷰트의 내용이 JSON 직렬화할 수 없는 경우에도 나머지 회로 입력과 함께 처리하기 위해 해당 내용을 JSON 직렬화하려고 시도했습니다. 이 문제는 더 이상 발생하지 않습니다QuantumCircuit.metadata속성이 시뮬레이션을 실행하는 데 사용되지 않으므로 이제 콘텐츠가 직렬화되지 않고 대신 콘텐츠를 JSON으로 직렬화하지 않고도qiskit.result.Result객체에 직접 첨부됩니다. 수정 #1435
이그니스 0.7.0
변경 없음
IBM Q 제공자 0.19.0
새 기능
- 이제 qiskit-ibmq-provider 패키지가 IBM 퀀텀 LiveData 기능을 지원합니다. 이러한 기능을 통해 사용자는 작업을 실행하는 동안 IBM 퀀텀 백엔드의 실시간 동작을 관찰할 수 있습니다. 구체적으로, 공급자는 이제 백엔드 Jupyter 관련 위젯에 새 탭을 포함하며, 허용된 IBM 퀀텀 백엔드에서 live_data_enabled=True 매개변수를 사용한 작업 실행(
qiskit.providers.ibmq.IBMQBackend.run()메서드 사용)을 지원합니다. - 이제
qiskit.providers.ibmq.runtime.IBMRuntimeService.run()방법으로 Qiskit Runtime 작업을 제출할 때options키워드에 다른 로깅 수준을 지정할 수 있습니다.
업그레이드 주의사항
- Python 3.6 2021년 12월에 수명이 종료되어 지원이 중단되었습니다.
- qiskit.providers.ibmq.random cQC 난수 추출기에 액세스하는 데 사용되던 난수 서비스는 더 이상 지원되지 않으며 제거되었습니다.
지원 중단 노트
qiskit.providers.ibmq.runtime.IBMRuntimeService.run()메서드의image키워드는 더 이상 사용되지 않습니다. 대신options키워드에 사용할 이미지를 지정해야 합니다.
버그 수정
- 문제 수정 #190. 이제
qiskit.providers.ibmq.runtime.RuntimeEncoder및qiskit.providers.ibmq.runtime.RuntimeDecoder에서 Instruction 클래스의 인스턴스를 처리하도록 업데이트되었습니다. - 객체 유형이 있는 널 배열을 직렬화할 수 없는 문제 #74를 수정했습니다.
qiskit.providers.ibmq.runtime.RuntimeEncoder와qiskit.providers.ibmq.runtime.RuntimeDecoder가 이러한 배열을 처리하도록 업데이트되었습니다.