From ddd6e50808f5b07934e7807c929724dfe1d7483c Mon Sep 17 00:00:00 2001 From: gsoleil Date: Fri, 9 May 2025 10:32:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8C=E6=9C=BAMapTR=E6=80=A7=E8=83=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E6=94=AF=E6=8C=814=E5=8D=A1+4?= =?UTF-8?q?=E5=8D=A1=E5=8F=8C=E6=9C=BA=E8=AE=AD=E7=BB=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model_examples/MapTR/MapTR.patch | 42 +++++++++----------------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/model_examples/MapTR/MapTR.patch b/model_examples/MapTR/MapTR.patch index e3fb3da7..21b96540 100644 --- a/model_examples/MapTR/MapTR.patch +++ b/model_examples/MapTR/MapTR.patch @@ -1223,7 +1223,7 @@ index 96f244b..d6b1b6a 100644 use_color=False, load_augmented=None, diff --git a/projects/mmdet3d_plugin/maptr/dense_heads/maptr_head.py b/projects/mmdet3d_plugin/maptr/dense_heads/maptr_head.py -index 44fd988..d75efd7 100644 +index 44fd988..90ac049 100644 --- a/projects/mmdet3d_plugin/maptr/dense_heads/maptr_head.py +++ b/projects/mmdet3d_plugin/maptr/dense_heads/maptr_head.py @@ -2,6 +2,8 @@ import copy @@ -1250,9 +1250,9 @@ index 44fd988..d75efd7 100644 + def _init_hccl_groups(self): + world_size = int(os.environ['WORLD_SIZE']) + local_rank = int(os.environ['RANK']) -+ nproc_per_node = int(os.environ.get('NPROC_PER_NODE',torch.npu.device_count())) -+ node_num = world_size // nproc_per_node -+ node_rank = local_rank // nproc_per_node ++ nproc_per_node = int(os.environ['LOCAL_WORLD_SIZE']) ++ node_num = int(os.environ['GROUP_WORLD_SIZE']) ++ node_rank = int(os.environ['GROUP_RANK']) + self.groups = [] + for node_idx in range(node_num): + group_i = list(range(node_idx * nproc_per_node, (node_idx + 1) * nproc_per_node)) @@ -1274,43 +1274,25 @@ index 44fd988..d75efd7 100644 # @auto_fp16(apply_to=('mlvl_feats')) @force_fp32(apply_to=('mlvl_feats', 'prev_bev')) def forward(self, mlvl_feats, lidar_feat, img_metas, prev_bev=None, only_bev=False): -@@ -516,6 +543,8 @@ class MapTRHead(DETRHead): - cls_scores_list = [cls_scores[i] for i in range(num_imgs)] - bbox_preds_list = [bbox_preds[i] for i in range(num_imgs)] - pts_preds_list = [pts_preds[i] for i in range(num_imgs)] -+ world_size = int(os.environ['WORLD_SIZE']) -+ nproc_per_node = int(os.environ.get('NPROC_PER_NODE',torch.npu.device_count())) - # import pdb;pdb.set_trace() - cls_reg_targets = self.get_targets(cls_scores_list, bbox_preds_list,pts_preds_list, - gt_bboxes_list, gt_labels_list,gt_shifts_pts_list, -@@ -537,8 +566,12 @@ class MapTRHead(DETRHead): +@@ -537,7 +564,7 @@ class MapTRHead(DETRHead): cls_avg_factor = num_total_pos * 1.0 + \ num_total_neg * self.bg_cls_weight if self.sync_cls_avg_factor: - cls_avg_factor = reduce_mean( -- cls_scores.new_tensor([cls_avg_factor])) -+ if world_size % nproc_per_node == 0: -+ cls_avg_factor = self.reduce_mean_within_group( -+ cls_scores.new_tensor([cls_avg_factor])) -+ else: -+ cls_avg_factor = reduce_mean( -+ cls_scores.new_tensor([cls_avg_factor])) ++ cls_avg_factor = self.reduce_mean_within_group( + cls_scores.new_tensor([cls_avg_factor])) cls_avg_factor = max(cls_avg_factor, 1) - loss_cls = self.loss_cls( -@@ -547,7 +580,10 @@ class MapTRHead(DETRHead): +@@ -547,7 +574,7 @@ class MapTRHead(DETRHead): # Compute the average number of gt boxes accross all gpus, for # normalization purposes num_total_pos = loss_cls.new_tensor([num_total_pos]) - num_total_pos = torch.clamp(reduce_mean(num_total_pos), min=1).item() -+ if world_size % nproc_per_node == 0: -+ num_total_pos = torch.clamp(self.reduce_mean_within_group(num_total_pos), min=1).item() -+ else: -+ num_total_pos = torch.clamp(reduce_mean(num_total_pos), min=1).item() ++ num_total_pos = torch.clamp(self.reduce_mean_within_group(num_total_pos), min=1).item() # import pdb;pdb.set_trace() # regression L1 loss -@@ -612,6 +648,8 @@ class MapTRHead(DETRHead): +@@ -612,6 +639,8 @@ class MapTRHead(DETRHead): @force_fp32(apply_to=('preds_dicts')) def loss(self, gt_bboxes_list, @@ -1319,7 +1301,7 @@ index 44fd988..d75efd7 100644 gt_labels_list, preds_dicts, gt_bboxes_ignore=None, -@@ -646,8 +684,6 @@ class MapTRHead(DETRHead): +@@ -646,8 +675,6 @@ class MapTRHead(DETRHead): assert gt_bboxes_ignore is None, \ f'{self.__class__.__name__} only supports ' \ f'for gt_bboxes_ignore setting to None.' @@ -1328,7 +1310,7 @@ index 44fd988..d75efd7 100644 all_cls_scores = preds_dicts['all_cls_scores'] all_bbox_preds = preds_dicts['all_bbox_preds'] all_pts_preds = preds_dicts['all_pts_preds'] -@@ -656,43 +692,12 @@ class MapTRHead(DETRHead): +@@ -656,43 +683,12 @@ class MapTRHead(DETRHead): enc_pts_preds = preds_dicts['enc_pts_preds'] num_dec_layers = len(all_cls_scores) -- Gitee