32 #ifdef BUILD_CUDA_MODULE 35 #include <cuda_runtime.h> 39 #define FMT_STRING_ALIAS 0 44 #endif // #ifdef BUILD_CUDA_MODULE 49 #ifdef BUILD_CUDA_MODULE 51 #define OPEN3D_ML_CUDA_DRIVER_CHECK(err) \ 52 __OPEN3D_ML_CUDA_DRIVER_CHECK(err, __FILE__, __LINE__) 54 inline void __OPEN3D_ML_CUDA_DRIVER_CHECK(CUresult err,
58 if (err != CUDA_SUCCESS) {
59 const char *error_string;
60 CUresult err_get_string = cuGetErrorString(err, &error_string);
62 if (err_get_string == CUDA_SUCCESS) {
71 inline cudaStream_t GetDefaultStream() { (cudaStream_t)0; }
73 inline int GetDevice(cudaStream_t stream) {
74 if (stream == GetDefaultStream()) {
80 CUcontext current_context;
81 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxGetCurrent(¤t_context));
85 OPEN3D_ML_CUDA_DRIVER_CHECK(cuStreamGetCtx(stream, &context));
86 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxSetCurrent(context));
91 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxGetDevice(&device));
94 OPEN3D_ML_CUDA_DRIVER_CHECK(cuCtxSetCurrent(current_context));
100 class CUDAScopedDeviceStream {
102 explicit CUDAScopedDeviceStream(cudaStream_t stream)
103 : scoped_device_(GetDevice(stream)), scoped_stream_(stream) {}
105 CUDAScopedDeviceStream(CUDAScopedDeviceStream
const &) =
delete;
106 void operator=(CUDAScopedDeviceStream
const &) =
delete;
109 core::CUDAScopedDevice scoped_device_;
110 core::CUDAScopedStream scoped_stream_;
ImGuiContext * context
Definition: Window.cpp:95
Definition: PinholeCameraIntrinsic.cpp:35
#define LogError(...)
Definition: Logging.h:72