About float 8

Float 8 types were recently introduced to speed up the training of deep learning models.

Possible values

First E4M3FN.

import pprint
from onnx_array_api.validation.f8 import CastFloat8

pprint.pprint(CastFloat8.values_e4m3fn)
[(np.float32(-448.0), 254),
 (np.float32(-416.0), 253),
 (np.float32(-384.0), 252),
 (np.float32(-352.0), 251),
 (np.float32(-320.0), 250),
 (np.float32(-288.0), 249),
 (np.float32(-256.0), 248),
 (np.float32(-240.0), 247),
 (np.float32(-224.0), 246),
 (np.float32(-208.0), 245),
 (np.float32(-192.0), 244),
 (np.float32(-176.0), 243),
 (np.float32(-160.0), 242),
 (np.float32(-144.0), 241),
 (np.float32(-128.0), 240),
 (np.float32(-120.0), 239),
 (np.float32(-112.0), 238),
 (np.float32(-104.0), 237),
 (np.float32(-96.0), 236),
 (np.float32(-88.0), 235),
 (np.float32(-80.0), 234),
 (np.float32(-72.0), 233),
 (np.float32(-64.0), 232),
 (np.float32(-60.0), 231),
 (np.float32(-56.0), 230),
 (np.float32(-52.0), 229),
 (np.float32(-48.0), 228),
 (np.float32(-44.0), 227),
 (np.float32(-40.0), 226),
 (np.float32(-36.0), 225),
 (np.float32(-32.0), 224),
 (np.float32(-30.0), 223),
 (np.float32(-28.0), 222),
 (np.float32(-26.0), 221),
 (np.float32(-24.0), 220),
 (np.float32(-22.0), 219),
 (np.float32(-20.0), 218),
 (np.float32(-18.0), 217),
 (np.float32(-16.0), 216),
 (np.float32(-15.0), 215),
 (np.float32(-14.0), 214),
 (np.float32(-13.0), 213),
 (np.float32(-12.0), 212),
 (np.float32(-11.0), 211),
 (np.float32(-10.0), 210),
 (np.float32(-9.0), 209),
 (np.float32(-8.0), 208),
 (np.float32(-7.5), 207),
 (np.float32(-7.0), 206),
 (np.float32(-6.5), 205),
 (np.float32(-6.0), 204),
 (np.float32(-5.5), 203),
 (np.float32(-5.0), 202),
 (np.float32(-4.5), 201),
 (np.float32(-4.0), 200),
 (np.float32(-3.75), 199),
 (np.float32(-3.5), 198),
 (np.float32(-3.25), 197),
 (np.float32(-3.0), 196),
 (np.float32(-2.75), 195),
 (np.float32(-2.5), 194),
 (np.float32(-2.25), 193),
 (np.float32(-2.0), 192),
 (np.float32(-1.875), 191),
 (np.float32(-1.75), 190),
 (np.float32(-1.625), 189),
 (np.float32(-1.5), 188),
 (np.float32(-1.375), 187),
 (np.float32(-1.25), 186),
 (np.float32(-1.125), 185),
 (np.float32(-1.0), 184),
 (np.float32(-0.9375), 183),
 (np.float32(-0.875), 182),
 (np.float32(-0.8125), 181),
 (np.float32(-0.75), 180),
 (np.float32(-0.6875), 179),
 (np.float32(-0.625), 178),
 (np.float32(-0.5625), 177),
 (np.float32(-0.5), 176),
 (np.float32(-0.46875), 175),
 (np.float32(-0.4375), 174),
 (np.float32(-0.40625), 173),
 (np.float32(-0.375), 172),
 (np.float32(-0.34375), 171),
 (np.float32(-0.3125), 170),
 (np.float32(-0.28125), 169),
 (np.float32(-0.25), 168),
 (np.float32(-0.234375), 167),
 (np.float32(-0.21875), 166),
 (np.float32(-0.203125), 165),
 (np.float32(-0.1875), 164),
 (np.float32(-0.171875), 163),
 (np.float32(-0.15625), 162),
 (np.float32(-0.140625), 161),
 (np.float32(-0.125), 160),
 (np.float32(-0.1171875), 159),
 (np.float32(-0.109375), 158),
 (np.float32(-0.1015625), 157),
 (np.float32(-0.09375), 156),
 (np.float32(-0.0859375), 155),
 (np.float32(-0.078125), 154),
 (np.float32(-0.0703125), 153),
 (np.float32(-0.0625), 152),
 (np.float32(-0.05859375), 151),
 (np.float32(-0.0546875), 150),
 (np.float32(-0.05078125), 149),
 (np.float32(-0.046875), 148),
 (np.float32(-0.04296875), 147),
 (np.float32(-0.0390625), 146),
 (np.float32(-0.03515625), 145),
 (np.float32(-0.03125), 144),
 (np.float32(-0.029296875), 143),
 (np.float32(-0.02734375), 142),
 (np.float32(-0.025390625), 141),
 (np.float32(-0.0234375), 140),
 (np.float32(-0.021484375), 139),
 (np.float32(-0.01953125), 138),
 (np.float32(-0.017578125), 137),
 (np.float32(-0.015625), 136),
 (np.float32(-0.013671875), 135),
 (np.float32(-0.01171875), 134),
 (np.float32(-0.009765625), 133),
 (np.float32(-0.0078125), 132),
 (np.float32(-0.005859375), 131),
 (np.float32(-0.00390625), 130),
 (np.float32(-0.001953125), 129),
 (np.float32(0.0), 0),
 (np.float32(-0.0), 128),
 (np.float32(0.001953125), 1),
 (np.float32(0.00390625), 2),
 (np.float32(0.005859375), 3),
 (np.float32(0.0078125), 4),
 (np.float32(0.009765625), 5),
 (np.float32(0.01171875), 6),
 (np.float32(0.013671875), 7),
 (np.float32(0.015625), 8),
 (np.float32(0.017578125), 9),
 (np.float32(0.01953125), 10),
 (np.float32(0.021484375), 11),
 (np.float32(0.0234375), 12),
 (np.float32(0.025390625), 13),
 (np.float32(0.02734375), 14),
 (np.float32(0.029296875), 15),
 (np.float32(0.03125), 16),
 (np.float32(0.03515625), 17),
 (np.float32(0.0390625), 18),
 (np.float32(0.04296875), 19),
 (np.float32(0.046875), 20),
 (np.float32(0.05078125), 21),
 (np.float32(0.0546875), 22),
 (np.float32(0.05859375), 23),
 (np.float32(0.0625), 24),
 (np.float32(0.0703125), 25),
 (np.float32(0.078125), 26),
 (np.float32(0.0859375), 27),
 (np.float32(0.09375), 28),
 (np.float32(0.1015625), 29),
 (np.float32(0.109375), 30),
 (np.float32(0.1171875), 31),
 (np.float32(0.125), 32),
 (np.float32(0.140625), 33),
 (np.float32(0.15625), 34),
 (np.float32(0.171875), 35),
 (np.float32(0.1875), 36),
 (np.float32(0.203125), 37),
 (np.float32(0.21875), 38),
 (np.float32(0.234375), 39),
 (np.float32(0.25), 40),
 (np.float32(0.28125), 41),
 (np.float32(0.3125), 42),
 (np.float32(0.34375), 43),
 (np.float32(0.375), 44),
 (np.float32(0.40625), 45),
 (np.float32(0.4375), 46),
 (np.float32(0.46875), 47),
 (np.float32(0.5), 48),
 (np.float32(0.5625), 49),
 (np.float32(0.625), 50),
 (np.float32(0.6875), 51),
 (np.float32(0.75), 52),
 (np.float32(0.8125), 53),
 (np.float32(0.875), 54),
 (np.float32(0.9375), 55),
 (np.float32(1.0), 56),
 (np.float32(1.125), 57),
 (np.float32(1.25), 58),
 (np.float32(1.375), 59),
 (np.float32(1.5), 60),
 (np.float32(1.625), 61),
 (np.float32(1.75), 62),
 (np.float32(1.875), 63),
 (np.float32(2.0), 64),
 (np.float32(2.25), 65),
 (np.float32(2.5), 66),
 (np.float32(2.75), 67),
 (np.float32(3.0), 68),
 (np.float32(3.25), 69),
 (np.float32(3.5), 70),
 (np.float32(3.75), 71),
 (np.float32(4.0), 72),
 (np.float32(4.5), 73),
 (np.float32(5.0), 74),
 (np.float32(5.5), 75),
 (np.float32(6.0), 76),
 (np.float32(6.5), 77),
 (np.float32(7.0), 78),
 (np.float32(7.5), 79),
 (np.float32(8.0), 80),
 (np.float32(9.0), 81),
 (np.float32(10.0), 82),
 (np.float32(11.0), 83),
 (np.float32(12.0), 84),
 (np.float32(13.0), 85),
 (np.float32(14.0), 86),
 (np.float32(15.0), 87),
 (np.float32(16.0), 88),
 (np.float32(18.0), 89),
 (np.float32(20.0), 90),
 (np.float32(22.0), 91),
 (np.float32(24.0), 92),
 (np.float32(26.0), 93),
 (np.float32(28.0), 94),
 (np.float32(30.0), 95),
 (np.float32(32.0), 96),
 (np.float32(36.0), 97),
 (np.float32(40.0), 98),
 (np.float32(44.0), 99),
 (np.float32(48.0), 100),
 (np.float32(52.0), 101),
 (np.float32(56.0), 102),
 (np.float32(60.0), 103),
 (np.float32(64.0), 104),
 (np.float32(72.0), 105),
 (np.float32(80.0), 106),
 (np.float32(88.0), 107),
 (np.float32(96.0), 108),
 (np.float32(104.0), 109),
 (np.float32(112.0), 110),
 (np.float32(120.0), 111),
 (np.float32(128.0), 112),
 (np.float32(144.0), 113),
 (np.float32(160.0), 114),
 (np.float32(176.0), 115),
 (np.float32(192.0), 116),
 (np.float32(208.0), 117),
 (np.float32(224.0), 118),
 (np.float32(240.0), 119),
 (np.float32(256.0), 120),
 (np.float32(288.0), 121),
 (np.float32(320.0), 122),
 (np.float32(352.0), 123),
 (np.float32(384.0), 124),
 (np.float32(416.0), 125),
 (np.float32(448.0), 126)]

