Merged
Conversation
Define sim.Simulator interface (Run, Evolve, StateVector, Close) and wire it into backend/local via WithSimulator option so GPU backends are drop-in replacements for the CPU statevector simulator. - sim/sim.go: new Simulator interface - statevector.Sim, densitymatrix.Sim: add Close() no-op - backend/local: SimFactory type, WithSimulator option, factory-based Submit - sim/gpu/cuda: cuStateVec backend (separate module, build-tag gated) - CGo wrappers for applyMatrix, sampler, Pauli expectations - Stub file compiles cleanly without CUDA installed - Tests ported from statevector + CPU-vs-GPU cross-validation - Crossover benchmarks (12-28 qubits) - sim/gpu/metal: Apple Metal skeleton (Phase 2) - Stub device.go, 1Q/2Q compute shaders, test skeleton - Makefile: test-gpu-cuda, bench-gpu-cuda targets
Implements the full Metal compute shader backend for statevector simulation on macOS. Uses float32 precision via Apple's unified memory (MTLResourceStorageModeShared) with embedded MSL shaders for 1Q and 2Q gate application. Gates with 3+ qubits are automatically decomposed into 1Q/2Q primitives. Achieves up to ~12x speedup over CPU at 20-22 qubits on M2 Max.
…d shaders Implement host-side CPU fallback for the CUDA reset gate instead of returning an unsupported error. Add missing IsDynamic() check in CUDA run() for parity with the Metal backend. Remove standalone .metal shader files that used double2 types inconsistent with the float2 shaders actually embedded in metal_bridge.m.
This file contains hidden or 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
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.
No description provided.