Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
composable_kernel_ROCM
Commits
ca99f301
Commit
ca99f301
authored
Oct 16, 2024
by
Andriy Roshchenko
Browse files
Refactoring. Move FP8 definitions into a separate header file.
parent
16a38ff6
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
914 additions
and
923 deletions
+914
-923
include/ck/utility/amd_ck_fp8.hpp
include/ck/utility/amd_ck_fp8.hpp
+897
-0
include/ck/utility/data_type.hpp
include/ck/utility/data_type.hpp
+7
-915
include/ck/utility/random_gen.hpp
include/ck/utility/random_gen.hpp
+2
-0
test/data_type/test_bf8_ocp.cpp
test/data_type/test_bf8_ocp.cpp
+6
-6
test/data_type/test_fp8_ocp.cpp
test/data_type/test_fp8_ocp.cpp
+2
-2
No files found.
include/ck/utility/amd_ck_fp8.hpp
0 → 100644
View file @
ca99f301
This diff is collapsed.
Click to expand it.
include/ck/utility/data_type.hpp
View file @
ca99f301
This diff is collapsed.
Click to expand it.
include/ck/utility/random_gen.hpp
View file @
ca99f301
...
...
@@ -3,6 +3,8 @@
#pragma once
#include "ck/ck.hpp"
namespace
ck
{
// Pseudo random number generator
...
...
test/data_type/test_bf8_ocp.cpp
View file @
ca99f301
...
...
@@ -23,8 +23,8 @@ TEST(BF8OCP, NumericLimits)
type_convert
<
bf8_ocp_t
>
(
0x7D
).
data
);
// 0b01111101
EXPECT_FALSE
(
ck
::
NumericLimits
<
bf8_ocp_t
>::
QuietNaN
()
==
ck
::
NumericLimits
<
bf8_ocp_t
>::
QuietNaN
());
EXPECT_TRUE
(
ck
::
interna
l
::
fp8_is_inf
(
type_convert
<
bf8_ocp_t
>
(
0xFC
))
&&
ck
::
interna
l
::
fp8_is_inf
(
type_convert
<
bf8_ocp_t
>
(
0x7C
)));
EXPECT_TRUE
(
ck
::
fp8_imp
l
::
fp8_is_inf
(
type_convert
<
bf8_ocp_t
>
(
0xFC
))
&&
ck
::
fp8_imp
l
::
fp8_is_inf
(
type_convert
<
bf8_ocp_t
>
(
0x7C
)));
}
TEST
(
BF8OCP
,
ConvertFP32Nearest
)
...
...
@@ -79,7 +79,7 @@ TEST(BF8OCP, ConvertFP32Nearest)
// convert quiet NaN to bf8_ocp_t and check if it is quiet NaN
const
auto
bf8_nan
=
f8_convert_rne
<
bf8_ocp_t
>
(
std
::
numeric_limits
<
float
>::
quiet_NaN
());
ASSERT_TRUE
(
ck
::
interna
l
::
ocp_bf8_is_nan
(
bf8_nan
.
data
));
ASSERT_TRUE
(
ck
::
fp8_imp
l
::
ocp_bf8_is_nan
(
bf8_nan
.
data
));
}
TEST
(
BF8OCP
,
ConvertFP32Stochastic
)
...
...
@@ -136,7 +136,7 @@ TEST(BF8OCP, ConvertFP32Stochastic)
// convert quiet NaN to bf8_ocp_t and check if it is quiet NaN
const
auto
bf8_nan
=
f8_convert_sr
<
bf8_ocp_t
>
(
std
::
numeric_limits
<
float
>::
quiet_NaN
());
ASSERT_TRUE
(
ck
::
interna
l
::
ocp_bf8_is_nan
(
bf8_nan
.
data
));
ASSERT_TRUE
(
ck
::
fp8_imp
l
::
ocp_bf8_is_nan
(
bf8_nan
.
data
));
}
TEST
(
BF8OCP
,
ConvertFP16Nearest
)
...
...
@@ -199,7 +199,7 @@ TEST(BF8OCP, ConvertFP16Nearest)
// convert quiet NaN to bf8_ocp_t and check if it is quiet NaN
const
auto
bf8_nan
=
f8_convert_rne
<
bf8_ocp_t
>
(
ck
::
NumericLimits
<
half_t
>::
QuietNaN
());
ASSERT_TRUE
(
ck
::
interna
l
::
ocp_bf8_is_nan
(
bf8_nan
.
data
));
ASSERT_TRUE
(
ck
::
fp8_imp
l
::
ocp_bf8_is_nan
(
bf8_nan
.
data
));
}
TEST
(
BF8OCP
,
ConvertFP16Stochastic
)
...
...
@@ -264,5 +264,5 @@ TEST(BF8OCP, ConvertFP16Stochastic)
// convert quiet NaN to bf8_ocp_t and check if it is quiet NaN
const
auto
bf8_nan
=
f8_convert_sr
<
bf8_ocp_t
>
(
ck
::
NumericLimits
<
half_t
>::
QuietNaN
());
ASSERT_TRUE
(
ck
::
interna
l
::
ocp_bf8_is_nan
(
bf8_nan
.
data
));
ASSERT_TRUE
(
ck
::
fp8_imp
l
::
ocp_bf8_is_nan
(
bf8_nan
.
data
));
}
test/data_type/test_fp8_ocp.cpp
View file @
ca99f301
...
...
@@ -184,7 +184,7 @@ TEST(FP8OCP, ConvertFP16Nearest)
// convert quiet NaN to f8_ocp_t and check if it is quiet NaN
auto
f8_nan
=
f8_convert_rne
<
f8_ocp_t
>
(
ck
::
NumericLimits
<
half_t
>::
QuietNaN
());
ASSERT_TRUE
(
ck
::
interna
l
::
ocp_f8_is_nan
(
f8_nan
.
data
));
ASSERT_TRUE
(
ck
::
fp8_imp
l
::
ocp_f8_is_nan
(
f8_nan
.
data
));
}
TEST
(
FP8OCP
,
ConvertFP16Stochastic
)
...
...
@@ -246,5 +246,5 @@ TEST(FP8OCP, ConvertFP16Stochastic)
// convert quiet NaN to f8_ocp_t and check if it is quiet NaN
auto
f8_nan
=
f8_convert_sr
<
f8_ocp_t
>
(
ck
::
NumericLimits
<
half_t
>::
QuietNaN
());
ASSERT_TRUE
(
ck
::
interna
l
::
ocp_f8_is_nan
(
f8_nan
.
data
));
ASSERT_TRUE
(
ck
::
fp8_imp
l
::
ocp_f8_is_nan
(
f8_nan
.
data
));
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment