microsoft / qsharp

Azure Quantum Development Kit, including the Q# programming language, resource estimator, and Quantum Katas
https://microsoft.github.io/qsharp/
MIT License
427 stars 86 forks source link

Partial evaluation support for binary operations #1499

Closed cesarzc closed 4 months ago

cesarzc commented 4 months ago

This change implements support for binary operations and binary assign operations in partial evaluation.

github-actions[bot] commented 4 months ago

Benchmark for 48373ca

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | Array append evaluation | **345.5±3.15µs** | 359.9±4.39µs | **+4.17%** | | Array literal evaluation | 202.9±6.77µs | **198.2±0.52µs** | **-2.32%** | | Array update evaluation | **428.6±2.68µs** | 441.5±1.64µs | **+3.01%** | | Core + Standard library compilation | **16.7±0.08ms** | 16.9±0.52ms | **+1.20%** | | Deutsch-Jozsa evaluation | 5.1±0.04ms | **5.0±0.07ms** | **-1.96%** | | Large file parity evaluation | 33.7±0.10ms | 33.7±0.31ms | 0.00% | | Large input file compilation | **11.2±0.08ms** | 11.5±0.43ms | **+2.68%** | | Large input file compilation (interpreter) | 44.1±2.06ms | 44.8±2.07ms | +1.59% | | Large nested iteration | **33.7±0.14ms** | 35.4±0.76ms | **+5.04%** | | Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1551.2±35.37µs | 1543.8±26.76µs | -0.48% | | Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.7±0.07ms | 7.7±0.07ms | 0.00% | | Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1416.6±37.75µs | 1423.7±53.54µs | +0.50% | | Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 27.5±0.95ms | 27.3±0.73ms | -0.73% | | Teleport evaluation | 88.7±4.37µs | 87.8±3.46µs | -1.01% |
github-actions[bot] commented 4 months ago

Benchmark for 1a0cf28

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | Array append evaluation | **348.2±5.45µs** | 392.1±11.53µs | **+12.61%** | | Array literal evaluation | 199.4±2.64µs | 199.8±5.81µs | +0.20% | | Array update evaluation | **430.4±4.29µs** | 552.9±4.72µs | **+28.46%** | | Core + Standard library compilation | 20.1±0.77ms | **16.8±0.14ms** | **-16.42%** | | Deutsch-Jozsa evaluation | **5.1±0.04ms** | 5.3±0.17ms | **+3.92%** | | Large file parity evaluation | 33.8±0.52ms | 34.0±1.13ms | +0.59% | | Large input file compilation | 12.9±0.68ms | **11.8±0.80ms** | **-8.53%** | | Large input file compilation (interpreter) | 48.1±1.68ms | 46.7±2.35ms | -2.91% | | Large nested iteration | **34.0±0.10ms** | 38.1±0.73ms | **+12.06%** | | Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1564.8±78.11µs | 1545.4±35.98µs | -1.24% | | Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.9±0.23ms | **7.7±0.07ms** | **-2.53%** | | Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1463.1±141.89µs | 1425.7±57.85µs | -2.56% | | Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 28.3±0.74ms | **27.2±0.59ms** | **-3.89%** | | Teleport evaluation | **87.8±3.93µs** | 91.7±3.39µs | **+4.44%** |
github-actions[bot] commented 4 months ago

Benchmark for e4870f9

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | Array append evaluation | 342.0±4.33µs | 341.4±4.47µs | -0.18% | | Array literal evaluation | 187.0±7.23µs | **181.1±1.23µs** | **-3.16%** | | Array update evaluation | 423.6±2.34µs | **421.4±1.95µs** | **-0.52%** | | Core + Standard library compilation | 17.6±0.63ms | 17.6±1.08ms | 0.00% | | Deutsch-Jozsa evaluation | 5.1±0.04ms | 5.1±0.20ms | 0.00% | | Large file parity evaluation | 34.0±0.11ms | **33.7±0.13ms** | **-0.88%** | | Large input file compilation | **11.8±0.28ms** | 13.0±0.51ms | **+10.17%** | | Large input file compilation (interpreter) | 46.6±1.40ms | 47.9±1.58ms | +2.79% | | Large nested iteration | 33.3±0.24ms | 33.4±0.26ms | +0.30% | | Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1562.5±91.54µs | 1559.3±81.74µs | -0.20% | | Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.8±0.43ms | 7.8±0.10ms | 0.00% | | Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1449.3±119.94µs | 1425.4±74.74µs | -1.65% | | Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 27.8±0.50ms | **27.4±0.28ms** | **-1.44%** | | Teleport evaluation | 89.6±3.80µs | 87.1±3.69µs | -2.79% |
github-actions[bot] commented 4 months ago

