I am trying to create a graph with a WHILE conditional node where one step in the WHILE loop is
cudaStreamBeginCaptureToGraph(captureStream, bodyGraph, nullptr, nullptr, 0, cudaStreamCaptureModeGlobal);
cublasSetPointerMode(blasHandle, CUBLAS_POINTER_MODE_DEVICE);
cublasSetStream(blasHandle, blasStream);
cublasSnrm2(blasHandle, n, d_v, 1, d_norm);
doWhileLoopKernel<<<1, 1, 0, captureStream>>>(dPtr, handle);
cudaStreamEndCapture(captureStream, nullptr);
If I comment the call to cublasSnrm2(...)
, the WHILE loop behaves as expected.
When using the BLAS routine, compute-sanitizer
mentioned that “operation not permitted when stream is capturing”.
Is cublasSnrm2
allowed inside a graph with a WHILE conditional node?