QuantumSavory / QuantumClifford.jl

Clifford circuits, graph states, and other quantum Stabilizer formalism tools.
MIT License
113 stars 45 forks source link

Fix type instabilities in compactified methods #265

Closed Krastanov closed 5 months ago

Krastanov commented 5 months ago
function x_diag_circuit_noisy_measurement(csize)
    circuit = []
    for i in 1:csize
        push!(circuit, PauliError(i, 0.1))
        push!(circuit, sHadamard(i))
        push!(circuit, sCNOT(i, csize+1))
        push!(circuit, sMZ(csize+1,i))
        push!(circuit, ClassicalXOR((1,(i%6+6)),i))
    end
    return circuit
end

@benchmark pftrajectories(state,circuit) setup=(state=PauliFrame(1000, 1001, 1001); circuit=compactify_circuit(x_diag_circuit_noisy_measurement(1000))) evals=1

Before:
BenchmarkTools.Trial: 10 samples with 1 evaluation.
 Range (min … max):  2.885 ms …  2.962 ms  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     2.900 ms              ┊ GC (median):    0.00%
 Time  (mean ± σ):   2.912 ms ± 30.387 μs  ┊ GC (mean ± σ):  0.00% ± 0.00%

  █▁ ▁   ▁      ▁    ▁                       ▁          ▁  ▁
  ██▁█▁▁▁█▁▁▁▁▁▁█▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁█▁▁█ ▁
  2.89 ms        Histogram: frequency by time        2.96 ms <

 Memory estimate: 187.50 KiB, allocs estimate: 4000.

After:
BenchmarkTools.Trial: 749 samples with 1 evaluation.
 Range (min … max):  2.929 ms …  3.097 ms  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     2.948 ms              ┊ GC (median):    0.00%
 Time  (mean ± σ):   2.951 ms ± 16.854 μs  ┊ GC (mean ± σ):  0.00% ± 0.00%

        ▃█▆▂
  ▂▂▃▄▅▆█████▅▅▄▄▃▃▄▃▃▃▂▂▁▁▁▂▁▂▂▁▁▁▁▁▁▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▁▁▂▁▂▂ ▃
  2.93 ms        Histogram: frequency by time        3.06 ms <

 Memory estimate: 0 bytes, allocs estimate: 0.

If you want to submit an unfinished piece of work in order to get comments and discuss, please mark the pull request as a draft and ping the repository maintainer

Before considering your pull request ready for review and merging make sure that all of the below are completed:

