Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid accessing GPUs when using CPU only #2012

Merged
merged 3 commits into from
Dec 8, 2023

Conversation

doichanj
Copy link
Collaborator

@doichanj doichanj commented Nov 30, 2023

Summary

This is fix for issue #1686

Details and comments

Aer queried available methods and devices by testing with simple circuit whether it successfully runs or not everytime when AerSimulator is initialized. So in the initialization phase, Aer accesses GPUs even if users only need to run on CPU.
In this PR, devices are queried to C++ binary if it is built for GPU or not.
And methods are listed in Python side.

Aer accessed all the available GPUs at the initialization phase. In this PR, only GPUs set in target_gpus options are accessed when using device="GPU" option.

@doichanj doichanj requested a review from hhorii November 30, 2023 08:54
@doichanj doichanj added stable-backport-potential The issue or PR might be minimal and/or import enough to backport to stable Changelog: Bugfix Include in the Fixed section of the changelog labels Nov 30, 2023
Copy link
Collaborator

@hhorii hhorii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Getting available devices in C++ controller looks reasonable.

@hhorii hhorii merged commit 096e1e3 into Qiskit:main Dec 8, 2023
@doichanj doichanj mentioned this pull request Jan 16, 2024
doichanj added a commit to doichanj/qiskit-aer that referenced this pull request Jan 16, 2024
* avoid accessing GPUs when using CPU only

* remove unused import/parameter
doichanj added a commit that referenced this pull request Jan 17, 2024
* PR to release 0.13.2

* Remove usage of ``qiskit.extensions`` (#2023)

The module has been pending deprecation since Qiskit 0.45.
It is deprecated for 0.46 and removed in 1.0.

This removal concerns the import location of ``UnitaryGate`` and the
usage of the ``ExtensionError``. The first is easily fixed, whereas for
the latter I tried using ``ValueError`` or ``TypeError``, which seemed
to cover the error meanings. Technically, this is a breaking change and
we could introduce an intermediary class that inherits from the deprecated
``ExtensionError`` and the new choice of error. However, since we will
soon be changing to 1.0 and we also skipped this in Qiskit Terra (as we
thought it highly unlikely that users are actually relying on this error
type) it might be fine to just change the error type.

* Fix GPU batched execution (#2014)

* Fix GPU batched execution

* format

* Use Apple-specific API to determine system memory on macOS (#2016)

The unistd.h API that had been used for both Linux and macOS is not
always available in macOS environments, for example when building with
upstream clang rather than AppleClang.

Closes #1923

* Remove qiskit.test from test/common.py (#1971)

* remove qiskit.test from test/common.py

* fix format, add releasenote

---------

Co-authored-by: Hiroshi Horii <[email protected]>

* raise Qiskit dependency to 0.45.0 (#2008)

Co-authored-by: Hiroshi Horii <[email protected]>

* `deprecate_func(..., since=...)`  should be a string, not a float (#2006)

* deprecate_func "since" parameter should be a str, not a float

* black

* Avoid accessing GPUs when using CPU only (#2012)

* avoid accessing GPUs when using CPU only

* remove unused import/parameter

* Reduce warning meesages (#2013)

* reduce warning meesages

* format

* fix Windows

* uint -> uint_t

* fix Thrust seg fault

* format

* Add support for running with Python 3.12 (#2022)

* Add support for running with Python 3.12

Python 3.12.0 was released on 10-02-2023, this commit marks the start
of support for Python 3.12 in qiskit-aer. It adds the supported Python
version in the package metadata and updates the CI configuration to run
test jobs on Python 3.12 and build Python 3.12 wheels on release.

* Remove numpy constraints

* Uncap six

* Fix i686 build steps

* Use python 3.12.0 in tests to work around unittest breakage in 3.12.1

* Use 3.12.0 for all test jobs

---------

Co-authored-by: Jun Doi <[email protected]>

* enable bit operations for boolean types (#2024)

Co-authored-by: Jun Doi <[email protected]>

---------

Co-authored-by: Julien Gacon <[email protected]>
Co-authored-by: Will Shanks <[email protected]>
Co-authored-by: Hiroshi Horii <[email protected]>
Co-authored-by: Luciano Bello <[email protected]>
Co-authored-by: Matthew Treinish <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: Bugfix Include in the Fixed section of the changelog stable-backport-potential The issue or PR might be minimal and/or import enough to backport to stable
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants