From 913db30a72a000b31d1e8620cb9b5d8e02d5b6f1 Mon Sep 17 00:00:00 2001
From: Christian Legnitto <christian@legnitto.com>
Date: Wed, 26 Mar 2025 09:56:33 -0400
Subject: [PATCH] Use a relative error

Hardcoded one drifts when floats are large.

Fixes https://github.com/Rust-GPU/rust-gpu.github.io/issues/73.
---
 blog/2024-11-25-optimizing-matmul/code/bin/blog/src/bin.rs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/blog/2024-11-25-optimizing-matmul/code/bin/blog/src/bin.rs b/blog/2024-11-25-optimizing-matmul/code/bin/blog/src/bin.rs
index f12bcb2..2ddfd1f 100644
--- a/blog/2024-11-25-optimizing-matmul/code/bin/blog/src/bin.rs
+++ b/blog/2024-11-25-optimizing-matmul/code/bin/blog/src/bin.rs
@@ -183,8 +183,9 @@ fn verify_results(a: &[f32], b: &[f32], result: &[f32], m: u32, k: u32, n: u32)
             }
             let actual = result[(i * n + j) as usize];
             let diff = (actual - expected).abs();
+            let rel_error = diff / expected.abs();
             assert!(
-                diff < 1e-3,
+                rel_error < 1e-3,
                 "Mismatch at [{}, {}]: expected {}, got {}",
                 i,
                 j,