mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-05 14:11:29 +00:00
MX GEMM - FP6 Support in GEMM MX v3 Pipeline (#2481)
* Add GEMM MX BF6 example * Fix BF6 type_convert * Add type_convert for bf16x6 * Add compare operator to f4x2_pk_t * Update README for 67_gemm_microscaling * Fix host tensor initialization with integer values for FP8
This commit is contained in:
committed by
GitHub
parent
d239b91fd5
commit
518dc21ae8
@@ -550,7 +550,14 @@ struct Tensor
|
||||
auto dis_ = dis; // copy
|
||||
g_.discard(ib_begin * BLOCK_SIZE * ck::packed_size_v<T>);
|
||||
auto t_fn = [&]() {
|
||||
if constexpr(ck::packed_size_v<T> == 1)
|
||||
// As user can pass integer distribution in dis, we must ensure that the correct
|
||||
// constructor/converter is called at all times. For f4/f6/f8 types, to ensure
|
||||
// correct results, we convert from float to the target type. In these cases
|
||||
// integer constructors are interpreted as direct initialization of the internal
|
||||
// storage with binary values instead of treating integers as subset of floats.
|
||||
if constexpr(ck::is_same_v<T, ck::f8_t> || ck::is_same_v<T, ck::bf8_t>)
|
||||
return ck::type_convert<T>(static_cast<float>(fn(dis_(g_))));
|
||||
else if constexpr(ck::packed_size_v<T> == 1)
|
||||
return ck::type_convert<T>(fn(dis_(g_)));
|
||||
else if constexpr(ck::is_same_v<T, ck::f4x2_pk_t>)
|
||||
return ck::f4x2_pk_t{ck::type_convert<ck::f4x2_t>(
|
||||
|
||||
Reference in New Issue
Block a user