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
99e771a4
Commit
99e771a4
authored
Feb 13, 2025
by
Rostyslav Geyyer
Browse files
Fix device tests
parent
db2c6114
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
4 additions
and
10 deletions
+4
-10
include/ck/utility/type_convert.hpp
include/ck/utility/type_convert.hpp
+2
-1
test/data_type/test_mx_fp4.cpp
test/data_type/test_mx_fp4.cpp
+2
-9
No files found.
include/ck/utility/type_convert.hpp
View file @
99e771a4
...
...
@@ -734,7 +734,7 @@ inline __host__ __device__ f4x2_t f4_convert_rne(float2_t x, float scale = 1.0f)
uint32_t
bitwise
;
f4x2_t
f4x2_array
[
4
];
}
value
{
0
};
value
.
bitwise
=
__builtin_amdgcn_cvt_scalef32_pk_fp4_f32
(
value
.
bitwise
,
x
[
0
],
x
[
1
],
scale
,
0
);
value
.
bitwise
=
__builtin_amdgcn_cvt_scalef32_pk_fp4_f32
(
value
.
bitwise
,
x
[
1
],
x
[
0
],
scale
,
0
);
return
value
.
f4x2_array
[
0
];
#else
union
...
...
@@ -961,6 +961,7 @@ inline __host__ __device__ f4x2_t f4_convert_sr(float2_t x, float scale = 1.0f)
uint32_t
bitwise
;
f4x2_t
f4x2_array
[
4
];
}
value
{
0
};
printf
(
"%f, %f
\n
"
,
x
[
0
],
x
[
1
]);
value
.
bitwise
=
__builtin_amdgcn_cvt_scalef32_sr_pk_fp4_f32
(
value
.
bitwise
,
x
,
rng
,
scale
,
0
);
return
value
.
f4x2_array
[
0
];
#else
...
...
test/data_type/test_mx_fp4.cpp
View file @
99e771a4
...
...
@@ -309,21 +309,14 @@ TEST(MXFP4, DeviceScaledConvert)
/// Test round to nearest even
EXPECT_EQ
(
out
[
i
++
],
24.0
f
/
4.0
f
)
<<
"out[i-1]: "
<<
out
[
i
-
1
];
EXPECT_TRUE
(
std
::
isnan
(
out
[
i
++
]))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
#if 1
EXPECT_TRUE
(
std
::
isnan
(
out
[
i
++
]))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
EXPECT_TRUE
(
std
::
isnan
(
out
[
i
++
]))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
EXPECT_TRUE
(
std
::
isnan
(
out
[
i
++
]))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
#else
// NOTE: Host and Device have different behavior.
// Device returns NaN, while Host returns Max (saturation to finite value).
EXPECT_EQ
(
out
[
i
++
],
type_convert
<
float
>
(
ck
::
NumericLimits
<
f4_t
>::
Max
()))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
EXPECT_EQ
(
out
[
i
++
],
type_convert
<
float
>
(
ck
::
NumericLimits
<
f4_t
>::
Max
()))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
EXPECT_EQ
(
out
[
i
++
],
type_convert
<
float
>
(
ck
::
NumericLimits
<
f4_t
>::
Max
()))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
EXPECT_EQ
(
out
[
i
++
],
type_convert
<
float
>
(
ck
::
NumericLimits
<
f4_t
>::
Lowest
()))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
#endif
EXPECT_EQ
(
out
[
i
++
],
type_convert
<
float
>
(
type_convert
<
f4_t
>
(
5.0
f
)))
<<
"out[i-1]: "
<<
out
[
i
-
1
];
...
...
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