Skip to content
This repository has been archived by the owner on Dec 17, 2019. It is now read-only.

Q-Acceleration #18

Open
hhorii opened this issue Dec 11, 2019 · 7 comments
Open

Q-Acceleration #18

hhorii opened this issue Dec 11, 2019 · 7 comments
Assignees
Labels
from Coach This is an idea from a coach group ready The group is ready to start working

Comments

@hhorii
Copy link

hhorii commented Dec 11, 2019

Abstract

Currently only statevector is supported in gpu branch. This proposal adds support unitary and density matrix simulator as master branch does for statevector.

Description

UnitaryMatrix and DensityMatrix extends QubitVector in master branch.
On the other hand, QubitVectorThrust behaves as QubitVector with thrust library that use GPUs if they exist. As UnitaryMatrix and DensityMatrix, UnitaryMatrixThrust and DensityMatrixThrust can be implemented by extending QubitVector.

Required skills:

  • C++
  • Python (Optional)

References

First step

  1. Follow the Installation Guide to setup development environment.
  2. Run the following commands
mkdir build/
cd build/
cmake -D AER_THRUST_BACKEND=OMP ..
make
ls Release/
  1. Run standalone simulator
  • create test.json, and
{
    "qobj_id": "u1",
    "schema_version": "1.0.0",
    "type": "QASM",
    "config": {
        "method": "statevector_gpu",
        "seed": 1
    },
    "experiments": [
        {
            "config": {
                "shots": 1,
                "memory_slots": 16,
                "n_qubits":16 
            },
            "header": {
                "name": "u1",
                "qreg_sizes": [["qr", 16]],
                "qubit_labels": [
                     ["qr", 0],["qr", 1],["qr", 2],["qr", 3],["qr", 4],["qr", 5],["qr", 6],["qr", 7],["qr", 8],["qr", 9],
                     ["qr", 10],["qr", 11],["qr", 12],["qr", 13],["qr", 14],["qr", 15]
                ]
            },
            "instructions": [
                {"name": "u1", "params": [0.5], "qubits": [0]},
                {"name": "u1", "params": [0.5], "qubits": [1]},
                {"name": "u1", "params": [0.5], "qubits": [2]},
                {"name": "u1", "params": [0.5], "qubits": [3]},
                {"name": "u1", "params": [0.5], "qubits": [4]},
                {"name": "u1", "params": [0.5], "qubits": [5]},
                {"name": "u1", "params": [0.5], "qubits": [6]},
                {"name": "u1", "params": [0.5], "qubits": [7]},
                {"name": "u1", "params": [0.5], "qubits": [8]},
                {"name": "u1", "params": [0.5], "qubits": [9]},
                {"name": "u1", "params": [0.5], "qubits": [10]},
                {"name": "u1", "params": [0.5], "qubits": [11]},
                {"name": "u1", "params": [0.5], "qubits": [12]},
                {"name": "u1", "params": [0.5], "qubits": [13]},
                {"name": "u1", "params": [0.5], "qubits": [14]},
                {"name": "u1", "params": [0.5], "qubits": [15]}
            ]
        }
    ]
}
  • Run the simulator, and confirm statevector_fake_gpu method is used.
$ Release/qasm_simulator test.json | grep statevector
            "method": "statevector_fake_gpu",

Members

Deliverable

GitHub repo

https://github.com/bytesalad/qiskit-aer/tree/gpu

@1ucian0 1ucian0 added from Coach This is an idea from a coach group ready The group is ready to start working labels Dec 11, 2019
@1ucian0
Copy link

1ucian0 commented Dec 12, 2019

biruk abere ambaw
luel hagos beyene
Haftom Tekleweyni
Matthew Brown

coach: Hiroshi

@bytesalad
Copy link

@qcamp

@luelhagos
Copy link

@qcamp

1 similar comment
@Haftom2323
Copy link

@qcamp

@Biruk-Abere
Copy link

@qcamp

@bytesalad
Copy link

Group Name: Q-Acceleration

@hhorii hhorii changed the title [qiskit-aer] Extends thrust (gpu) statvector backend Q-Acceleration Dec 13, 2019
@hhorii
Copy link
Author

hhorii commented Dec 13, 2019

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
from Coach This is an idea from a coach group ready The group is ready to start working
Projects
None yet
Development

No branches or pull requests

6 participants