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

Merged
merged 20 commits into from
Nov 20, 2024

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

@schweitzpgi
Copy link
Collaborator Author

pinging for a review.

Copy link
Collaborator

@sacpis sacpis left a comment

Choose a reason for hiding this comment

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

LGTM with minor comments. Thanks @schweitzpgi.

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 <[email protected]>
of booleans to std::vector<bool> so it needs to be undone.

Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
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 <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
header files in use.

Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
at library/binding build time.

Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
Kernels need to be able to receive recursively dynamic composable
types. This includes compositions of surface types of vectors
and structs.

Extend the test.

Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
Signed-off-by: Eric Schweitz <[email protected]>
@schweitzpgi schweitzpgi merged commit 00daab3 into NVIDIA:main Nov 20, 2024
213 checks passed
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.

2 participants