diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 1fd5df2d..5f40dd5f 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -62,19 +62,23 @@ jobs:
 
   miri:
     if: ( ! github.event.pull_request.draft )
-    name: "Miri"
+    name: "Test with Miri"
     runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        target: [x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu]
     steps:
       - uses: actions/checkout@v4
 
-      - name: Install Miri
+      - name: Install Rust nightly with Miri
+        uses: dtolnay/rust-toolchain@stable
+        with:
+          toolchain: nightly
+          components: miri
+
+      - uses: Swatinem/rust-cache@v2.7.3
+
+      - name: Test with Miri on ${{ matrix.target }}
         run: |
-          rustup toolchain install nightly --component miri
-          rustup override set nightly
-          cargo miri setup
-      
-      - name: Test with Miri on x86_64
-        run: cargo miri test -p clmul -p matrix-transpose --target x86_64-unknown-linux-gnu
-
-      - name: Test with Miri on aarch64
-        run: cargo miri test -p clmul -p matrix-transpose --target aarch64-unknown-linux-gnu
\ No newline at end of file
+          cargo version --verbose
+          cargo miri test -p clmul -p matrix-transpose --target ${{ matrix.target }}