diff --git a/tests/benchdnn/ip/ip.cpp b/tests/benchdnn/ip/ip.cpp index 78e710a2180..b3367917322 100644 --- a/tests/benchdnn/ip/ip.cpp +++ b/tests/benchdnn/ip/ip.cpp @@ -278,7 +278,14 @@ void skip_invalid_prb(const prb_t *prb, res_t *res) {} void setup_cmp(compare::compare_t &cmp, const prb_t *prb, data_kind_t kind, const args_t &ref_args) { - cmp.set_threshold(0.f); + // The nvidia implementation has precision issues in some cases for large problems with post-op sum + if (is_nvidia_gpu() + && prb->attr.post_ops.find(attr_t::post_ops_t::kind_t::SUM) != -1) { + const float trh = epsilon_dt(prb->dt[2]); + cmp.set_threshold(trh); + } else { + cmp.set_threshold(0.f); + } } std::vector supported_exec_args(dir_t dir) {