Skip to content

Commit

Permalink
Suppress MSAN warnings from SVD that are showing up in CI.
Browse files Browse the repository at this point in the history
In our MSAN CI, the copy of LAPACK we use is not MSAN-instrumented, leading to false positives. Suppress those false-positives via annotations.

PiperOrigin-RevId: 712587830
  • Loading branch information
hawkinsp authored and Google-ML-Automation committed Jan 6, 2025
1 parent c39e38f commit d3fdf5a
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions jaxlib/cpu/lapack_kernels.cc
Original file line number Diff line number Diff line change
Expand Up @@ -758,6 +758,35 @@ static ffi::Error SvdKernel(
work_data.get(), &workspace_dim_v,
iwork_data.get(), info_data);
}

// Suppress MSAN warnings when using a copy of LAPACK uninstrumented by
// MSAN.
using T [[maybe_unused]] = typename svd::SVDType<dtype>::ValueType;
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(info_data, sizeof(*info_data));
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(x_out_data,
x_cols_v * x_leading_dim_v * sizeof(T));
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(
singular_values_data, std::min(x_rows_v, x_cols_v) * sizeof(RealType));
if (mode_v == 'A') {
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(
u_data, u_leading_dim_v * x_rows_v * sizeof(T));
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(
vt_data, vt_leading_dim_v * x_cols_v * sizeof(T));
} else if (mode_v == 'O') {
if (x_rows_v < x_cols_v) {
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(
u_data, u_leading_dim_v * x_rows_v * sizeof(T));
} else {
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(
vt_data, vt_leading_dim_v * x_cols_v * sizeof(T));
}
} else if (mode_v == 'S') {
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(
u_data, u_leading_dim_v * std::min(x_rows_v, x_cols_v) * sizeof(T));
ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(
vt_data, vt_leading_dim_v * x_cols_v * sizeof(T));
}

x_out_data += x_out_step;
singular_values_data += singular_values_step;
u_data += u_step;
Expand Down

0 comments on commit d3fdf5a

Please sign in to comment.