github-actions[bot] commented 5 months ago
Benchmark Result # Judge result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmarks: - Target: 20 Apr 2024 - 17:37 - Baseline: 20 Apr 2024 - 17:45 * Package commits: - Target: 9bd664 - Baseline: 749d37 * Julia commits: - Target: 033abb - Baseline: 033abb * Julia command flags: - Target: None - Baseline: None * Environment variables: - Target: None - Baseline: None ## Results A ratio greater than `1.0` denotes a possible regression (marked with :x:), while a ratio less than `1.0` denotes a possible improvement (marked with :white_check_mark:). Only significant results - results that indicate possible regressions or improvements - are shown below (thus, an empty table means that all benchmark results remained invariant between builds). | ID | time ratio | memory ratio | |--------------------------------------------------------------------|------------------------------|------------------------------| | `["circuitsim", "compactification", "compact"]` | 1.05 (5%) | 0.00 (1%) :white_check_mark: | | `["circuitsim", "mctrajectories_union", "q1001_r1"]` | 0.94 (5%) :white_check_mark: | 1.00 (1%) | | `["circuitsim", "pftrajectories_sumtype", "q1001_r1"]` | 0.93 (5%) :white_check_mark: | 0.00 (1%) :white_check_mark: | | `["circuitsim", "pftrajectories_sumtype", "q1001_r100"]` | 0.95 (5%) | 0.00 (1%) :white_check_mark: | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000"]` | 0.99 (5%) | 0.00 (1%) :white_check_mark: | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000_fastrow"]` | 1.00 (5%) | 0.00 (1%) :white_check_mark: | | `["circuitsim", "pftrajectories_sumtype", "q101_r1"]` | 0.94 (5%) :white_check_mark: | 0.00 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 0.92 (5%) :white_check_mark: | 0.97 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "shor_table_naivesyn"]` | 1.00 (5%) | 0.98 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "shor_table_shorsyn"]` | 1.01 (5%) | 0.97 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_pybp_naivesyn"]` | 0.99 (5%) | 0.99 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_pybp_shorsyn"]` | 0.97 (5%) | 0.99 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_pymatch_naivesyn"]` | 1.00 (5%) | 0.97 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_pymatch_shorsyn"]` | 1.01 (5%) | 0.97 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_table_naivesyn"]` | 1.00 (5%) | 0.97 (1%) :white_check_mark: | | `["ecc", "evaluate_decoder", "toric8_table_shorsyn"]` | 1.01 (5%) | 0.97 (1%) :white_check_mark: | | `["stabilizer", "canon", "diag_rref500"]` | 1.11 (5%) :x: | 1.00 (1%) | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ### Target ``` Julia Version 1.12.0-DEV.375 Commit 033abb41874 (2024-04-20 14:51 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1018-azure #19~22.04.2-Ubuntu SMP Thu Mar 21 16:45:46 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 2665 s 0 s 175 s 6348 s 0 s #2 0 MHz 3131 s 0 s 189 s 5844 s 0 s #3 0 MHz 1846 s 0 s 188 s 7127 s 0 s #4 0 MHz 1565 s 0 s 186 s 7419 s 0 s Memory: 15.606494903564453 GB (13364.41796875 MB free) Uptime: 923.53 sec Load Avg: 1.11 1.06 0.76 WORD_SIZE: 64 LLVM: libLLVM-16.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` ### Baseline ``` Julia Version 1.12.0-DEV.375 Commit 033abb41874 (2024-04-20 14:51 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1018-azure #19~22.04.2-Ubuntu SMP Thu Mar 21 16:45:46 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 3569 s 0 s 220 s 9822 s 0 s #2 0 MHz 4683 s 0 s 257 s 8649 s 0 s #3 0 MHz 2465 s 0 s 234 s 10887 s 0 s #4 0 MHz 2913 s 0 s 240 s 10443 s 0 s Memory: 15.606494903564453 GB (13243.65234375 MB free) Uptime: 1366.79 sec Load Avg: 1.0 1.01 0.87 WORD_SIZE: 64 LLVM: libLLVM-16.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Target result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmark: 20 Apr 2024 - 17:37 * Package commit: 9bd664 * Julia commit: 033abb * Julia command flags: None * Environment variables: None ## Results Below is a table of this job's results, obtained by running the benchmarks. The values listed in the `ID` column have the structure `[parent_group, child_group, ..., key]`, and can be used to index into the BaseBenchmarks suite to retrieve the corresponding benchmarks. The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given benchmark is expected to fall within this percentage of the reported value. An empty cell means that the value was zero. | ID | time | GC time | memory | allocations | |--------------------------------------------------------------------|----------------:|----------:|----------------:|------------:| | `["circuitsim", "compactification", "compact"]` | 7.332 ms (5%) | | | | | `["circuitsim", "compactification", "no_compact"]` | 7.479 ms (5%) | | 281.25 KiB (1%) | 6000 | | `["circuitsim", "mctrajectories", "q1001_r1"]` | 14.931 ms (5%) | | 500.77 KiB (1%) | 18019 | | `["circuitsim", "mctrajectories", "q101_r1"]` | 170.920 μs (5%) | | 50.53 KiB (1%) | 1818 | | `["circuitsim", "mctrajectories_sumtype", "q1001_r1"]` | 13.102 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_sumtype", "q101_r1"]` | 117.450 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "mctrajectories_union", "q1001_r1"]` | 12.905 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_union", "q101_r1"]` | 116.238 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "pftrajectories", "q1001_r1"]` | 60.332 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r100"]` | 177.011 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r10000"]` | 1.100 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q101_r1"]` | 6.061 μs (5%) | | 9.42 KiB (1%) | 201 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r1"]` | 42.900 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r100"]` | 150.632 μs (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000"]` | 1.080 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000_fastrow"]` | 5.844 ms (5%) | | | | | `["circuitsim", "pftrajectories_sumtype", "q101_r1"]` | 4.317 μs (5%) | | | | | `["circuitsim", "pftrajectories_union", "q1001_r1"]` | 22.602 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r100"]` | 132.257 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r10000"]` | 1.053 ms (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q101_r1"]` | 2.334 μs (5%) | | 96 bytes (1%) | 2 | | `["clifford", "dense", "cnot250_on_dense500_destab"]` | 11.456 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_dense500_stab"]` | 5.764 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_destab"]` | 1.123 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_stab"]` | 490.116 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot_on_dense500_destab"]` | 50.694 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_dense500_stab"]` | 24.175 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_destab"]` | 26.259 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_stab"]` | 13.546 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "dense500_on_dense500_destab"]` | 11.447 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_dense500_stab"]` | 5.759 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 1.123 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_stab"]` | 490.196 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "symbolic", "cnot250_on_dense500_destab"]` | 1.440 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_dense500_stab"]` | 686.955 μs (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_destab"]` | 1.162 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_stab"]` | 569.916 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_destab"]` | 4.758 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_stab"]` | 2.304 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_destab"]` | 4.658 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_stab"]` | 2.304 μs (5%) | | | | | `["ecc", "evaluate_decoder", "shor_bp_comm"]` | 1.808 ms (5%) | | 1.77 MiB (1%) | 42609 | | `["ecc", "evaluate_decoder", "shor_bp_naivesyn"]` | 4.285 ms (5%) | | 3.63 MiB (1%) | 82077 | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 4.718 ms (5%) | | 3.73 MiB (1%) | 83229 | | `["ecc", "evaluate_decoder", "shor_pybp_comm"]` | 24.441 ms (5%) | | 3.97 MiB (1%) | 116082 | | `["ecc", "evaluate_decoder", "shor_pybp_naivesyn"]` | 49.824 ms (5%) | | 7.99 MiB (1%) | 228127 | | `["ecc", "evaluate_decoder", "shor_pybp_shorsyn"]` | 49.906 ms (5%) | | 8.07 MiB (1%) | 229125 | | `["ecc", "evaluate_decoder", "shor_table_comm"]` | 258.804 μs (5%) | | 241.42 KiB (1%) | 4593 | | `["ecc", "evaluate_decoder", "shor_table_naivesyn"]` | 1.087 ms (5%) | | 350.69 KiB (1%) | 5149 | | `["ecc", "evaluate_decoder", "shor_table_shorsyn"]` | 1.492 ms (5%) | | 440.03 KiB (1%) | 6147 | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 677.179 ms (5%) | 10.106 ms | 170.29 MiB (1%) | 1021280 | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.405 s (5%) | 21.277 ms | 351.96 MiB (1%) | 2142534 | | `["ecc", "evaluate_decoder", "toric8_bp_shorsyn"]` | 1.412 s (5%) | 22.291 ms | 355.31 MiB (1%) | 2181581 | | `["ecc", "evaluate_decoder", "toric8_pybp_comm"]` | 399.734 ms (5%) | | 7.31 MiB (1%) | 135571 | | `["ecc", "evaluate_decoder", "toric8_pybp_naivesyn"]` | 814.440 ms (5%) | | 16.90 MiB (1%) | 317594 | | `["ecc", "evaluate_decoder", "toric8_pybp_shorsyn"]` | 813.104 ms (5%) | | 19.37 MiB (1%) | 351510 | | `["ecc", "evaluate_decoder", "toric8_pymatch_comm"]` | 4.292 ms (5%) | | 1.95 MiB (1%) | 23176 | | `["ecc", "evaluate_decoder", "toric8_pymatch_naivesyn"]` | 17.084 ms (5%) | | 6.03 MiB (1%) | 92811 | | `["ecc", "evaluate_decoder", "toric8_pymatch_shorsyn"]` | 25.841 ms (5%) | | 8.50 MiB (1%) | 126727 | | `["ecc", "evaluate_decoder", "toric8_table_comm"]` | 2.629 ms (5%) | | 1.64 MiB (1%) | 23082 | | `["ecc", "evaluate_decoder", "toric8_table_naivesyn"]` | 14.736 ms (5%) | | 5.38 MiB (1%) | 92616 | | `["ecc", "evaluate_decoder", "toric8_table_shorsyn"]` | 23.424 ms (5%) | | 7.85 MiB (1%) | 126532 | | `["pauli", "mul", "100"]` | 14.194 ns (5%) | | | | | `["pauli", "mul", "1000"]` | 17.907 ns (5%) | | | | | `["pauli", "mul", "100000"]` | 714.894 ns (5%) | | | | | `["pauli", "mul", "20000000"]` | 186.729 μs (5%) | | | | | `["stabilizer", "canon", "cano500"]` | 3.087 ms (5%) | | | | | `["stabilizer", "canon", "diag_cano500"]` | 708.715 μs (5%) | | | | | `["stabilizer", "canon", "diag_gott500"]` | 4.168 ms (5%) | | 5.19 MiB (1%) | 34521 | | `["stabilizer", "canon", "diag_rref500"]` | 704.116 μs (5%) | | | | | `["stabilizer", "canon", "gott500"]` | 6.576 ms (5%) | | 5.19 MiB (1%) | 34531 | | `["stabilizer", "canon", "md_cano500"]` | 1.537 ms (5%) | | | | | `["stabilizer", "canon", "md_rref500"]` | 1.561 ms (5%) | | | | | `["stabilizer", "canon", "rref500"]` | 3.130 ms (5%) | | | | | `["stabilizer", "project", "destabilizer"]` | 18.524 μs (5%) | | 288 bytes (1%) | 5 | | `["stabilizer", "project", "stabilizer"]` | 9.077 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.278 ms (5%) | | 23.97 MiB (1%) | 34 | | `["stabilizer", "tensor", "pow5_20"]` | 2.692 μs (5%) | | 6.44 KiB (1%) | 31 | | `["stabilizer", "trace", "destabilizer"]` | 31.188 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "trace", "stabilizer"]` | 24.196 μs (5%) | | 112 bytes (1%) | 3 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ``` Julia Version 1.12.0-DEV.375 Commit 033abb41874 (2024-04-20 14:51 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1018-azure #19~22.04.2-Ubuntu SMP Thu Mar 21 16:45:46 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 2665 s 0 s 175 s 6348 s 0 s #2 0 MHz 3131 s 0 s 189 s 5844 s 0 s #3 0 MHz 1846 s 0 s 188 s 7127 s 0 s #4 0 MHz 1565 s 0 s 186 s 7419 s 0 s Memory: 15.606494903564453 GB (13364.41796875 MB free) Uptime: 923.53 sec Load Avg: 1.11 1.06 0.76 WORD_SIZE: 64 LLVM: libLLVM-16.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Baseline result # Benchmark Report for */home/runner/work/QuantumClifford.jl/QuantumClifford.jl* ## Job Properties * Time of benchmark: 20 Apr 2024 - 17:45 * Package commit: 749d37 * Julia commit: 033abb * Julia command flags: None * Environment variables: None ## Results Below is a table of this job's results, obtained by running the benchmarks. The values listed in the `ID` column have the structure `[parent_group, child_group, ..., key]`, and can be used to index into the BaseBenchmarks suite to retrieve the corresponding benchmarks. The percentages accompanying time and memory values in the below table are noise tolerances. The "true" time/memory value for a given benchmark is expected to fall within this percentage of the reported value. An empty cell means that the value was zero. | ID | time | GC time | memory | allocations | |--------------------------------------------------------------------|----------------:|----------:|----------------:|------------:| | `["circuitsim", "compactification", "compact"]` | 7.000 ms (5%) | | 187.50 KiB (1%) | 4000 | | `["circuitsim", "compactification", "no_compact"]` | 7.153 ms (5%) | | 281.25 KiB (1%) | 6000 | | `["circuitsim", "mctrajectories", "q1001_r1"]` | 15.099 ms (5%) | | 500.77 KiB (1%) | 18019 | | `["circuitsim", "mctrajectories", "q101_r1"]` | 172.743 μs (5%) | | 50.53 KiB (1%) | 1818 | | `["circuitsim", "mctrajectories_sumtype", "q1001_r1"]` | 13.423 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_sumtype", "q101_r1"]` | 118.250 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "mctrajectories_union", "q1001_r1"]` | 13.780 ms (5%) | | 496 bytes (1%) | 9 | | `["circuitsim", "mctrajectories_union", "q101_r1"]` | 117.029 μs (5%) | | 256 bytes (1%) | 8 | | `["circuitsim", "pftrajectories", "q1001_r1"]` | 59.561 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r100"]` | 171.341 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q1001_r10000"]` | 1.095 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories", "q101_r1"]` | 5.991 μs (5%) | | 9.42 KiB (1%) | 201 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r1"]` | 46.266 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r100"]` | 158.176 μs (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000"]` | 1.089 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories_sumtype", "q1001_r10000_fastrow"]` | 5.844 ms (5%) | | 93.80 KiB (1%) | 2001 | | `["circuitsim", "pftrajectories_sumtype", "q101_r1"]` | 4.578 μs (5%) | | 9.42 KiB (1%) | 201 | | `["circuitsim", "pftrajectories_union", "q1001_r1"]` | 22.612 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r100"]` | 134.101 μs (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q1001_r10000"]` | 1.053 ms (5%) | | 96 bytes (1%) | 2 | | `["circuitsim", "pftrajectories_union", "q101_r1"]` | 2.334 μs (5%) | | 96 bytes (1%) | 2 | | `["clifford", "dense", "cnot250_on_dense500_destab"]` | 11.498 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_dense500_stab"]` | 5.769 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_destab"]` | 1.122 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot250_on_diag500_stab"]` | 489.085 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "cnot_on_dense500_destab"]` | 49.422 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_dense500_stab"]` | 24.476 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_destab"]` | 26.479 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "cnot_on_diag500_stab"]` | 13.725 μs (5%) | | 368 bytes (1%) | 10 | | `["clifford", "dense", "dense500_on_dense500_destab"]` | 11.498 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_dense500_stab"]` | 5.757 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_destab"]` | 1.123 ms (5%) | | 512 bytes (1%) | 8 | | `["clifford", "dense", "dense500_on_diag500_stab"]` | 489.426 μs (5%) | | 512 bytes (1%) | 8 | | `["clifford", "symbolic", "cnot250_on_dense500_destab"]` | 1.444 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_dense500_stab"]` | 685.973 μs (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_destab"]` | 1.158 ms (5%) | | | | | `["clifford", "symbolic", "cnot250_on_diag500_stab"]` | 568.724 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_destab"]` | 4.719 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_dense500_stab"]` | 2.304 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_destab"]` | 4.659 μs (5%) | | | | | `["clifford", "symbolic", "cnot_on_diag500_stab"]` | 2.294 μs (5%) | | | | | `["ecc", "evaluate_decoder", "shor_bp_comm"]` | 1.845 ms (5%) | | 1.77 MiB (1%) | 42595 | | `["ecc", "evaluate_decoder", "shor_bp_naivesyn"]` | 4.275 ms (5%) | | 3.63 MiB (1%) | 82010 | | `["ecc", "evaluate_decoder", "shor_bp_shorsyn"]` | 5.122 ms (5%) | | 3.84 MiB (1%) | 85650 | | `["ecc", "evaluate_decoder", "shor_pybp_comm"]` | 24.589 ms (5%) | | 3.97 MiB (1%) | 116082 | | `["ecc", "evaluate_decoder", "shor_pybp_naivesyn"]` | 49.925 ms (5%) | | 7.99 MiB (1%) | 228298 | | `["ecc", "evaluate_decoder", "shor_pybp_shorsyn"]` | 49.719 ms (5%) | | 8.09 MiB (1%) | 229376 | | `["ecc", "evaluate_decoder", "shor_table_comm"]` | 255.959 μs (5%) | | 241.42 KiB (1%) | 4593 | | `["ecc", "evaluate_decoder", "shor_table_naivesyn"]` | 1.084 ms (5%) | | 358.70 KiB (1%) | 5320 | | `["ecc", "evaluate_decoder", "shor_table_shorsyn"]` | 1.481 ms (5%) | | 451.80 KiB (1%) | 6398 | | `["ecc", "evaluate_decoder", "toric8_bp_comm"]` | 678.556 ms (5%) | 10.325 ms | 169.23 MiB (1%) | 1015064 | | `["ecc", "evaluate_decoder", "toric8_bp_naivesyn"]` | 1.363 s (5%) | 20.530 ms | 349.68 MiB (1%) | 2131942 | | `["ecc", "evaluate_decoder", "toric8_bp_shorsyn"]` | 1.412 s (5%) | 21.582 ms | 356.94 MiB (1%) | 2195342 | | `["ecc", "evaluate_decoder", "toric8_pybp_comm"]` | 402.205 ms (5%) | | 7.31 MiB (1%) | 135571 | | `["ecc", "evaluate_decoder", "toric8_pybp_naivesyn"]` | 825.749 ms (5%) | | 17.08 MiB (1%) | 321478 | | `["ecc", "evaluate_decoder", "toric8_pybp_shorsyn"]` | 835.692 ms (5%) | | 19.63 MiB (1%) | 357158 | | `["ecc", "evaluate_decoder", "toric8_pymatch_comm"]` | 4.213 ms (5%) | | 1.95 MiB (1%) | 23176 | | `["ecc", "evaluate_decoder", "toric8_pymatch_naivesyn"]` | 17.105 ms (5%) | | 6.21 MiB (1%) | 96695 | | `["ecc", "evaluate_decoder", "toric8_pymatch_shorsyn"]` | 25.465 ms (5%) | | 8.76 MiB (1%) | 132375 | | `["ecc", "evaluate_decoder", "toric8_table_comm"]` | 2.633 ms (5%) | | 1.64 MiB (1%) | 23082 | | `["ecc", "evaluate_decoder", "toric8_table_naivesyn"]` | 14.741 ms (5%) | | 5.56 MiB (1%) | 96500 | | `["ecc", "evaluate_decoder", "toric8_table_shorsyn"]` | 23.181 ms (5%) | | 8.11 MiB (1%) | 132180 | | `["pauli", "mul", "100"]` | 14.687 ns (5%) | | | | | `["pauli", "mul", "1000"]` | 17.927 ns (5%) | | | | | `["pauli", "mul", "100000"]` | 730.303 ns (5%) | | | | | `["pauli", "mul", "20000000"]` | 189.153 μs (5%) | | | | | `["stabilizer", "canon", "cano500"]` | 3.086 ms (5%) | | | | | `["stabilizer", "canon", "diag_cano500"]` | 708.735 μs (5%) | | | | | `["stabilizer", "canon", "diag_gott500"]` | 4.116 ms (5%) | | 5.19 MiB (1%) | 34521 | | `["stabilizer", "canon", "diag_rref500"]` | 636.851 μs (5%) | | | | | `["stabilizer", "canon", "gott500"]` | 6.537 ms (5%) | | 5.19 MiB (1%) | 34531 | | `["stabilizer", "canon", "md_cano500"]` | 1.546 ms (5%) | | | | | `["stabilizer", "canon", "md_rref500"]` | 1.568 ms (5%) | | | | | `["stabilizer", "canon", "rref500"]` | 3.139 ms (5%) | | | | | `["stabilizer", "project", "destabilizer"]` | 18.665 μs (5%) | | 288 bytes (1%) | 5 | | `["stabilizer", "project", "stabilizer"]` | 9.377 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "tensor", "diag_pow5_20"]` | 1.227 ms (5%) | | 23.97 MiB (1%) | 34 | | `["stabilizer", "tensor", "pow5_20"]` | 2.755 μs (5%) | | 6.44 KiB (1%) | 31 | | `["stabilizer", "trace", "destabilizer"]` | 31.058 μs (5%) | | 80 bytes (1%) | 2 | | `["stabilizer", "trace", "stabilizer"]` | 24.215 μs (5%) | | 112 bytes (1%) | 3 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["circuitsim", "compactification"]` - `["circuitsim", "mctrajectories"]` - `["circuitsim", "mctrajectories_sumtype"]` - `["circuitsim", "mctrajectories_union"]` - `["circuitsim", "pftrajectories"]` - `["circuitsim", "pftrajectories_sumtype"]` - `["circuitsim", "pftrajectories_union"]` - `["clifford", "dense"]` - `["clifford", "symbolic"]` - `["ecc", "evaluate_decoder"]` - `["pauli", "mul"]` - `["stabilizer", "canon"]` - `["stabilizer", "project"]` - `["stabilizer", "tensor"]` - `["stabilizer", "trace"]` ## Julia versioninfo ``` Julia Version 1.12.0-DEV.375 Commit 033abb41874 (2024-04-20 14:51 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (x86_64-linux-gnu) Ubuntu 22.04.4 LTS uname: Linux 6.5.0-1018-azure #19~22.04.2-Ubuntu SMP Thu Mar 21 16:45:46 UTC 2024 x86_64 x86_64 CPU: AMD EPYC 7763 64-Core Processor: speed user nice sys idle irq #1 0 MHz 3569 s 0 s 220 s 9822 s 0 s #2 0 MHz 4683 s 0 s 257 s 8649 s 0 s #3 0 MHz 2465 s 0 s 234 s 10887 s 0 s #4 0 MHz 2913 s 0 s 240 s 10443 s 0 s Memory: 15.606494903564453 GB (13243.65234375 MB free) Uptime: 1366.79 sec Load Avg: 1.0 1.01 0.87 WORD_SIZE: 64 LLVM: libLLVM-16.0.6 (ORCJIT, znver3) Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores) ``` --- # Runtime information | Runtime Info | | |:--|:--| | BLAS #threads | 2 | | `BLAS.vendor()` | `lbt` | | `Sys.CPU_THREADS` | 4 | `lscpu` output: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 48 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: AuthenticAMD Model name: AMD EPYC 7763 64-Core Processor CPU family: 25 Model: 1 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 Stepping: 1 BogoMIPS: 4890.86 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext invpcid_single vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves clzero xsaveerptr rdpru arat npt nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload umip vaes vpclmulqdq rdpid fsrm Virtualization: AMD-V Hypervisor vendor: Microsoft Virtualization type: full L1d cache: 64 KiB (2 instances) L1i cache: 64 KiB (2 instances) L2 cache: 1 MiB (2 instances) L3 cache: 32 MiB (1 instance) NUMA node(s): 1 NUMA node0 CPU(s): 0-3 Vulnerability Gather data sampling: Not affected Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Retbleed: Not affected Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode Vulnerability Spec store bypass: Vulnerable Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Vulnerability Spectre v2: Mitigation; Retpolines, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected | Cpu Property | Value | |:------------------ |:---------------------------------------------------------- | | Brand | AMD EPYC 7763 64-Core Processor | | Vendor | :AMD | | Architecture | :Unknown | | Model | Family: 0xaf, Model: 0x01, Stepping: 0x01, Type: 0x00 | | Cores | 16 physical cores, 16 logical cores (on executing CPU) | | | No Hyperthreading hardware capability detected | | Clock Frequencies | Not supported by CPU | | Data Cache | Level 1:3 : (32, 512, 32768) kbytes | | | 64 byte cache line size | | Address Size | 48 bits virtual, 48 bits physical | | SIMD | 256 bit = 32 byte max. SIMD vector size | | Time Stamp Counter | TSC is accessible via `rdtsc` | | | TSC runs at constant rate (invariant from clock frequency) | | Perf. Monitoring | Performance Monitoring Counters (PMC) are not supported | | Hypervisor | Yes, Microsoft |