-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pj/dta2 412/update detailed hardware model #157
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ding proxy for op_list
Got rid of transpile to clifford + T usage as this should no longer be the defaut method.
…or spatial and temporal accounting
max-radin
reviewed
Jul 10, 2024
max-radin
reviewed
Jul 10, 2024
max-radin
reviewed
Jul 10, 2024
max-radin
requested changes
Jul 11, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pediejo it looks like the changes to the ResourceInfo
docstring did not go through, maybe you have some uncommitted or unpushed changes? Otherwise looks good!
…g qubit gate speed
…om:zapatacomputing/benchq into pj/DTA2-412/update_detailed_hardware_model
🚀 Code Coverage
|
max-radin
approved these changes
Jul 15, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The purpose of this PR is to enable making detailed and accurate resource estimates for the
DetailedIonTrapArchitectureModel
(e.g. numbers of ions used for different purposes). The implementation of this PR led us to realize how to make a more tight accounting of resources at the logical architecture level. Thus, there have also been changes to how the number of qubits and surface code cycles are counted in the space vs time optimal compilations. We split the explanation of these changes in two:Detailed Ion Trap Architecture Changes
Challenge: The challenge is that the numbers of ions in each elementary logic unit (ELU) depend on the functional designation of that ELU (e.g. data ELU vs bus ELU). Accordingly, the
get_hardware_resource_estimates
method requires information about the numbers of these ELUs. The previous version of BenchQ did not expose this accounting.Solution: To enable this accounting, several objects have been introduced:
BusArchitectureResourceInfo
: This data class stores resource information about the quantum computation after it has been compiled to this logical architecture and before it has been compiled to the physical architecture. As such, the object serves as a resource estimate for a kind of intermediate representation that could apply in principle to multiple physical architectures (assuming they have the same physical error rate).ELUResourceInfo
: This data class is specific to ion traps and stores information about the counts of ions for different uses within the ELU.DetailedIonTrapArchitectureResourceInfo
: This data class stores theELUResourceInfo
objects for each of the ELU designations in the architecture.The functions used to account for the intra-ELU ion usage were developed by Ilia Khait and implemented by @pediejo.
Logical Architecture Resource Accounting Changes
Challenge: In generating resources using this updated accounting, we noticed that the counts for the numbers of magic state factories in the time optimal case were quite high.
Solution: We now loop through each subroutine and each layer of each subroutine to determine the maximum number of parallel T measurements that would need to be made at any one time and use this to determine the time-optimal magic state factory counts. For the space-optimal accounting, there is just one magic state factory and so all T measurements are made sequentially. Furthermore, the logic for estimating the space-optimal vs time-optimal cases has been simplified and diagrams have been added to explain the accounting. Lastly, in the
estimate_resources_from_compiled_implementation
function, the logical architecture resource info object is computed, used to get the hardware resource estimates, and then appended to the outputGraphResourceInfo
data class. This exposes the logical architecture resource info more readily to users.General notes
code_distance
->data_and_bus_code_distance
)Please verify that you have completed the following steps