Then E5M2.

[(np.float32(-inf), 252),
 (np.float32(-57344.0), 251),
 (np.float32(-49152.0), 250),
 (np.float32(-40960.0), 249),
 (np.float32(-32768.0), 248),
 (np.float32(-28672.0), 247),
 (np.float32(-24576.0), 246),
 (np.float32(-20480.0), 245),
 (np.float32(-16384.0), 244),
 (np.float32(-14336.0), 243),
 (np.float32(-12288.0), 242),
 (np.float32(-10240.0), 241),
 (np.float32(-8192.0), 240),
 (np.float32(-7168.0), 239),
 (np.float32(-6144.0), 238),
 (np.float32(-5120.0), 237),
 (np.float32(-4096.0), 236),
 (np.float32(-3584.0), 235),
 (np.float32(-3072.0), 234),
 (np.float32(-2560.0), 233),
 (np.float32(-2048.0), 232),
 (np.float32(-1792.0), 231),
 (np.float32(-1536.0), 230),
 (np.float32(-1280.0), 229),
 (np.float32(-1024.0), 228),
 (np.float32(-896.0), 227),
 (np.float32(-768.0), 226),
 (np.float32(-640.0), 225),
 (np.float32(-512.0), 224),
 (np.float32(-448.0), 223),
 (np.float32(-384.0), 222),
 (np.float32(-320.0), 221),
 (np.float32(-256.0), 220),
 (np.float32(-224.0), 219),
 (np.float32(-192.0), 218),
 (np.float32(-160.0), 217),
 (np.float32(-128.0), 216),
 (np.float32(-112.0), 215),
 (np.float32(-96.0), 214),
 (np.float32(-80.0), 213),
 (np.float32(-64.0), 212),
 (np.float32(-56.0), 211),
 (np.float32(-48.0), 210),
 (np.float32(-40.0), 209),
 (np.float32(-32.0), 208),
 (np.float32(-28.0), 207),
 (np.float32(-24.0), 206),
 (np.float32(-20.0), 205),
 (np.float32(-16.0), 204),
 (np.float32(-14.0), 203),
 (np.float32(-12.0), 202),
 (np.float32(-10.0), 201),
 (np.float32(-8.0), 200),
 (np.float32(-7.0), 199),
 (np.float32(-6.0), 198),
 (np.float32(-5.0), 197),
 (np.float32(-4.0), 196),
 (np.float32(-3.5), 195),
 (np.float32(-3.0), 194),
 (np.float32(-2.5), 193),
 (np.float32(-2.0), 192),
 (np.float32(-1.75), 191),
 (np.float32(-1.5), 190),
 (np.float32(-1.25), 189),
 (np.float32(-1.0), 188),
 (np.float32(-0.875), 187),
 (np.float32(-0.75), 186),
 (np.float32(-0.625), 185),
 (np.float32(-0.5), 184),
 (np.float32(-0.4375), 183),
 (np.float32(-0.375), 182),
 (np.float32(-0.3125), 181),
 (np.float32(-0.25), 180),
 (np.float32(-0.21875), 179),
 (np.float32(-0.1875), 178),
 (np.float32(-0.15625), 177),
 (np.float32(-0.125), 176),
 (np.float32(-0.109375), 175),
 (np.float32(-0.09375), 174),
 (np.float32(-0.078125), 173),
 (np.float32(-0.0625), 172),
 (np.float32(-0.0546875), 171),
 (np.float32(-0.046875), 170),
 (np.float32(-0.0390625), 169),
 (np.float32(-0.03125), 168),
 (np.float32(-0.02734375), 167),
 (np.float32(-0.0234375), 166),
 (np.float32(-0.01953125), 165),
 (np.float32(-0.015625), 164),
 (np.float32(-0.013671875), 163),
 (np.float32(-0.01171875), 162),
 (np.float32(-0.009765625), 161),
 (np.float32(-0.0078125), 160),
 (np.float32(-0.0068359375), 159),
 (np.float32(-0.005859375), 158),
 (np.float32(-0.0048828125), 157),
 (np.float32(-0.00390625), 156),
 (np.float32(-0.0034179688), 155),
 (np.float32(-0.0029296875), 154),
 (np.float32(-0.0024414062), 153),
 (np.float32(-0.001953125), 152),
 (np.float32(-0.0017089844), 151),
 (np.float32(-0.0014648438), 150),
 (np.float32(-0.0012207031), 149),
 (np.float32(-0.0009765625), 148),
 (np.float32(-0.0008544922), 147),
 (np.float32(-0.0007324219), 146),
 (np.float32(-0.00061035156), 145),
 (np.float32(-0.00048828125), 144),
 (np.float32(-0.0004272461), 143),
 (np.float32(-0.00036621094), 142),
 (np.float32(-0.00030517578), 141),
 (np.float32(-0.00024414062), 140),
 (np.float32(-0.00021362305), 139),
 (np.float32(-0.00018310547), 138),
 (np.float32(-0.00015258789), 137),
 (np.float32(-0.00012207031), 136),
 (np.float32(-0.00010681152), 135),
 (np.float32(-9.1552734e-05), 134),
 (np.float32(-7.6293945e-05), 133),
 (np.float32(-6.1035156e-05), 132),
 (np.float32(-4.5776367e-05), 131),
 (np.float32(-3.0517578e-05), 130),
 (np.float32(-1.5258789e-05), 129),
 (np.float32(0.0), 0),
 (np.float32(0.0), 128),
 (np.float32(1.5258789e-05), 1),
 (np.float32(3.0517578e-05), 2),
 (np.float32(4.5776367e-05), 3),
 (np.float32(6.1035156e-05), 4),
 (np.float32(7.6293945e-05), 5),
 (np.float32(9.1552734e-05), 6),
 (np.float32(0.00010681152), 7),
 (np.float32(0.00012207031), 8),
 (np.float32(0.00015258789), 9),
 (np.float32(0.00018310547), 10),
 (np.float32(0.00021362305), 11),
 (np.float32(0.00024414062), 12),
 (np.float32(0.00030517578), 13),
 (np.float32(0.00036621094), 14),
 (np.float32(0.0004272461), 15),
 (np.float32(0.00048828125), 16),
 (np.float32(0.00061035156), 17),
 (np.float32(0.0007324219), 18),
 (np.float32(0.0008544922), 19),
 (np.float32(0.0009765625), 20),
 (np.float32(0.0012207031), 21),
 (np.float32(0.0014648438), 22),
 (np.float32(0.0017089844), 23),
 (np.float32(0.001953125), 24),
 (np.float32(0.0024414062), 25),
 (np.float32(0.0029296875), 26),
 (np.float32(0.0034179688), 27),
 (np.float32(0.00390625), 28),
 (np.float32(0.0048828125), 29),
 (np.float32(0.005859375), 30),
 (np.float32(0.0068359375), 31),
 (np.float32(0.0078125), 32),
 (np.float32(0.009765625), 33),
 (np.float32(0.01171875), 34),
 (np.float32(0.013671875), 35),
 (np.float32(0.015625), 36),
 (np.float32(0.01953125), 37),
 (np.float32(0.0234375), 38),
 (np.float32(0.02734375), 39),
 (np.float32(0.03125), 40),
 (np.float32(0.0390625), 41),
 (np.float32(0.046875), 42),
 (np.float32(0.0546875), 43),
 (np.float32(0.0625), 44),
 (np.float32(0.078125), 45),
 (np.float32(0.09375), 46),
 (np.float32(0.109375), 47),
 (np.float32(0.125), 48),
 (np.float32(0.15625), 49),
 (np.float32(0.1875), 50),
 (np.float32(0.21875), 51),
 (np.float32(0.25), 52),
 (np.float32(0.3125), 53),
 (np.float32(0.375), 54),
 (np.float32(0.4375), 55),
 (np.float32(0.5), 56),
 (np.float32(0.625), 57),
 (np.float32(0.75), 58),
 (np.float32(0.875), 59),
 (np.float32(1.0), 60),
 (np.float32(1.25), 61),
 (np.float32(1.5), 62),
 (np.float32(1.75), 63),
 (np.float32(2.0), 64),
 (np.float32(2.5), 65),
 (np.float32(3.0), 66),
 (np.float32(3.5), 67),
 (np.float32(4.0), 68),
 (np.float32(5.0), 69),
 (np.float32(6.0), 70),
 (np.float32(7.0), 71),
 (np.float32(8.0), 72),
 (np.float32(10.0), 73),
 (np.float32(12.0), 74),
 (np.float32(14.0), 75),
 (np.float32(16.0), 76),
 (np.float32(20.0), 77),
 (np.float32(24.0), 78),
 (np.float32(28.0), 79),
 (np.float32(32.0), 80),
 (np.float32(40.0), 81),
 (np.float32(48.0), 82),
 (np.float32(56.0), 83),
 (np.float32(64.0), 84),
 (np.float32(80.0), 85),
 (np.float32(96.0), 86),
 (np.float32(112.0), 87),
 (np.float32(128.0), 88),
 (np.float32(160.0), 89),
 (np.float32(192.0), 90),
 (np.float32(224.0), 91),
 (np.float32(256.0), 92),
 (np.float32(320.0), 93),
 (np.float32(384.0), 94),
 (np.float32(448.0), 95),
 (np.float32(512.0), 96),
 (np.float32(640.0), 97),
 (np.float32(768.0), 98),
 (np.float32(896.0), 99),
 (np.float32(1024.0), 100),
 (np.float32(1280.0), 101),
 (np.float32(1536.0), 102),
 (np.float32(1792.0), 103),
 (np.float32(2048.0), 104),
 (np.float32(2560.0), 105),
 (np.float32(3072.0), 106),
 (np.float32(3584.0), 107),
 (np.float32(4096.0), 108),
 (np.float32(5120.0), 109),
 (np.float32(6144.0), 110),
 (np.float32(7168.0), 111),
 (np.float32(8192.0), 112),
 (np.float32(10240.0), 113),
 (np.float32(12288.0), 114),
 (np.float32(14336.0), 115),
 (np.float32(16384.0), 116),
 (np.float32(20480.0), 117),
 (np.float32(24576.0), 118),
 (np.float32(28672.0), 119),
 (np.float32(32768.0), 120),
 (np.float32(40960.0), 121),
 (np.float32(49152.0), 122),
 (np.float32(57344.0), 123),
 (np.float32(inf), 124)]

Total running time of the script: (0 minutes 0.031 seconds)

Gallery generated by Sphinx-Gallery