-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Open
Labels
Description
This is a known issue, but there's no open ticket about it, so here we go: Core.Intrinsics.have_fma(Float16)
always returns false also on hardware which natively supports this datatype:
julia/src/runtime_intrinsics.c
Lines 1759 to 1768 in a5abb6f
JL_DLLEXPORT jl_value_t *jl_have_fma(jl_value_t *typ) | |
{ | |
JL_TYPECHK(have_fma, datatype, typ); // TODO what about float16/bfloat16? | |
if (typ == (jl_value_t*)jl_float32_type) | |
return jl_cpu_has_fma(32); | |
else if (typ == (jl_value_t*)jl_float64_type) | |
return jl_cpu_has_fma(64); | |
else | |
return jl_false; | |
} |
fma
, muladd
actually uses half-precision fmadd
instructions on hardware with native fp16: #57041 (comment)
This issue should hopefully be addressed by #57049.