mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-06-06 15:54:31 +00:00
Fix device tests
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -309,21 +309,14 @@ TEST(MXFP4, DeviceScaledConvert)
|
||||
|
||||
/// Test round to nearest even
|
||||
EXPECT_EQ(out[i++], 24.0f / 4.0f) << "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.0f)))
|
||||
<< "out[i-1]: " << out[i - 1];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user