anirudh2290 commented on a change in pull request #14830: [WIP] Use env var to 
enforce safe accumulation in ReduceAxesCompute
URL: https://github.com/apache/incubator-mxnet/pull/14830#discussion_r281770605
 
 

 ##########
 File path: src/operator/tensor/broadcast_reduce_op.h
 ##########
 @@ -1183,12 +1183,23 @@ void LpNormCompute(const nnvm::NodeAttrs& attrs,
   } else {
     small = ReduceAxesShapeImpl(inputs[0].shape_, param.axis, true, false);
   }
+
   if (param.ord == 1) {
-    ReduceAxesComputeImpl<xpu, mshadow_op::sum, true, false, mshadow_op::abs>(
+    if (dmlc::GetEnv("MXNET_ENFORCE_SAFE_ACCUMULATION", false)) {
+      ReduceAxesComputeImpl<xpu, mshadow_op::sum, true, false, 
mshadow_op::abs>(
+        ctx, inputs, req, outputs, small);
+    } else {
+      ReduceAxesComputeImpl<xpu, mshadow_op::sum, false, false, 
mshadow_op::abs>(
         ctx, inputs, req, outputs, small);
+    }
   } else if (param.ord == 2) {
-    ReduceAxesComputeImpl<xpu, mshadow_op::nrm2, true, false, 
mshadow_op::identity>(
+    if (dmlc::GetEnv("MXNET_ENFORCE_SAFE_ACCUMULATION", false)) {
 
 Review comment:
   had a discussion with @eric-haibin-lin and @haojin2 . From the discussion, 
seems like users may not have use cases to configure individual ops with 
safe_acc. More often encountered use cases are global flag with all or none. 
Also, it should be possible to add this flag later without breaking backward 
compatibility if we find that customers need such use case. So I am okay with 
the current approach for using env variable with default to 0, since it doesnt 
break backward compatibility.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to