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

Add support for CUDA streams. #133

Open
corbett5 opened this issue May 25, 2021 · 8 comments
Open

Add support for CUDA streams. #133

corbett5 opened this issue May 25, 2021 · 8 comments

Comments

@corbett5
Copy link
Member

I have a project where we compute a time step on the GPU and then asynchronously copy some data back to the host for later use. This copy overlaps with the subsequent time step which saves a ton of time. Now I need to compress the data that we save, which I plan to do on device before copying it back to the CPU. It would be nice if this compression could also be asynchronous so I could overlap it with other computation.

@lindstro
Copy link
Member

I think in principle what you're asking for would be possible via CUDA streams (I must confess to not knowing much about it), but I'm unsure how we would expose such functionality through the zfp API. Currently the only entry point we provide is through zfp_compress(), which does a fair amount of setup work on the CPU and handles any data motion between CPU and GPU. The actual CUDA compression kernel is launched some six levels deep.

Let me discuss this with our CUDA experts to see what can be done.

@lindstro
Copy link
Member

I ran across this paper that seems to have tackled this problem. Not sure if their code is available.

@data-panda
Copy link

data-panda commented Aug 3, 2022

@lindstro was this something that got a place in this release (1.0.0; release notes does not mention so)? If not, is this in works for the release later this year?

@lindstro
Copy link
Member

lindstro commented Aug 3, 2022

@data-panda No, this release does not include the latest CUDA and HIP work we have been doing. That will end up in the next release. Regarding CUDA streams specifically, that is not yet something our team has looked at yet. We've had discussions with others who have looked at this (see this paper, for instance) and would welcome a contribution.

@S-o-T
Copy link

S-o-T commented Feb 16, 2024

@lindstro could you please share current plans regarding CUDA support in zfp? Specifically, i am interested in:

  • user control over CUDA stream to be used for encode/decode kernel enqueuing
  • fixed precision/accuracy and lossless compression modes

@lindstro
Copy link
Member

We've yet to do any work on CUDA streams and lossless compression on the GPU. It is unlikely that either would make it into the next release. The next release will, however, have CUDA and HIP support for fixed-precision and -accuracy modes.

@S-o-T
Copy link

S-o-T commented Feb 16, 2024

Thanks! Can you share an ETA for next release?

@lindstro
Copy link
Member

I've been horrible at predicting release dates in the past and am reluctant to give false hope. That said, we're on the hook to do a release no later than end of September. I expect and hope it will happen well before then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants