#include #include #if defined(BACKEND_CUDA) #include #elif defined(BACKEND_HIP) #include #else #error "BACKEND_CUDA or BACKEND_HIP must be defined" #endif at::Tensor guard_loop(at::Tensor tensor, int64_t loops) { const auto device = static_cast(tensor.device().index()); for (int64_t i = 0; i < loops; ++i) { #if defined(BACKEND_CUDA) c10::cuda::CUDAGuard guard(device); #else c10::hip::HIPGuard guard(device); #endif } return tensor; } TORCH_LIBRARY(fastpt_c_overhead_mre, m) { m.def("guard_loop(Tensor tensor, int loops) -> Tensor", guard_loop); }