Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
24ee5a1
Feat/qec polish (#225)
ciaranra Jan 7, 2026
70abe2c
fix
ciaranra Jan 7, 2026
1714e8a
Merge remote-tracking branch 'origin/dev' into polish-qec
ciaranra Jan 7, 2026
b88b31e
Tailloops
ciaranra Jan 7, 2026
32dae77
Add complete Guppy-to-HUGR simulation support with all extension hand…
ciaranra Jan 8, 2026
2960c19
Auto stash before checking out "origin/feat/improved-hugr-engine"
ciaranra Jan 9, 2026
1ac9d7f
fix
ciaranra Jan 9, 2026
bfb2794
fix
ciaranra Jan 9, 2026
a93fa15
Merge branch 'dev' into feat/improved-hugr-engine
ciaranra Jan 9, 2026
dbe2902
Add generic gpu simulator
ciaranra Jan 9, 2026
3d7ab0a
comparisons
ciaranra Jan 9, 2026
219179c
general gpu checking
ciaranra Jan 9, 2026
7790aac
refactor simulators to use &[QubitId]
ciaranra Jan 10, 2026
969c778
opt
ciaranra Jan 10, 2026
0a983c7
Simplify SparseStab and others
ciaranra Jan 10, 2026
1637bf2
opt
ciaranra Jan 11, 2026
837a6f4
opt
ciaranra Jan 11, 2026
7a78f63
opt fusion
ciaranra Jan 11, 2026
1901de6
opt
ciaranra Jan 11, 2026
b30cf1d
opt
ciaranra Jan 12, 2026
6cc39bf
hybrid
ciaranra Jan 12, 2026
db9b603
opt
ciaranra Jan 12, 2026
27e7493
opt
ciaranra Jan 12, 2026
6affe08
opt
ciaranra Jan 12, 2026
eae432d
lint
ciaranra Jan 12, 2026
4d35de2
Merge remote-tracking branch 'origin/dev' into feat/generic-gpu-sim
ciaranra Jan 12, 2026
6c219b2
fix
ciaranra Jan 13, 2026
867d45f
gpu
ciaranra Jan 14, 2026
4b90c89
opt
ciaranra Jan 14, 2026
3dd6781
Merge remote-tracking branch 'origin/dev' into feat/generic-gpu-sim
ciaranra Jan 14, 2026
ad507fd
wip operators
ciaranra Jan 15, 2026
a1acf71
lint
ciaranra Jan 16, 2026
cc36237
Finish up stabilizer code verification in rs
ciaranra Jan 16, 2026
0dacce8
opt prop
ciaranra Jan 17, 2026
63b770c
opt
ciaranra Jan 17, 2026
18d3657
opt
ciaranra Jan 17, 2026
d1991ad
clean
ciaranra Jan 18, 2026
0528104
reorganization
ciaranra Jan 18, 2026
1b37dc2
more stab impl
ciaranra Jan 19, 2026
0d18b5a
mo sims
ciaranra Jan 20, 2026
ea6704e
opt
ciaranra Jan 23, 2026
11d5ded
simd
ciaranra Jan 24, 2026
e9fb392
opt
ciaranra Jan 24, 2026
5fe00d3
opt + simplify
ciaranra Jan 25, 2026
56da79a
opt
ciaranra Jan 25, 2026
efb60a3
opt
ciaranra Jan 26, 2026
8398ae6
opt
ciaranra Jan 26, 2026
ab0bf84
initial native angle trig...
ciaranra Jan 26, 2026
712d355
opt
ciaranra Jan 26, 2026
b027f71
conveniences
ciaranra Jan 26, 2026
b5f68bf
lint
ciaranra Jan 26, 2026
2f62ef0
frames
ciaranra Jan 26, 2026
2c91f31
opt
ciaranra Jan 26, 2026
449c8e3
opt
ciaranra Jan 26, 2026
d2ec4a8
opt
ciaranra Jan 27, 2026
44b38bb
bench
ciaranra Jan 27, 2026
b87eda2
Sparse is default
ciaranra Jan 27, 2026
6ea58b3
opt z rots
ciaranra Jan 27, 2026
89b263b
opt
ciaranra Jan 27, 2026
b872042
Merge remote-tracking branch 'origin/feat-angs' into more-py-to-rs
ciaranra Jan 27, 2026
e7d24d0
opt
ciaranra Jan 27, 2026
b7cd1c2
angle
ciaranra Jan 27, 2026
b7614b4
fix and lint
ciaranra Jan 27, 2026
6665ce4
polish
ciaranra Jan 28, 2026
9376c03
lint
ciaranra Jan 28, 2026
97985cf
polish Cargos
ciaranra Jan 28, 2026
575d334
decoder polish
ciaranra Jan 28, 2026
64e0789
Tweaks
ciaranra Feb 5, 2026
3e07c11
Polishing DEMs
ciaranra Feb 5, 2026
33d2860
distance 7 too
ciaranra Feb 5, 2026
1bf0581
cleanup
ciaranra Feb 5, 2026
60bd4f0
lint
ciaranra Feb 5, 2026
ab6d939
polishing wasm
ciaranra Feb 21, 2026
215fba3
Merge branch 'dev' into more-py-to-rs
ciaranra Feb 21, 2026
a6b748c
update workflows, etc.
ciaranra Feb 22, 2026
c4fadf1
fix mac cuda
ciaranra Feb 22, 2026
0c6ec37
use log/env_logger
ciaranra Feb 22, 2026
1d59555
update more builders to use env logging
ciaranra Feb 22, 2026
7b69f7d
Merge remote-tracking branch 'origin/wasm-polish' into more-py-to-rs
ciaranra Feb 22, 2026
654f576
Update workflow uv version
ciaranra Feb 22, 2026
d0ccf6c
update workflow action versions
ciaranra Feb 22, 2026
86816cd
cleanup error docs
ciaranra Feb 22, 2026
a964479
fix
ciaranra Feb 22, 2026
a67d58d
fix
ciaranra Feb 22, 2026
8d882f8
fix
ciaranra Feb 22, 2026
f5ca0b0
fix
ciaranra Feb 22, 2026
a4f2e13
fix
ciaranra Feb 23, 2026
ea2f527
fix cuquantum stub mode clippy warnings
ciaranra Feb 23, 2026
477406e
fix
ciaranra Feb 23, 2026
4fd23c2
Merge remote-tracking branch 'origin/dev' into more-py-to-rs
ciaranra Feb 23, 2026
538ebb5
update locks
ciaranra Feb 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
120 changes: 120 additions & 0 deletions .github/workflows/cuda-build-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# CUDA Build Check - Verifies CUDA-related crates compile correctly
# Note: Full runtime testing requires cuQuantum SDK which is not available in CI
# For actual GPU testing, use a self-hosted runner with CUDA and cuQuantum installed

name: CUDA Build Check

env:
RUSTFLAGS: -C debuginfo=0
RUST_BACKTRACE: 1

on:
push:
branches: [ "main", "master", "development", "dev" ]
paths:
- 'crates/pecos-cuquantum/**'
- 'crates/pecos-cuquantum-sys/**'
- 'python/pecos-rslib-cuda/**'
- '.github/workflows/cuda-build-check.yml'
pull_request:
branches: [ "main", "master", "development", "dev" ]
paths:
- 'crates/pecos-cuquantum/**'
- 'crates/pecos-cuquantum-sys/**'
- 'python/pecos-rslib-cuda/**'
- '.github/workflows/cuda-build-check.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
cuda-build-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
sudo apt-get clean
df -h

- name: Install Rust
run: |
curl https://sh.rustup.rs -sSf | sh -s -- -y
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
export PATH="$HOME/.cargo/bin:$PATH"

- name: Set up Rust
run: rustup override set stable && rustup update

- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
save-if: ${{ github.ref_name == 'main' || github.ref_name == 'master' || github.ref_name == 'development' || github.ref_name == 'dev' }}

- name: Install CUDA Toolkit
uses: Jimver/[email protected]
id: cuda-toolkit
with:
cuda: '12.6.3'
method: 'network'
sub-packages: '["nvcc", "cudart-dev"]'
non-cuda-sub-packages: '["libcublas", "libcublas-dev"]'

- name: Check pecos-cuquantum-sys compiles (stub mode)
run: |
echo "Building pecos-cuquantum-sys (will use stubs since cuQuantum SDK is not installed)..."
cargo check -p pecos-cuquantum-sys

- name: Check pecos-cuquantum compiles (stub mode)
run: |
echo "Building pecos-cuquantum (will use stubs since cuQuantum SDK is not installed)..."
cargo check -p pecos-cuquantum

- name: Check pecos-rslib-cuda compiles (stub mode)
run: |
echo "Building pecos-rslib-cuda Python bindings..."
cargo check -p pecos-rslib-cuda

- name: Run clippy on CUDA crates
run: |
echo "Running clippy on CUDA crates..."
cargo clippy -p pecos-cuquantum-sys -p pecos-cuquantum -p pecos-rslib-cuda -- -D warnings

- name: Verify stub mode detection
run: |
echo "Verifying that build correctly detects stub mode..."
# The crates should compile but is_cuquantum_available() should return false
cargo build -p pecos-cuquantum --release
# Note: We can't actually run the binary to test is_cuquantum_available()
# because it requires the cuQuantum runtime, but the build succeeding
# in stub mode means the detection is working

# Documentation for setting up GPU testing
cuda-testing-info:
runs-on: ubuntu-latest
steps:
- name: CUDA Testing Requirements
run: |
echo "=============================================="
echo "CUDA GPU Testing Requirements"
echo "=============================================="
echo ""
echo "Full runtime tests for pecos-rslib-cuda require:"
echo " 1. NVIDIA GPU with CUDA support"
echo " 2. CUDA Toolkit 12.x installed"
echo " 3. cuQuantum SDK installed"
echo ""
echo "To run GPU tests locally:"
echo " 1. Install CUDA Toolkit: https://developer.nvidia.com/cuda-downloads"
echo " 2. Install cuQuantum SDK: https://developer.nvidia.com/cuquantum-sdk"
echo " 3. Run: cargo test -p pecos-cuquantum --features cuda"
echo " 4. Build Python package: maturin develop -m python/pecos-rslib-cuda/Cargo.toml"
echo ""
echo "For self-hosted CI runners with GPU support:"
echo " - Use runners labeled with 'cuda' or 'gpu'"
echo " - Ensure cuQuantum SDK is pre-installed"
echo " - Run: cargo test -p pecos-cuquantum"
echo "=============================================="
4 changes: 2 additions & 2 deletions .github/workflows/go-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ jobs:
go-version: ["stable"] # Latest stable (experimental bindings)

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/go-version-consistency.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
check-go-versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Check Go package consistency
run: |
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/julia-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ jobs:
architecture: x86_64

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ inputs.sha || github.sha }}