Benchmark for 5ee6840

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | Array append evaluation | **341.2±3.24µs** | 344.8±2.64µs | **+1.06%** | | Array literal evaluation | **182.7±1.48µs** | 198.7±1.24µs | **+8.76%** | | Array update evaluation | **424.8±2.65µs** | 427.7±8.03µs | **+0.68%** | | Core + Standard library compilation | 17.7±1.46ms | 18.9±1.38ms | +6.78% | | Deutsch-Jozsa evaluation | 5.1±0.05ms | 5.1±0.10ms | 0.00% | | Large file parity evaluation | 33.8±0.63ms | 33.9±1.27ms | +0.30% | | Large input file compilation | **12.5±0.81ms** | 12.8±0.25ms | **+2.40%** | | Large input file compilation (interpreter) | **46.7±2.51ms** | 48.2±1.21ms | **+3.21%** | | Large nested iteration | **33.3±0.19ms** | 33.6±1.07ms | **+0.90%** | | Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1585.8±148.63µs | 1561.5±111.14µs | -1.53% | | Perform Runtime Capabilities Analysis (RCA) on large file sample | 8.1±0.54ms | **7.6±0.06ms** | **-6.17%** | | Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1421.9±43.15µs | 1449.9±125.22µs | +1.97% | | Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 28.4±0.80ms | 28.1±1.30ms | -1.06% | | Teleport evaluation | 88.9±3.59µs | 87.2±3.44µs | -1.91% |
github-actions[bot] commented 4 months ago

Benchmark for 9bcbc11

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | Array append evaluation | 344.2±2.97µs | **340.9±1.38µs** | **-0.96%** | | Array literal evaluation | 205.1±4.08µs | **180.6±2.45µs** | **-11.95%** | | Array update evaluation | 428.3±4.00µs | **421.7±1.52µs** | **-1.54%** | | Core + Standard library compilation | 17.4±0.43ms | **16.8±0.21ms** | **-3.45%** | | Deutsch-Jozsa evaluation | 5.1±0.05ms | 5.1±0.15ms | 0.00% | | Large file parity evaluation | **33.6±0.12ms** | 33.8±0.48ms | **+0.60%** | | Large input file compilation | 11.8±0.43ms | **11.2±0.21ms** | **-5.08%** | | Large input file compilation (interpreter) | 43.4±1.21ms | 43.2±1.15ms | -0.46% | | Large nested iteration | 34.1±2.10ms | 33.4±1.50ms | -2.05% | | Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1548.6±48.02µs | 1541.1±41.83µs | -0.48% | | Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.6±0.08ms | 7.6±0.10ms | 0.00% | | Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1411.2±41.14µs | 1413.7±30.51µs | +0.18% | | Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 27.0±0.20ms | 27.2±0.28ms | +0.74% | | Teleport evaluation | 88.2±3.39µs | 87.3±3.77µs | -1.02% |
github-actions[bot] commented 4 months ago

Benchmark for ca3692b

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | Array append evaluation | 353.9±1.78µs | **343.0±3.03µs** | **-3.08%** | | Array literal evaluation | 198.6±1.12µs | 198.5±1.51µs | -0.05% | | Array update evaluation | 436.7±3.55µs | **424.2±1.95µs** | **-2.86%** | | Core + Standard library compilation | 17.5±0.87ms | 17.8±1.01ms | +1.71% | | Deutsch-Jozsa evaluation | 5.1±0.06ms | 5.1±0.06ms | 0.00% | | Large file parity evaluation | 34.2±0.28ms | 34.0±0.33ms | -0.58% | | Large input file compilation | 12.4±0.82ms | 12.0±0.59ms | -3.23% | | Large input file compilation (interpreter) | **47.8±3.06ms** | 51.3±5.21ms | **+7.32%** | | Large nested iteration | 34.5±0.19ms | **33.7±0.41ms** | **-2.32%** | | Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1549.5±45.12µs | 1552.7±55.74µs | +0.21% | | Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.8±0.15ms | 7.7±0.17ms | -1.28% | | Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1422.6±61.28µs | 1429.8±84.74µs | +0.51% | | Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | **27.3±0.31ms** | 27.8±1.21ms | **+1.83%** | | Teleport evaluation | 90.4±3.46µs | 89.5±3.62µs | -1.00% |