Lunderberg opened a new pull request, #17113:
URL: https://github.com/apache/tvm/pull/17113

   Prior to this commit, an exception thrown during the capture of a cuda graph 
would result in `std::terminate` being called.  This commit updates the 
implementation of `"vm.builtin.cuda_graph.run_or_capture"` such that a thrown 
exception can be recovered from, and does not cause any changes to the state of 
TVM's cuda graph cache.
   
   - Call to `cudaStreamDestroy` was previously skipped, now moved to a 
RAII-style destructor in a `ScopedCUDAStream` class.
   
   - Call to `cudaStreamEndCapture` was previously skipped, end of cuda graph 
capture now performed as part of RAII-style destructor for `CUDACaptureStream` 
class.
   
   - Restoration of `CUDAThreadEntry::ThreadLocal()->stream` was previously 
skipped, now restored as part of RAII-style destructor for `CUDACaptureStream` 
class.
   
   - Previously, an error raised from `cudaGraphInstantiate` would leave the 
`capture_cache_` in an ill-formed state.  Now, the `capture_cache_` is only 
updated after a valid `CUDAGraphCapturedState` has been fully constructed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to