Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ed9e2d9
Fix maxrms computation
Beanavil Mar 13, 2025
0ecf7af
Do not use results to normalize the residuals' stddev
Beanavil Mar 12, 2025
5b3af57
Merge commit '0ecf7aff7f1d311cc47d26524e7059d4e1c25c54' into import/d…
assistant-librarian[bot] Jul 28, 2025
3b83d38
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
JonathanLichtnerAMD Oct 10, 2025
37be11f
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
MiloLurati Dec 17, 2025
65c227b
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 6, 2026
d4ac99b
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 12, 2026
457bd5c
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 16, 2026
67a5555
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 17, 2026
a7189dc
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 17, 2026
400e60d
Try disabling gfx942 WRW BF16 option override
sikba Feb 20, 2026
5bb5164
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 20, 2026
5650f61
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 22, 2026
ae98543
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 25, 2026
44618ec
Revert "Try disabling gfx942 WRW BF16 option override"
sikba Feb 26, 2026
ca44619
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Feb 26, 2026
321eb6e
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Mar 2, 2026
0d7ef42
update normalizer to give absRMS when small ref data
sikba Mar 10, 2026
b6f6ea5
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Apr 2, 2026
2d0a99e
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Apr 16, 2026
8b35dd1
Revert "update normalizer to give absRMS when small ref data"
sikba Apr 17, 2026
58c20cd
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Apr 17, 2026
ed45f6b
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Apr 20, 2026
e6259be
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba Apr 21, 2026
9e230ad
Merge branch 'develop' into import/develop/StreamHPC_MIOpen/miopen-er…
sikba May 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions projects/miopen/driver/bn_driver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2072,9 +2072,8 @@ int BatchNormDriver<TInput, Tref, TAcc, TScaleBias, TOut>::VerifyBackward()
if(!back)
return miopenStatusSuccess;

const Tref maxrms =
static_cast<Tref>(((sizeof(TInput) == 4) ? RMSTOL_FP32 : RMSTOL_FP16) * 1000);
bool anError = false;
const Tref maxrms = static_cast<Tref>((sizeof(TInput) == 4) ? RMSTOL_FP32 : RMSTOL_FP16);
bool anError = false;

RunBackwardCPU();

Expand Down
24 changes: 13 additions & 11 deletions projects/miopen/test/verify.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,23 +223,25 @@ std::size_t mismatch_diff(R1&& r1, R2&& r2, T diff)
float_equal, diff, std::bind(abs_diff, std::placeholders::_1, std::placeholders::_2)));
}

template <class R1, class R2>
double rms_range(R1&& r1, R2&& r2)
// Reference values are 'ref', observed (measured) values are 'obs'.
template <class RefType, class ObsType>
double rms_range(RefType&& ref, ObsType&& obs)
{
std::size_t n = range_distance(r1);
if(n == range_distance(r2))
std::size_t n = range_distance(ref);
if(n == range_distance(obs))
{
if(n == 0)
return 0;
double square_difference = range_product(r1, r2, 0.0, sum_fn{}, square_diff);
double mag1 = static_cast<double>(*std::max_element(r1.begin(), r1.end(), compare_mag));
double mag2 = static_cast<double>(*std::max_element(r2.begin(), r2.end(), compare_mag));
double mag =
std::max({std::fabs(mag1), std::fabs(mag2), std::numeric_limits<double>::min()});
return std::sqrt(square_difference) / (std::sqrt(n) * mag);
double square_difference = range_product(ref, obs, 0.0, sum_fn{}, square_diff);
double mag1 = static_cast<double>(*std::max_element(ref.begin(), ref.end(), compare_mag));
// If reference is all 0, avoid dividing by 0 when normalizing
mag1 = (mag1 == 0.0) ? 1.0 : std::fabs(mag1);
double normalizer = std::max(mag1, std::numeric_limits<double>::min());

return std::sqrt(square_difference) / (std::sqrt(n) * normalizer);
}
else
return double(std::numeric_limits<range_value<R1>>::max());
return double(std::numeric_limits<range_value<RefType>>::max());
}
} // namespace miopen
#endif
Loading