From 024f1dd72bf1a03babf66392d225d1d8d7d7fd2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Dupr=C3=A9?= Date: Thu, 7 Sep 2023 20:48:25 +0200 Subject: [PATCH] Fix float 8 rounding on CPU (#16940) ### Description Fix float 8 rounding issues discovered in issue #16938 (only CPU provider). --- include/onnxruntime/core/framework/float8.h | 133 +++++++++--------- onnxruntime/test/framework/float_8_test.cc | 96 +++++++++++++ .../test/python/onnxruntime_test_float8.py | 30 +++- .../testdata/float8/te.cast_fp8_1_fp32.onnx | Bin 0 -> 25013 bytes .../float8/te.cast_fp8_1_fp32_input.npy | Bin 0 -> 65664 bytes 5 files changed, 187 insertions(+), 72 deletions(-) create mode 100644 onnxruntime/test/framework/float_8_test.cc create mode 100644 onnxruntime/test/testdata/float8/te.cast_fp8_1_fp32.onnx create mode 100644 onnxruntime/test/testdata/float8/te.cast_fp8_1_fp32_input.npy diff --git a/include/onnxruntime/core/framework/float8.h b/include/onnxruntime/core/framework/float8.h index 0a318dac17..0fd04f28d4 100644 --- a/include/onnxruntime/core/framework/float8.h +++ b/include/onnxruntime/core/framework/float8.h @@ -44,35 +44,36 @@ struct Float8E4M3FN { std::memcpy(&b, &v, sizeof(b)); val = static_cast((b & 0x80000000) >> 24); // sign - if ((b & 0x7fc00000) == 0x7fc00000) { - val |= 0x7f; - } else if ((b & 0x7fffffff) == 0x7f800000) { + if ((b & 0x7fffffff) == 0x7f800000) { // infinity if (saturate) { val |= 126; } else { val |= 0x7f; } + } else if ((b & 0x7F800000) == 0x7F800000) { // NaN + val |= 0x7f; } else { uint8_t e = static_cast((b & 0x7F800000) >> 23); // exponent uint32_t m = static_cast(b & 0x007FFFFF); // mantissa if (e != 0) { - if (e < 117) { // 0b1110101 - } else if (e < 118) { // 0b1110110 - val |= 1; - if ((m >> 23) & 1) { + if (e < 117) { + } else if (e < 121) { + // denormalized number + auto d = 120 - e; + if (d < 3) { + val |= 1 << (2 - d); + val |= m >> (21 + d); + } else if (m > 0) { + val |= 1; + } + auto mask = 1 << (20 + d); + if ((m & mask) && ((val & 1) || ((m & (mask - 1)) > 0) || ((m & mask) && (m & (mask << 1)) && ((m & (mask - 1)) == 0)))) { // rounding val += 1; } - } else if (e < 121) { // 127 - 7 + 1 // 0b1111001 - auto d = 120 - e; // 0b1111000 - val |= 1 << (2 - d); - val |= m >> (21 + d); - if ((m >> (20 + d)) & 1) { - // rounding - val += 1; - } - } else if (e < 136) { // 127 + 8 + 1 // 0b10001000 - auto ex = e - 120; // 127 - 7 + } else if (e < 136) { + // normalized number + auto ex = e - 120; if (ex == 0) { val |= 0x4; val |= m >> 21; @@ -83,7 +84,7 @@ struct Float8E4M3FN { val &= 0xFE; } } - if ((m & 0x80000) && ((m & 0x100000) || (m & 0x7C000))) { + if ((m & 0x80000) && ((m & 0x100000) || (m & 0x7FFFF))) { if ((val & 0x7F) < 0x7E) { // rounding val += 1; @@ -205,36 +206,37 @@ struct Float8E4M3FNUZ { std::memcpy(&b, &v, sizeof(b)); val = static_cast((b & 0x80000000) >> 24); // sign - if ((b & 0x7fc00000) == 0x7fc00000) { - val = 0x80; - } else if ((b & 0x7fffffff) == 0x7f800000) { + if ((b & 0x7fffffff) == 0x7f800000) { // infinity if (saturate) { val |= 0x7F; } else { // infinity val = 0x80; } + } else if ((b & 0x7F800000) == 0x7F800000) { // NaN + val = 0x80; } else { uint8_t e = static_cast((b & 0x7F800000) >> 23); // exponent uint32_t m = static_cast(b & 0x007FFFFF); // mantissa if (e != 0) { if (e < 116) { - } else if (e < 117) { - val |= 1; - if ((m >> 23) & 1) { - // rounding - val += 1; - } - } else if (e < 120) { // 127 - 8 + 1 + } else if (e < 120) { + // denormalized number auto d = 119 - e; - val |= 1 << (2 - d); - val |= m >> (21 + d); - if ((m >> (20 + d)) & 1) { + if (d < 3) { + val |= 1 << (2 - d); + val |= m >> (21 + d); + } else if (m > 0) { + val |= 1; + } + auto mask = 1 << (20 + d); + if ((m & mask) && ((val & 1) || ((m & (mask - 1)) > 0) || ((m & mask) && (m & (mask << 1)) && ((m & (mask - 1)) == 0)))) { // rounding val += 1; } - } else if (e < 135) { // 127 + 8 - auto ex = e - 119; // 127 - 7 + } else if (e < 135) { + // normalized number + auto ex = e - 119; if (ex == 0) { val |= 0x4; val |= m >> 21; @@ -242,7 +244,7 @@ struct Float8E4M3FNUZ { val |= ex << 3; val |= m >> 20; } - if (m & 0x80000) { + if ((m & 0x80000) && ((m & 0x100000) || (m & 0x7FFFF))) { if ((val & 0x7F) < 0x7F) { // rounding val += 1; @@ -357,32 +359,32 @@ struct Float8E5M2 { uint32_t b; std::memcpy(&b, &v, sizeof(b)); - val = (b & 0x80000000) >> 24; // sign - if ((b & 0x7fc00000) == 0x7fc00000) { - val |= 0x7f; - } else if ((b & 0x7FFFFFFF) == 0x7F800000) { // inf + val = (b & 0x80000000) >> 24; // sign + if ((b & 0x7FFFFFFF) == 0x7F800000) { // inf if (saturate) { val |= 0x7B; } else { val |= 0x7C; } + } else if ((b & 0x7F800000) == 0x7F800000) { // NaN + val |= 0x7f; } else { uint32_t e = (b & 0x7F800000) >> 23; // exponent uint32_t m = b & 0x007FFFFF; // mantissa if (e != 0) { if (e < 110) { - } else if (e < 111) { - val |= 1; - if ((m >> 23) & 1) { - // rounding - val += 1; - } - } else if (e < 113) { // 127 - 15 + 1 + } else if (e < 113) { + // denormalized number auto d = 112 - e; - val |= 1 << (1 - d); - val |= m >> (22 + d); - if ((m >> (21 + d)) & 1) { + if (d < 2) { + val |= 1 << (1 - d); + val |= m >> (22 + d); + } else if (m > 0) { + val |= 1; + } + auto mask = 1 << (21 + d); + if ((m & mask) && ((val & 1) || ((m & (mask - 1)) > 0) || ((m & mask) && (m & (mask << 1)) && ((m & (mask - 1)) == 0)))) { // rounding val += 1; } @@ -513,40 +515,41 @@ struct Float8E5M2FNUZ { uint32_t b; std::memcpy(&b, &v, sizeof(b)); - val = (b & 0x80000000) >> 24; // sign - if ((b & 0x7fc00000) == 0x7fc00000) { - val = 0x80; - } else if ((b & 0x7FFFFFFF) == 0x7F800000) { // inf + val = (b & 0x80000000) >> 24; // sign + if ((b & 0x7FFFFFFF) == 0x7F800000) { // inf if (saturate) { val |= 0x7F; } else { val = 0x80; } + } else if ((b & 0x7F800000) == 0x7F800000) { // NaN + val = 0x80; } else { uint32_t e = (b & 0x7F800000) >> 23; // exponent uint32_t m = b & 0x007FFFFF; // mantissa if (e != 0) { if (e < 109) { - } else if (e < 110) { - val |= 1; - if ((m >> 23) & 1) { - // rounding - val += 1; - } - } else if (e < 112) { // 127 - 16 + 1 + } else if (e < 112) { + // denormalized number auto d = 111 - e; - val |= 1 << (1 - d); - val |= m >> (22 + d); - if ((m >> (21 + d)) & 1) { + if (d < 2) { + val |= 1 << (1 - d); + val |= m >> (22 + d); + } else if (m > 0) { + val |= 1; + } + auto mask = 1 << (21 + d); + if ((m & mask) && ((val & 1) || ((m & (mask - 1)) > 0) || ((m & mask) && (m & (mask << 1)) && ((m & (mask - 1)) == 0)))) { // rounding val += 1; } - } else if (e < 143) { // 127 + 15 + 1 + } else if (e < 143) { + // normalized number auto ex = e - 111; val |= ex << 2; val |= m >> 21; - if (m & 0x100000) { + if ((m & 0x100000) && ((m & 0xFFFFF) || (m & 0x200000))) { if ((val & 0x7F) < 0x7F) { // rounding val += 1; @@ -554,7 +557,7 @@ struct Float8E5M2FNUZ { val = 0x80; } } - } else if ((e == 255) && (m == 0)) { // inf + } else if ((e == 255) && (m == 0)) { val = 0x80; } else if (saturate) { val |= 0x7F; diff --git a/onnxruntime/test/framework/float_8_test.cc b/onnxruntime/test/framework/float_8_test.cc new file mode 100644 index 0000000000..948e0e05a9 --- /dev/null +++ b/onnxruntime/test/framework/float_8_test.cc @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#if !defined(DISABLE_FLOAT8_TYPES) + +#include + +#include "core/framework/float8.h" +#include "test/capturing_sink.h" +#include "test/test_environment.h" +#include "test_utils.h" +#include "gtest/gtest.h" + +using namespace ONNX_NAMESPACE; +using namespace onnxruntime::common; + +namespace onnxruntime { +namespace test { + +TEST(Float8_Tests, CastE4M3FN) { + std::vector> cases{ + std::pair(0.00439453125, 0.00390625), + std::pair(0.005859375, 0.005859375), + std::pair(0.005759375, 0.005859375), + std::pair(0.0046875, 0.00390625), + std::pair(0.001953125, 0.001953125), + std::pair(0.0029296875, 0.00390625), + std::pair(0.002053125, 0.001953125), + std::pair(0.00234375, 0.001953125), + std::pair(0.0087890625, 0.0078125), + std::pair(0.001171875, 0.001953125), + std::pair(1.8131605, 1.875)}; + for (auto it : cases) { + auto f8 = onnxruntime::Float8E4M3FN(it.first); + auto f8_32 = f8.ToFloat(); + EXPECT_EQ(it.second, f8_32); + } +} + +union float_bits { + uint32_t bits; + float val; +}; + +TEST(Float8_Tests, NanE4M3FN) { + EXPECT_EQ(onnxruntime::Float8E4M3FN((float_bits{0x7F800000}).val).val, static_cast(0x7E)); + EXPECT_EQ(onnxruntime::Float8E4M3FN((float_bits{0xFF800000}).val).val, static_cast(0xFE)); + EXPECT_EQ(onnxruntime::Float8E4M3FN((float_bits{0x7F800000}).val, false).val, static_cast(0x7F)); + EXPECT_EQ(onnxruntime::Float8E4M3FN((float_bits{0xFF800000}).val, false).val, static_cast(0xFF)); + EXPECT_EQ(onnxruntime::Float8E4M3FN((float_bits{0x7F800001}).val).val, static_cast(0x7F)); + EXPECT_EQ(onnxruntime::Float8E4M3FN((float_bits{0xFF800001}).val).val, static_cast(0xFF)); + // 0x7FC00000 is the value used by numpy. + EXPECT_EQ(onnxruntime::Float8E4M3FN((float_bits{0x7FC00000}).val).val, static_cast(0x7F)); + EXPECT_EQ(onnxruntime::Float8E4M3FN((float_bits{0xFFC00000}).val).val, static_cast(0xFF)); +} + +TEST(Float8_Tests, NanE4M3FNUZ) { + EXPECT_EQ(onnxruntime::Float8E4M3FNUZ((float_bits{0x7F800000}).val).val, static_cast(0x7F)); + EXPECT_EQ(onnxruntime::Float8E4M3FNUZ((float_bits{0xFF800000}).val).val, static_cast(0xFF)); + EXPECT_EQ(onnxruntime::Float8E4M3FNUZ((float_bits{0x7F800000}).val, false).val, static_cast(0x80)); + EXPECT_EQ(onnxruntime::Float8E4M3FNUZ((float_bits{0xFF800000}).val, false).val, static_cast(0x80)); + EXPECT_EQ(onnxruntime::Float8E4M3FNUZ((float_bits{0x7F800001}).val).val, static_cast(0x80)); + EXPECT_EQ(onnxruntime::Float8E4M3FNUZ((float_bits{0xFF800001}).val).val, static_cast(0x80)); + // 0x7FC00000 is the value used by numpy. + EXPECT_EQ(onnxruntime::Float8E4M3FNUZ((float_bits{0x7FC00000}).val).val, static_cast(0x80)); + EXPECT_EQ(onnxruntime::Float8E4M3FNUZ((float_bits{0xFFC00000}).val).val, static_cast(0x80)); +} + +TEST(Float8_Tests, NanE5M2) { + EXPECT_EQ(onnxruntime::Float8E5M2((float_bits{0x7F800000}).val).val, static_cast(0x7B)); + EXPECT_EQ(onnxruntime::Float8E5M2((float_bits{0xFF800000}).val).val, static_cast(0xFB)); + EXPECT_EQ(onnxruntime::Float8E5M2((float_bits{0x7F800000}).val, false).val, static_cast(0x7C)); + EXPECT_EQ(onnxruntime::Float8E5M2((float_bits{0xFF800000}).val, false).val, static_cast(0xFC)); + EXPECT_EQ(onnxruntime::Float8E5M2((float_bits{0x7F800001}).val).val, static_cast(0x7F)); + EXPECT_EQ(onnxruntime::Float8E5M2((float_bits{0xFF800001}).val).val, static_cast(0xFF)); + // 0x7FC00000 is the value used by numpy. + EXPECT_EQ(onnxruntime::Float8E5M2((float_bits{0x7FC00000}).val).val, static_cast(0x7F)); + EXPECT_EQ(onnxruntime::Float8E5M2((float_bits{0xFFC00000}).val).val, static_cast(0xFF)); +} + +TEST(Float8_Tests, NanE5M2FNUZ) { + EXPECT_EQ(onnxruntime::Float8E5M2FNUZ((float_bits{0x7F800000}).val).val, static_cast(0x7F)); + EXPECT_EQ(onnxruntime::Float8E5M2FNUZ((float_bits{0xFF800000}).val).val, static_cast(0xFF)); + EXPECT_EQ(onnxruntime::Float8E5M2FNUZ((float_bits{0x7F800000}).val, false).val, static_cast(0x80)); + EXPECT_EQ(onnxruntime::Float8E5M2FNUZ((float_bits{0xFF800000}).val, false).val, static_cast(0x80)); + EXPECT_EQ(onnxruntime::Float8E5M2FNUZ((float_bits{0x7F800001}).val).val, static_cast(0x80)); + EXPECT_EQ(onnxruntime::Float8E5M2FNUZ((float_bits{0xFF800001}).val).val, static_cast(0x80)); + // 0x7FC00000 is the value used by numpy. + EXPECT_EQ(onnxruntime::Float8E5M2FNUZ((float_bits{0x7FC00000}).val).val, static_cast(0x80)); + EXPECT_EQ(onnxruntime::Float8E5M2FNUZ((float_bits{0xFFC00000}).val).val, static_cast(0x80)); +} + +} // namespace test +} // namespace onnxruntime + +#endif // DISABLE_FLOAT8_TYPES diff --git a/onnxruntime/test/python/onnxruntime_test_float8.py b/onnxruntime/test/python/onnxruntime_test_float8.py index 3f3180230f..76ca5d9538 100644 --- a/onnxruntime/test/python/onnxruntime_test_float8.py +++ b/onnxruntime/test/python/onnxruntime_test_float8.py @@ -8,9 +8,11 @@ import sys import unittest import numpy as np +import packaging.version as pv import parameterized from numpy.testing import assert_allclose from onnx import TensorProto +from onnx import __version__ as onnx_version from onnx.checker import check_model from onnx.helper import make_graph, make_model, make_node, make_opsetid, make_tensor, make_tensor_value_info from onnx.reference import ReferenceEvaluator @@ -37,7 +39,7 @@ class TestInferenceSession(unittest.TestCase): `_. """ - dtypes = frozenset({"FLOAT": np.float32, "FLOAT16": np.float16}) + dtypes = {"FLOAT": np.float32, "FLOAT16": np.float16} # noqa: RUF012 x = np.array( [0.4068359375, 352, 416, 336, 304, 272, -248, -100, 1e-4, 1e-2, 416, 432, 1e5, np.inf, -np.inf, np.nan], dtype=np.float32, @@ -76,7 +78,7 @@ class TestInferenceSession(unittest.TestCase): 240.0, 240.0, -240.0, - -104.0, + -96.0, 0.0, 0.009765625, 240.0, @@ -113,7 +115,7 @@ class TestInferenceSession(unittest.TestCase): [ 0.4375, 384.0, - 448.0, + 384.0, 320.0, 320.0, 256.0, @@ -121,7 +123,7 @@ class TestInferenceSession(unittest.TestCase): -96.0, 0.0001068115234375, 0.009765625, - 448.0, + 384.0, 448.0, 57344.0, 57344.0, @@ -167,7 +169,7 @@ class TestInferenceSession(unittest.TestCase): np.nan, np.nan, np.nan, - -104.0, + -96.0, 0.0, 0.009765625, np.nan, @@ -204,7 +206,7 @@ class TestInferenceSession(unittest.TestCase): [ 0.4375, 384.0, - 448.0, + 384.0, 320.0, 320.0, 256.0, @@ -212,7 +214,7 @@ class TestInferenceSession(unittest.TestCase): -96.0, 0.0001068115234375, 0.009765625, - 448.0, + 384.0, 448.0, np.nan, np.nan, @@ -245,6 +247,7 @@ class TestInferenceSession(unittest.TestCase): check_model(onnx_model) return onnx_model + @unittest.skipIf(pv.Version(onnx_version) < pv.Version("1.15.0"), reason="needs onnx>=1.15.0") @parameterized.parameterized.expand( [ ("FLOAT8E4M3FN", "FLOAT", 1), @@ -429,6 +432,7 @@ class TestInferenceSession(unittest.TestCase): check_model(onnx_model) return onnx_model + @unittest.skipIf(pv.Version(onnx_version) < pv.Version("1.15.0"), reason="needs onnx>=1.15.0") @parameterized.parameterized.expand( [ ("FLOAT8E4M3FN", "FLOAT", 1), @@ -689,6 +693,18 @@ class TestInferenceSession(unittest.TestCase): self.assertEqual(expect.shape, y.shape) self.assertEqual(expect.dtype, y.dtype) + @unittest.skipIf("CUDAExecutionProvider" not in available_providers, reason="Not running on CUDA.") + def test_compare_cpu_cuda_e4m3fn(self): + folder = os.path.join(os.path.dirname(__file__), "..", "testdata", "float8") + model = os.path.join(folder, "te.cast_fp8_1_fp32.onnx") + data = np.load(os.path.join(folder, "te.cast_fp8_1_fp32_input.npy")) + + sess_cpu = onnxruntime.InferenceSession(model, providers=["CPUExecutionProvider"]) + sess_cuda = onnxruntime.InferenceSession(model, providers=["CUDAExecutionProvider"]) + cpu_res = sess_cpu.run(None, {"input": data})[0] + cuda_res = sess_cuda.run(None, {"input": data})[0] + self.assertEqual(cuda_res.tolist(), cpu_res.tolist()) + if __name__ == "__main__": unittest.main(verbosity=2) diff --git a/onnxruntime/test/testdata/float8/te.cast_fp8_1_fp32.onnx b/onnxruntime/test/testdata/float8/te.cast_fp8_1_fp32.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1dec9910087fc5d8a2f3908745c1796206f5f12f GIT binary patch literal 25013 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 Ge(*m7{Q)-s literal 0 HcmV?d00001