You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3a85f47
Browse filesBrowse the repository at this point in the historyBrowse files
When the new QUEST_ENABLE_BMI2 option is ON, the (new) bitwise functions getValueOfPossiblySortedBits() and (a new overload of) insertBitsWithMaskedValues() will use the BMI2 PEXT and PDEP instructions. This accelerates the CPU amplitude indexing logic, likely visible when simulation small Quregs, where memory costs do not dominate. The GPU backend does not make use of these instructions.
This PR was the winning submission to UnitaryHACK 2026, challenge #717.
This PR also made changes to QUEST_OUTPUT_LIB_NAME when QUEST_APPEND_CONFIG_TO_LIB_NAME is ON:
- "+mt" was renamed to "+omp"
- "+bmi2", "+adios2", and "+subcomm" were added (missed in previous commits)
PoJen added the intrinsics, performed all benchmarking, and prototyped the extensive cpu_subroutines.cpp changes.
Tyson refactored, and updated the build, macros and CI.
---------
Co-authored-by: Tyson Jones <tyson.jones.input@gmail.com>
Copy file name to clipboardExpand all lines: docs/cmake.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,7 @@ make
44
44
|`QUEST_ENABLE_CUDA`| (`OFF`), `ON`| Determines whether QuEST will be built with support for NVIDIA GPU acceleration. If turned on, `CMAKE_CUDA_ARCHITECTURES` should probably also be set. |
45
45
|`QUEST_ENABLE_CUQUANTUM`| (`OFF`), `ON`| Determines whether QuEST will make use of the NVIDIA CuQuantum library. Cannot be turned on if `QUEST_ENABLE_CUDA` is off. |
46
46
|`QUEST_ENABLE_HIP`| (`OFF`), `ON`| Determines whether QuEST will be built with support for AMD GPU acceleration. If turned on, `CMAKE_HIP_ARCHITECTURES` should probably also be set. |
47
+
|`QUEST_ENABLE_BMI2`| (`OFF`), `ON`| Determines whether QuEST will be built with BMI2 intrinsics to accelerate CPU simulation of few-qubit Quregs. This is not compatible with all compilers and CPUs. **Beware** that if enabled, and the compiled QuEST executable is later run upon a different machine which lacks the BMI2 instructions, execution will crash. |
47
48
|`QUEST_ENABLE_ADIOS2`| (`OFF`), `ON`| Determines whether QuEST will be built with ADIOS2 to enable checkpointing, via functions `saveQuregToFile()` and `createQuregFromFile()`. |
48
49
|`QUEST_DOWNLOAD_ADIOS2`| (`ON`), `OFF`| Determines whether to download ADIOS2 from Github, when ADIOS2 is enabled but not found. |
49
50
|`QUEST_ENABLE_DEPRECATED_API`| (`OFF`), `ON`| Determines whether QuEST will be built with support for the deprecated (v3) API. ***Note**: this will generate compiler warnings and is not supported by MSVC.*|
0 commit comments