我们使用-default-stream=per-thread
进行编译,以获得CUDA的每线程流。但当我们执行cv::cuda::Stream::Null()
时,我们会得到一个指向"遗留默认流"的流指针(请参阅此处的详细信息(。
如何获得指向cuda流句柄CU_STREAM_PER_THREAD
的cv::cuda::Stream
更一般地说,我们如何获得指向现有cudaStream_t
句柄的cv::cuda::Stream
?
这里有一个cv::cuda::Stream
的朋友叫cv::cuda::StreamAccessor
。此结构有一个静态成员函数:
static Stream wrapStream (cudaStream_t stream)
其可以如下使用:
#include <opencv2/core/cuda_stream_accessor.hpp>
#include <cuda.h>
...
auto cvThreadDefaultStream =
cv::cuda::StreamAccessor::wrapStream(CU_STREAM_PER_THREAD);
以获得表示默认线程流的CCD_ 9 CCD_。