13 #ifdef BUILD_CUDA_MODULE
16 #include <cuda_runtime.h>
26 #ifdef BUILD_CUDA_MODULE
28 #define OPEN3D_ML_CUDA_DRIVER_CHECK(err) \
29 __OPEN3D_ML_CUDA_DRIVER_CHECK(err, __FILE__, __LINE__)
31 inline void __OPEN3D_ML_CUDA_DRIVER_CHECK(CUresult err,
35 if (err != CUDA_SUCCESS) {
36 const char *error_string;
37 CUresult err_get_string = cuGetErrorString(err, &error_string);
39 if (err_get_string == CUDA_SUCCESS) {
48 inline cudaStream_t GetDefaultStream() {
return (cudaStream_t)0; }
50 inline int GetDevice(cudaStream_t stream) {
51 if (stream == GetDefaultStream()) {
57 CUcontext current_context;
58 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxGetCurrent(¤t_context));
62 OPEN3D_ML_CUDA_DRIVER_CHECK(cuStreamGetCtx(stream, &
context));
63 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxSetCurrent(
context));
68 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxGetDevice(&device));
71 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxSetCurrent(current_context));
77 class CUDAScopedDeviceStream {
79 explicit CUDAScopedDeviceStream(cudaStream_t stream)
80 : scoped_device_(GetDevice(stream)), scoped_stream_(stream) {}
82 CUDAScopedDeviceStream(CUDAScopedDeviceStream
const &) =
delete;
83 void operator=(CUDAScopedDeviceStream
const &) =
delete;
86 core::CUDAScopedDevice scoped_device_;
87 core::CUDAScopedStream scoped_stream_;
#define LogError(...)
Definition: Logging.h:51
ImGuiContext * context
Definition: Window.cpp:76
Definition: PinholeCameraIntrinsic.cpp:16