-
-
Notifications
You must be signed in to change notification settings - Fork 42
Description
This specifically will not be in the January 1st release, but (conventional compression algorithm) state vector compression could probably add at least a qubit or two to maximally entangled capacity on any given system, if at significant speed cost. QUnit is already a Schmidt decomposed representation of state, which reduces RAM needs, but QEngine type sub-unit state vectors typically must have far less Shannon entropy per float than type capacity, by simple considerations, compressed with even just a ZIP algorithm, for example.
I'm sure much has been said and done on this front by other parties already, but part of this issue is researching those approaches. For Qrack, a compressed QEngine type would still synergize with QUnit's capabilities. We might subclass QEngineCPU, with a corresponding new subclass of StateVector, or perhaps we could get away with just the StateVector subclass and a configuration option for QEngineCPU. Since we've introduced "hybrid" types, both QEngineCPU and QEngineOCL efficiency effectively contribute together to overall simulator performance, but GPU compressed state vectors are a little daunting, for the moment, and might not pay.