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

[pauli word] Rework the implementation from front to back. #2338

Open
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

schweitzpgi
Copy link
Collaborator

This changes the pauli_word implementation to be compatible with std::string, use the core character literal support, which changes the code generation and provides a potential way to perform optimizations on quake.exp_pauli ops.

This PR also does a complete rewrite of the GKE code. The rewrite fuses the C++ host entry point argument processing with the .argsCreator support function. It removes several special cases that are no longer germane as the surface of supported C++ argument types has expanded quite a bit. It is fully backwards compatible with the old argument packing pointer-free format. The .argsCreator function remains highly coupled with the Python implementation and launcher. C++ should use the streamlined launcher as it has greater flexibility.

Fixes tests and updates them to use the hybrid launcher where appropriate. Add new tests.

Description

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
@schweitzpgi schweitzpgi marked this pull request as draft October 31, 2024 15:15
This changes the pauli_word implementation to be compatible
with std::string, use the core character literal support, which
changes the code generation and provides a potential way to
perform optimizations on quake.exp_pauli ops.

This PR also does a complete rewrite of the GKE code. The
rewrite fuses the C++ host entry point argument processing
with the .argsCreator support function. It removes several
special cases that are no longer germane as the surface of
supported C++ argument types has expanded quite a bit. It
is fully backwards compatible with the old argument packing
pointer-free format.  The .argsCreator function remains
highly coupled with the Python implementation and launcher.
C++ should use the streamlined launcher as it has greater
flexibility.

Fixes tests and updates them to use the hybrid launcher where
appropriate. Add new tests.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
of booleans to std::vector<bool> so it needs to be undone.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
the thunk unpacking code are fixed.

Move functions to static functions.

Add handling of std::vector<bool>. std::vector<bool> is a class that
is distinct from all other std::vector<T> and it needs to be handled
with special code on the host side. (On the device side, it is forced
to look like any other span.)

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
@schweitzpgi schweitzpgi marked this pull request as ready for review November 6, 2024 22:04
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
@schweitzpgi schweitzpgi added this to the release 0.9.0 milestone Nov 7, 2024
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant