code: def nms_normal_bev(boxes, scores, thresh):
      """Normal NMS function GPU implementation (for BEV boxes). The overlap of
      two boxes for IoU calculation is defined as the exact overlapping area of
      the two boxes WITH their yaw angle set to 0.
  
      Args:
          boxes (torch.Tensor): Input boxes with shape (N, 5).
          scores (torch.Tensor): Scores of predicted boxes with shape (N).
          thresh (float): Overlap threshold of NMS.
  
      Returns:
          torch.Tensor: Remaining indices with scores in descending order.
      """
      assert boxes.shape[1] == 5, "Input boxes shape should be [N, 5]"
      order = scores.sort(0, descending=True)[1]
  
      boxes = boxes[order].contiguous()
  
      keep = torch.zeros(boxes.size(0), dtype=torch.long)
      num_out = ext_module.iou3d_nms_normal_forward(boxes, keep, thresh)
      return order[keep[:num_out].cuda(boxes.device)].contiguous()
  
imports: import torch
  from ..utils import ext_loader
label_desc: Use image node_id 3 for calling a global function with example usage: nms_normal_bev(boxes, scores, thresh) and returns: order