From 4af71fac8c9727d609679e2e80152f378f6e7ac0 Mon Sep 17 00:00:00 2001 From: SigureMo Date: Fri, 10 Jan 2025 11:19:16 +0800 Subject: [PATCH] [CINN] Use `trunc` instead of `fesetround` to avoid affect other calculation precision in same process --- paddle/cinn/ir/ir_printer.cc | 4 ++-- test/cpp/pir/cinn/replace_cross_block_reduction_test.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/paddle/cinn/ir/ir_printer.cc b/paddle/cinn/ir/ir_printer.cc index 93f7c3b9861b16..d82514cade9c59 100644 --- a/paddle/cinn/ir/ir_printer.cc +++ b/paddle/cinn/ir/ir_printer.cc @@ -14,7 +14,7 @@ #include "paddle/cinn/ir/ir_printer.h" #include -#include +#include #include #include #include @@ -175,7 +175,7 @@ void IrPrinter::Visit(const FloatImm *x) { } } else { float v = TruncateInfinity(x->value); - if (IsCloseEqualBoundValue(v)) std::fesetround(FE_TOWARDZERO); + if (IsCloseEqualBoundValue(v)) v = std::trunc(v); ss << std::setprecision(std::numeric_limits::max_digits10); ss << std::showpoint; ss << v; diff --git a/test/cpp/pir/cinn/replace_cross_block_reduction_test.cc b/test/cpp/pir/cinn/replace_cross_block_reduction_test.cc index 48b01f47a53d89..5d0d9d7c8b65b1 100644 --- a/test/cpp/pir/cinn/replace_cross_block_reduction_test.cc +++ b/test/cpp/pir/cinn/replace_cross_block_reduction_test.cc @@ -155,7 +155,7 @@ TEST(CrossBlockReductionReplacer, RSLayout) { ScheduleBlock(B__reduce_init) { i0, i1 = axis.bind(i, j) - B__reduce_init[i0, i1] = -3.40282346e+38f + B__reduce_init[i0, i1] = -3.40282347e+38f } thread_bind[blockIdx.y] for (reduce_k, 0, 8) {