Skip to content

Update noise scaling #20

@bmhowe23

Description

@bmhowe23

From @jolle-ag:

#13 (comment)

After talking to Kevin and testing myself, I realize that the current noise upscaling probably needs a more robust approach. There are two problems right now:

  1. prep_X and prep_Z are grouped into a single noise channel (prep). These should be kept as separate noise channels because 2. then the P gets a double count. Same happens for meas_X and meas_Z (they should be kept separate but are now joined into a single meas channel with its P).
  2. The p_idle_spam parameters are an effective 2-step p accounting for a measurement step and a state prep step. Again, this inflates the actual P when aggregating X, Y and Z.

For example, when using the config file as is (designed to produce a depolarizing noise model with p=6e-3), we see in the logs the following:

[Train] noise_model grouped totals: prep=0.008, meas=0.008, idle_cnot=0.006, idle_spam=0.011952, cnot=0.006; max_group=0.011952
[Train] Downscale NOT applied: max_group=0.011952 > target=6.0e-03. Parameters unchanged. If you intended a lower noise regime, check your noise model values.

Notice how we get the warning that max_group > 6e-3? That's due to the p_idle_spam's modeling two steps. In addition (we don't get warned about this), both meas > 6e-3 and prep > 6e-3.

The solution:

  1. Separate prep -> prep_x and prep_z; separate meas -> meas_x, meas_z.
  2. Divide idle_spam by 2 when deciding what should be the max_group to avoid the "2-step-inflation" of the P in this noise channel.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions