introduce CudaGuard and cudastreamguard #14876
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
Introduce CudaGuard and CudaStreamGuard
This diff introduces
CudaGuardandCudaStreamGuardin the Executorch CUDA runtime. These classes provide a convenient way to manage CUDA device and stream selection.Changes
CudaGuardandCudaStreamGuardclasses infbcode/executorch/backends/cuda/runtime/guard.h.CudaGuardandCudaStreamGuardinfbcode/executorch/backends/cuda/runtime/guard.cpp.CudaStreamGuardinfbcode/executorch/backends/cuda/runtime/tests/test_cuda_stream_guard.cpp.TARGETSfile to include the new files.Purpose
The
CudaGuardclass provides a way to select a CUDA device and ensure that it is properly released when the guard goes out of scope. TheCudaStreamGuardclass provides a way to select a CUDA stream and ensure that it is properly synchronized when the guard goes out of scope.Usage
They will be further used and controled by their shim layer functions.
Differential Revision: D84126481