From 31d5f917f0e421a63e808f85b492df07953b18bf Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Fri, 30 Aug 2024 22:36:08 +0800 Subject: [PATCH 1/3] fix #8054 Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- monai/networks/layers/filtering.py | 4 +++- monai/transforms/utils.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/monai/networks/layers/filtering.py b/monai/networks/layers/filtering.py index 0ff1187dcc..473e916519 100644 --- a/monai/networks/layers/filtering.py +++ b/monai/networks/layers/filtering.py @@ -51,6 +51,7 @@ def forward(ctx, input, spatial_sigma=5, color_sigma=0.5, fast_approx=True): ctx.cs = color_sigma ctx.fa = fast_approx output_data = _C.bilateral_filter(input, spatial_sigma, color_sigma, fast_approx) + torch.cuda.synchronize() return output_data @staticmethod @@ -140,6 +141,7 @@ def forward(ctx, input_img, sigma_x, sigma_y, sigma_z, color_sigma): do_dsig_z, ) + torch.cuda.synchronize() return output_tensor @staticmethod @@ -301,7 +303,7 @@ def forward(ctx, input_img, guidance_img, sigma_x, sigma_y, sigma_z, color_sigma do_dsig_z, guidance_img, ) - + torch.cuda.synchronize() return output_tensor @staticmethod diff --git a/monai/transforms/utils.py b/monai/transforms/utils.py index 7027c07d67..e1c09fc3f6 100644 --- a/monai/transforms/utils.py +++ b/monai/transforms/utils.py @@ -2512,6 +2512,7 @@ def distance_transform_edt( block_params=block_params, float64_distances=float64_distances, ) + torch.cuda.synchronize() else: if not has_ndimage: raise RuntimeError("scipy.ndimage required if cupy is not available") From 8db28c9f09c7b2de0c6bdae014e129fd4a6c78d3 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Fri, 30 Aug 2024 22:39:30 +0800 Subject: [PATCH 2/3] fix Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- monai/transforms/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monai/transforms/utils.py b/monai/transforms/utils.py index e1c09fc3f6..1d1f070568 100644 --- a/monai/transforms/utils.py +++ b/monai/transforms/utils.py @@ -2546,7 +2546,7 @@ def distance_transform_edt( r_vals = [] if return_distances and distances_original is None: - r_vals.append(distances) + r_vals.append(distances_ if use_cp else distances) if return_indices and indices_original is None: r_vals.append(indices) if not r_vals: From 872457d76988c3909c478ab84d6f07e85bd147a2 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Fri, 30 Aug 2024 23:07:27 +0800 Subject: [PATCH 3/3] add cuda check Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- monai/networks/layers/filtering.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/monai/networks/layers/filtering.py b/monai/networks/layers/filtering.py index 473e916519..c48c77cf98 100644 --- a/monai/networks/layers/filtering.py +++ b/monai/networks/layers/filtering.py @@ -51,7 +51,8 @@ def forward(ctx, input, spatial_sigma=5, color_sigma=0.5, fast_approx=True): ctx.cs = color_sigma ctx.fa = fast_approx output_data = _C.bilateral_filter(input, spatial_sigma, color_sigma, fast_approx) - torch.cuda.synchronize() + if torch.cuda.is_available(): + torch.cuda.synchronize() return output_data @staticmethod @@ -140,8 +141,8 @@ def forward(ctx, input_img, sigma_x, sigma_y, sigma_z, color_sigma): do_dsig_y, do_dsig_z, ) - - torch.cuda.synchronize() + if torch.cuda.is_available(): + torch.cuda.synchronize() return output_tensor @staticmethod @@ -303,7 +304,8 @@ def forward(ctx, input_img, guidance_img, sigma_x, sigma_y, sigma_z, color_sigma do_dsig_z, guidance_img, ) - torch.cuda.synchronize() + if torch.cuda.is_available(): + torch.cuda.synchronize() return output_tensor @staticmethod