Expand All @@ -107,7 +107,7 @@ jobs:
if: runner.os != 'Windows'
run: |
echo "Installing LLVM using pecos..."
cargo run -p pecos --features cli --release -- llvm install
cargo run -p pecos --features cli --release -- install llvm

echo "Setting LLVM environment variables..."
export PECOS_LLVM=$(cargo run -p pecos --features cli --release -- llvm find 2>/dev/null)
Expand All @@ -124,7 +124,7 @@ jobs:
shell: pwsh
run: |
Write-Host "Installing LLVM using pecos..."
cargo run -p pecos --features cli --release -- llvm install
cargo run -p pecos --features cli --release -- install llvm

Write-Host "Setting LLVM environment variables..."
$env:PECOS_LLVM = (cargo run -p pecos --features cli --release -- llvm find 2>$null)
Expand Down Expand Up @@ -259,7 +259,7 @@ jobs:
os: macos-latest
architecture: aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ inputs.sha || github.sha }}

Expand Down Expand Up @@ -337,7 +337,7 @@ jobs:
needs.test_binaries.result == 'success'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ inputs.sha || github.sha }}

Expand Down Expand Up @@ -465,7 +465,7 @@ jobs:
needs.test_binaries.result == 'success'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ inputs.sha || github.sha }}

