gem5 v24.0.0.0
Loading...
Searching...
No Matches
fp16_e5m10.hh
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Advanced Micro Devices, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright notice,
12 * this list of conditions and the following disclaimer in the documentation
13 * and/or other materials provided with the distribution.
14 *
15 * 3. Neither the name of the copyright holder nor the names of its
16 * contributors may be used to endorse or promote products derived from this
17 * software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31
32#ifndef __ARCH_AMDGPU_COMMON_DTYPE_FP16_E5M10_HH__
33#define __ARCH_AMDGPU_COMMON_DTYPE_FP16_E5M10_HH__
34
35#include <cassert>
36
37namespace gem5
38{
39
40namespace AMDGPU
41{
42
43typedef union
44{
46 {
47 ebits = 5,
48 mbits = 10,
49 sbits = 1,
50 zbits = 16,
51 bias = 15,
52
53 inf = 0x7c000000,
54 nan = 0x7c100000,
55 max = 0x7bff0000
56 };
57
58 uint32_t storage;
59 struct
60 {
61 unsigned zero : zbits;
62 unsigned mant : mbits;
63 unsigned exp : ebits;
64 unsigned sign : sbits;
65 };
66} fp16_e5m10_info;
67static_assert(sizeof(fp16_e5m10_info) == 4);
68
69} // namespace AMDGPU
70
71} // namespace gem5
72
73
74// std library cmath definitions
75namespace std
76{
77
79{
80 return a.exp == 0x1F && a.mant == 0;
81}
82
84{
85 return a.exp == 0x1F && a.mant != 0;
86}
87
89{
90 return !(a.exp == 0 && a.mant != 0);
91}
92
93template<>
94class numeric_limits<gem5::AMDGPU::fp16_e5m10_info>
95{
96 public:
97 static constexpr bool has_quiet_NaN = true;
99 {
100 assert(has_quiet_NaN);
103 return tmp;
104 }
105
106 static constexpr bool has_infinity = true;
108 {
109 assert(has_infinity);
112 return tmp;
113 }
114
121};
122
123} // namespace std
124
125#endif // __ARCH_AMDGPU_COMMON_DTYPE_FP16_E5M10_HH__
static gem5::AMDGPU::fp16_e5m10_info infinity()
static gem5::AMDGPU::fp16_e5m10_info max()
static gem5::AMDGPU::fp16_e5m10_info quiet_NaN()
Definition fp16_e5m10.hh:98
SwitchingFiber a
constexpr T mbits(T val, unsigned first, unsigned last)
Mask off the given bits in place like bits() but without shifting.
Definition bitfield.hh:106
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition binary32.hh:36
Overload hash function for BasicBlockRange type.
Definition binary32.hh:81
constexpr bool isinf(gem5::AMDGPU::fp16_e5m10_info a)
Definition fp16_e5m10.hh:78
constexpr bool isnan(gem5::AMDGPU::fp16_e5m10_info a)
Definition fp16_e5m10.hh:83
constexpr bool isnormal(gem5::AMDGPU::fp16_e5m10_info a)
Definition fp16_e5m10.hh:88

Generated on Tue Jun 18 2024 16:23:39 for gem5 by doxygen 1.11.0