Skip to content

Commit 83fee7c

Browse files
Unireversedongchengwei
andauthored
[Feature](mlu-ops): Replace __bang_reduce_sum with __bang_sum. (Cambricon#1287)
Co-authored-by: dongchengwei <dongchengwei@cambricon.com>
1 parent 2aa007d commit 83fee7c

2 files changed

Lines changed: 6 additions & 14 deletions

File tree

kernels/carafe/carafe_block.mlu

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -377,11 +377,8 @@ __mlu_global__ void MLUKernelCarafeBackward(T *input, T *mask, T *grad_output,
377377
NFU_ALIGN_SIZE / sizeof(T),
378378
num_align / (NFU_ALIGN_SIZE / sizeof(T)), 1,
379379
num_align / (NFU_ALIGN_SIZE / sizeof(T)), 1, 1, 1);
380-
381-
__bang_reduce_sum((T *)nram_buf, (T *)nram_buf,
382-
NFU_ALIGN_SIZE / sizeof(T));
383380
((T *)nram_buf + 4 * NRAM_BLOCK / sizeof(T))[mask_index] +=
384-
((T *)nram_buf)[0];
381+
__bang_sum((T *)nram_buf, NFU_ALIGN_SIZE / sizeof(T));
385382
}
386383
}
387384
}
@@ -421,11 +418,8 @@ __mlu_global__ void MLUKernelCarafeBackward(T *input, T *mask, T *grad_output,
421418
(T *)nram_buf, (T *)nram_buf, NFU_ALIGN_SIZE / sizeof(T),
422419
rem_for_loop_align / (NFU_ALIGN_SIZE / sizeof(T)), 1,
423420
rem_for_loop_align / (NFU_ALIGN_SIZE / sizeof(T)), 1, 1, 1);
424-
__bang_reduce_sum((T *)nram_buf, (T *)nram_buf,
425-
NFU_ALIGN_SIZE / sizeof(T));
426-
427421
((T *)nram_buf + 4 * NRAM_BLOCK / sizeof(T))[mask_index] +=
428-
((T *)nram_buf)[0];
422+
__bang_sum((T *)nram_buf, NFU_ALIGN_SIZE / sizeof(T));
429423
}
430424
}
431425
}

kernels/deform_roi_pool/deform_roi_pool_union1.mlu

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -639,13 +639,12 @@ __mlu_func__ void MLUMultiKernelDeformRoiPoolBackward(
639639
(int32_t)(c_slice_align % nram_sum_tmp_channel > 0);
640640
__bang_sumpool(nram_sum_tmp, nram_tmp1, nram_sum_tmp_channel, 1,
641641
kernel_width, 1, kernel_width, kernel_width, 1);
642-
__bang_reduce_sum(nram_sum_tmp, nram_sum_tmp,
643-
nram_sum_tmp_channel);
642+
T tmp_sum = __bang_sum(nram_sum_tmp, nram_sum_tmp_channel);
644643
__bang_atomic_reduce_add(
645644
(T *)(grad_offset +
646645
out_batch * pooled_width * pooled_height * 2 +
647646
out_height * pooled_width + out_width),
648-
(T *)nram_sum_tmp, 1);
647+
tmp_sum, 1);
649648
__bang_write_value((T *)nram_sum_tmp, nram_sum_tmp_channel, (T)0);
650649
__bang_mul_scalar(nram_tmp1, nram_ping_input + 3 * c_slice_align,
651650
x - x_low, c_slice_align);
@@ -663,14 +662,13 @@ __mlu_func__ void MLUMultiKernelDeformRoiPoolBackward(
663662
__bang_mul(nram_tmp1, nram_grad_output, nram_tmp1, c_slice_align);
664663
__bang_sumpool(nram_sum_tmp, nram_tmp1, nram_sum_tmp_channel, 1,
665664
kernel_width, 1, kernel_width, kernel_width, 1);
666-
__bang_reduce_sum(nram_sum_tmp, nram_sum_tmp,
667-
NFU_ALIGN_SIZE / sizeof(T));
665+
tmp_sum = __bang_sum(nram_sum_tmp, NFU_ALIGN_SIZE / sizeof(T));
668666
__bang_atomic_reduce_add(
669667
(T *)(grad_offset +
670668
out_batch * pooled_width * pooled_height * 2 +
671669
pooled_width * pooled_height +
672670
out_height * pooled_width + out_width),
673-
(T *)nram_sum_tmp, 1);
671+
tmp_sum, 1);
674672

675673
T *nram_tmp = nram_ping_input;
676674
nram_ping_input = nram_pong_input;

0 commit comments

Comments
 (0)