Commit 994d24b6 authored by Umang Yadav's avatar Umang Yadav
Browse files

use helper function to determine gfx940

parent fe585d42
...@@ -49,6 +49,12 @@ std::string get_device_name() ...@@ -49,6 +49,12 @@ std::string get_device_name()
return props.gcnArchName; return props.gcnArchName;
} }
bool gfx_has_fp8_intrinsics()
{
const auto device_name = trim(split_string(get_device_name(), ':').front());
return (starts_with(device_name, "gfx9") and device_name >= "gfx940");
}
} // namespace gpu } // namespace gpu
} // namespace MIGRAPHX_INLINE_NS } // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx } // namespace migraphx
...@@ -37,6 +37,8 @@ MIGRAPHX_GPU_EXPORT std::string get_device_name(); ...@@ -37,6 +37,8 @@ MIGRAPHX_GPU_EXPORT std::string get_device_name();
MIGRAPHX_GPU_EXPORT int get_device_id(); MIGRAPHX_GPU_EXPORT int get_device_id();
MIGRAPHX_GPU_EXPORT bool gfx_has_fp8_intrinsics();
} // namespace gpu } // namespace gpu
} // namespace MIGRAPHX_INLINE_NS } // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx } // namespace migraphx
......
...@@ -58,8 +58,7 @@ bool rocblas_fp8_available() ...@@ -58,8 +58,7 @@ bool rocblas_fp8_available()
#ifndef MIGRAPHX_USE_ROCBLAS_FP8_API #ifndef MIGRAPHX_USE_ROCBLAS_FP8_API
return false; return false;
#else #else
const auto device_name = trim(split_string(get_device_name(), ':').front()); return gfx_has_fp8_intrinsics();
return (starts_with(device_name, "gfx9") and device_name >= "gfx940");
#endif #endif
} }
......
...@@ -106,13 +106,15 @@ std::vector<pass> target::get_passes(migraphx::context& gctx, const compile_opti ...@@ -106,13 +106,15 @@ std::vector<pass> target::get_passes(migraphx::context& gctx, const compile_opti
unsupported_types.erase(shape::type_t::uint8_type); unsupported_types.erase(shape::type_t::uint8_type);
unsupported_types.erase(shape::type_t::int32_type); unsupported_types.erase(shape::type_t::int32_type);
unsupported_types.erase(shape::type_t::tuple_type); unsupported_types.erase(shape::type_t::tuple_type);
// whiltelist supported Ops for the FP8
std::set<std::string> unsupported_fp8_ops = {}; std::set<std::string> unsupported_fp8_ops = {};
if(not gpu::rocblas_fp8_available()) if(not gpu::rocblas_fp8_available())
{ {
unsupported_fp8_ops.insert("dot"); unsupported_fp8_ops.insert("dot");
} }
// MIOpen doesn't have support for fp8 pooling yet.
unsupported_fp8_ops.insert("pooling"); unsupported_fp8_ops.insert("pooling");
if(not starts_with(gpu::get_device_name(), "gfx94")) if(not gpu::gfx_has_fp8_intrinsics())
{ {
unsupported_fp8_ops.insert("conv"); unsupported_fp8_ops.insert("conv");
unsupported_fp8_ops.insert("quant_conv"); unsupported_fp8_ops.insert("quant_conv");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment