32#ifdef BUILD_CUDA_MODULE
35#include <cuda_runtime.h>
39#define FMT_STRING_ALIAS 0
49#ifdef BUILD_CUDA_MODULE
51#define OPEN3D_ML_CUDA_DRIVER_CHECK(err) \
52 __OPEN3D_ML_CUDA_DRIVER_CHECK(err, __FILE__, __LINE__)
54inline 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) {
71inline cudaStream_t GetDefaultStream() { (cudaStream_t)0; }
73inline 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));
100class 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_;
#define LogError(...)
Definition: Logging.h:67
ImGuiContext * context
Definition: Window.cpp:95
Definition: PinholeCameraIntrinsic.cpp:35