v2.0 - OpenCL Performance Improvements
·
136 commits
to master
since this release
What’s New in Qrack v2.0
- Greatly improved all-around OpenCL performance (See https://qrack.readthedocs.io/en/two_point_zero/performance.html)
- "Full OpenCL coverage” - QEngineOCL no longer inherits from QEngineCPU at all, and QEngineOCL state vector manipulations are virtually entirely done with OpenCL kernels and the OpenCL API.
- Operator exponentiation methods have been added to the public API, (“Exp,” “ExpX,” “ExpY,” etc..) as well as a single bit gate method with a 2x2 complex matrix specified arbitrarily by the user
- Experimental multi-processor engine, QEngineOCLMulti
- Better explicit qubit separation in QUnit (less RAM, often greater speed, depending on use case)
- Tested and debugged for single and multi-processor compatibility with the Intel HD. Issues diagnosed and fixed for the HD include OpenCL compilation for single-accuracy-float-only devices, as well as logical compatibility of kernel calls with an arbitrary number of processing elements on a device, as opposed to an exact power of 2 processing elements.
- General minor bug fixes, (including small memory leaks, bad OpenCL group sizes, and others)