Skip to content

Commit 0d98c48

Browse files
Add QPager and QHybrid
1 parent 65c9b59 commit 0d98c48

File tree

8 files changed

+37
-5
lines changed

8 files changed

+37
-5
lines changed

docs/api/oclengine.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
:orphan:
22

3-
.. Copyright (c) 2018
3+
.. Copyright (c) 2017-2020
44
55
OCLEngine
66
========================

docs/api/qenginecpu.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
:orphan:
22

3-
.. Copyright (c) 2018
3+
.. Copyright (c) 2017-2020
44
55
QEngineCPU
66
========================

docs/api/qengineocl.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
:orphan:
22

3-
.. Copyright (c) 2018
3+
.. Copyright (c) 2017-2020
44
55
QEngineOCL
66
========================

docs/api/qhybrid.rst

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
:orphan:
2+
3+
.. Copyright (c) 2017-2020
4+
5+
QHybrid
6+
========================
7+
8+
Defined in `qhybrid.hpp <https://github.com/vm6502q/qrack/blob/master/include/qhybrid.hpp>`_.
9+
10+
Qrack::QHybrid switches between QEngineCPU and QEngineOCL as optimal. It may combined with Qrack::QUnit. It supports the standard Qrack::QInterface API.
11+
12+
The parameter "qubitThreshold" is the number of qubits at which QHybrid will automatically switch to GPU operation. A value of "0" will automatically pick this threshold based on best estimates of efficiency.
13+
14+
.. doxygenfunction:: Qrack::QHybrid::QHybrid(bitLenInt qBitCount, bitCapInt initState = 0, qrack_rand_gen_ptr rgp = nullptr, complex phaseFac = CMPLX_DEFAULT_ARG, bool doNorm = true, bool randomGlobalPhase = true, bool useHostMem = false, int deviceId = -1, bool useHardwareRNG = true, bool useSparseStateVec = false, real1 norm_thresh = REAL1_DEFAULT_ARG, std::vector<int> ignored = {}, bitLenInt qubitThreshold = 0)
15+
16+
.. doxygenfunction:: Qrack::QHybrid::SwitchModes

docs/api/qinterface.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
:orphan:
22

3-
.. Copyright (c) 2018
3+
.. Copyright (c) 2017-2020
44
55
QInterface
66
========================

docs/api/qpager.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
:orphan:
2+
3+
.. Copyright (c) 2017-2020
4+
5+
QPager
6+
========================
7+
8+
Defined in `qpager.hpp <https://github.com/vm6502q/qrack/blob/master/include/qpager.hpp>`_.
9+
10+
Qrack::QPager "pages" RAM between several QEngineCPU or QEngineOCL instances, by splitting the simulation into equal segments. QEngineOCL device IDs can by individually specified per page with the "devList" parameter. This allows for a different model of multi-device parallelism.
11+
12+
The parameter "qubitThreshold" is the number of qubits in each "page." A value of "0" will automatically size pages based on best estimates of efficiency.
13+
14+
.. doxygenfunction:: Qrack::QPager::QPager(QInterfaceEngine eng, bitLenInt qBitCount, bitCapInt initState = 0, qrack_rand_gen_ptr rgp = nullptr, complex phaseFac = CMPLX_DEFAULT_ARG, bool ignored = false, bool ignored2 = false, bool useHostMem = false, int deviceId = -1, bool useHardwareRNG = true, bool useSparseStateVec = false, real1 ignored3 = REAL1_DEFAULT_ARG, std::vector<int> devList = {}, bitLenInt qubitThreshold = 0);

docs/api/qunit.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
:orphan:
22

3-
.. Copyright (c) 2018
3+
.. Copyright (c) 2017-2020
44
55
QUnit
66
========================

docs/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ Daniel Strano would like to specifically note that Benn Bollay is almost entirel
5858
api/oclengine
5959
api/qenginecpu
6060
api/qengineocl
61+
api/qhybrid
62+
api/qpager
6163
api/qunit
6264
api/6502
6365

0 commit comments

Comments
 (0)