Expand Down Expand Up @@ -627,7 +627,7 @@ jobs:

- name: Create GitHub Release and Upload Binaries
if: startsWith(github.ref, 'refs/tags/jl-')
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
files: release-bundle/binaries/*.tar.gz
body: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/julia-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
julia-version: ["1"] # Latest stable (experimental bindings)

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Julia ${{ matrix.julia-version }}
uses: julia-actions/setup-julia@v2
Expand All @@ -58,7 +58,7 @@ jobs:
# if: runner.os != 'Windows'
# run: |
# echo "Installing LLVM using pecos..."
# cargo run -p pecos --features cli --release -- llvm install
# cargo run -p pecos --features cli --release -- install llvm
#
# echo "Setting LLVM environment variables..."
# export PECOS_LLVM=$(cargo run -p pecos --features cli --release -- llvm find 2>/dev/null)
Expand All @@ -75,7 +75,7 @@ jobs:
# shell: pwsh
# run: |
# Write-Host "Installing LLVM using pecos..."
# cargo run -p pecos --features cli --release -- llvm install
# cargo run -p pecos --features cli --release -- install llvm
#
# Write-Host "Setting LLVM environment variables..."
# $env:PECOS_LLVM = (cargo run -p pecos --features cli --release -- llvm find 2>$null)
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/julia-update-hash.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
pull-requests: write

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -48,7 +48,7 @@ jobs:
grep -n "GitSource" julia/PECOS.jl/deps/build_tarballs.jl

- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "Update Julia build hash for ${{ github.ref_name }}"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/julia-version-consistency.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
check-julia-versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Check Julia version consistency
run: |
Expand Down
Loading
Loading