From 315a828f827e510b2ff1eb50096058a680aea173 Mon Sep 17 00:00:00 2001 From: pctablet505 Date: Thu, 16 Jul 2026 17:33:19 +0530 Subject: [PATCH] #4810 - Use public __half2float instead of private __internal_half2float Both instanceNormalizationPlugin.cu and instanceNormalizationPluginLegacy.cu convert half-precision scale/bias weights to float using __internal_half2float, a private static inline helper defined inside cuda_fp16.hpp rather than part of the public CUDA API. This compiles under nvcc, which brings the helper into scope, but fails under other CUDA-compatible compilers such as clang-CUDA with an undeclared identifier error, and would block a HIP/ROCm port. Wrap the raw bits in a __half_raw and call the public __half2float instead. This performs the same conversion with no change in numeric behavior, but only relies on documented public API. Signed-off-by: pctablet505 --- .../instanceNormalizationPlugin.cu | 4 +++- .../instanceNormalizationPluginLegacy.cu | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugin/instanceNormalizationPlugin/instanceNormalizationPlugin.cu b/plugin/instanceNormalizationPlugin/instanceNormalizationPlugin.cu index f6a24995..48012e1c 100644 --- a/plugin/instanceNormalizationPlugin/instanceNormalizationPlugin.cu +++ b/plugin/instanceNormalizationPlugin/instanceNormalizationPlugin.cu @@ -69,7 +69,9 @@ InstanceNormalizationV3Plugin::InstanceNormalizationV3Plugin( for (int32_t c = 0; c < input.count; ++c) { auto const value = static_cast(input.values); - output.push_back(__internal_half2float(value[c])); + __half_raw raw; + raw.x = value[c]; + output.push_back(__half2float(raw)); } } else diff --git a/plugin/instanceNormalizationPlugin/instanceNormalizationPluginLegacy.cu b/plugin/instanceNormalizationPlugin/instanceNormalizationPluginLegacy.cu index 8f928818..c0c6badb 100644 --- a/plugin/instanceNormalizationPlugin/instanceNormalizationPluginLegacy.cu +++ b/plugin/instanceNormalizationPlugin/instanceNormalizationPluginLegacy.cu @@ -72,7 +72,9 @@ InstanceNormalizationPlugin::InstanceNormalizationPlugin( for (int32_t c = 0; c < input.count; ++c) { auto const value = static_cast(input.values); - output.push_back(__internal_half2float(value[c])); + __half_raw raw; + raw.x = value[c]; + output.push_back(__half2float(raw)); } } else