Migrate website blog to use supported plugin. (#14828)

I followed
https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/ to
migrate our existing blog posts to use the new blog plugin provided by
mkdocs-material. We've considered removing these old posts / the blog
entirely, but I still like hosting the content and think we should write
new posts at some point.

* Current blog: https://openxla.github.io/iree/community/blog/

![image](https://github.com/openxla/iree/assets/4010439/49093a62-f628-4a31-aadf-ce6b628a852c)

* New blog preview: https://scotttodd.github.io/iree/community/blog/

![image](https://github.com/openxla/iree/assets/4010439/27d89753-fcbd-49e2-a7f6-79cf367fbfba)

The plugin shows author info, preview excerpts, estimated read times,
etc. :


![image](https://github.com/openxla/iree/assets/4010439/f366ff24-4277-406c-8441-a2cd27cd15d8)


---

Also add a tags page and bump mkdocs-material version.
diff --git a/docs/website/docs/community/blog/.authors.yml b/docs/website/docs/community/blog/.authors.yml
new file mode 100644
index 0000000..45df1e3
--- /dev/null
+++ b/docs/website/docs/community/blog/.authors.yml
@@ -0,0 +1,30 @@
+# https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#adding-authors
+
+authors:
+  # Alphabetically sorted mapping from (usually GitHub) usernames to author
+  # information.
+
+  ataei:
+    name: Ahmed Taei
+    description: Software Engineer
+    avatar: https://github.com/ataei.png
+
+  bjacob:
+    name: Benoit Jacob
+    description: Software Engineer
+    avatar: https://github.com/bjacob.png
+
+  jennik:
+    name: Jenni Kilduff
+    description: Software Engineer
+    avatar: https://github.com/not-jenni.png
+
+  rsuderman:
+    name: Rob Suderman
+    description: Software Engineer
+    avatar: https://github.com/rsuderman.png
+
+  thomasraoux:
+    name: Thomas Raoux
+    description: Software Engineer
+    avatar: https://github.com/thomasraoux.png
diff --git a/docs/website/docs/community/blog/index.md b/docs/website/docs/community/blog/index.md
index f71d626..8a0a8d8 100644
--- a/docs/website/docs/community/blog/index.md
+++ b/docs/website/docs/community/blog/index.md
@@ -1,7 +1,9 @@
+---
+icon: octicons/book-16
+---
+
 # Blog
 
-Latest posts from the IREE team
+Updates from the IREE team
 
-* 2021-10-15: [CUDA backend](./2021-10-15-cuda-backend.md)
-* 2021-10-13: [Work in progress on Matrix Multiplication on CPU](./2021-10-13-mmt4d.md)
-* 2021-07-19: [TFLite Support via TOSA](./2021-07-19-tflite-tosa.md)
+---
diff --git a/docs/website/docs/community/blog/2021-10-15-cuda-backend.md b/docs/website/docs/community/blog/posts/cuda-backend.md
similarity index 96%
rename from docs/website/docs/community/blog/2021-10-15-cuda-backend.md
rename to docs/website/docs/community/blog/posts/cuda-backend.md
index 8d255f5..9c3c56c 100644
--- a/docs/website/docs/community/blog/2021-10-15-cuda-backend.md
+++ b/docs/website/docs/community/blog/posts/cuda-backend.md
@@ -1,13 +1,15 @@
 ---
+date: 2021-10-15
+authors:
+  - thomasraoux
+categories:
+  - Platforms
 tags:
   - GPU
   - CUDA
 ---
 
-Friday, October 15, 2021<br>
-By Thomas Raoux
-
-# CUDA Backend in IREE
+# CUDA backend
 
 IREE is being designed with re-targetability as a core goal: it should be
 possible to use IREE to target a broad spectrum of power regimes, from embedded
@@ -20,6 +22,8 @@
 IREE and used it to train [BERT](https://en.wikipedia.org/wiki/BERT_(language_model)),
 then shares some metrics and next steps.
 
+<!-- more -->
+
 ## Bring up
 
 ### HAL support
@@ -40,7 +44,7 @@
 [CTS tests](https://github.com/openxla/iree/blob/main/runtime/src/iree/hal/cts/README.md).
 Those can be run to make sure a system has the required CUDA support.
 
- ![Compilation flow](./2021-10-15-cuda-compiler-flow.png){ align=left }
+ ![Compilation flow](./cuda-compiler-flow.png){ align=left }
 
 ### Compiler support
 
@@ -89,7 +93,7 @@
 Together those 3 steps are enough to provide most of the functionality and we
 can now successfully compile full models.
 
-![Compilation diagram](./2021-10-15-cuda-bring_up.png)
+![Compilation diagram](./cuda-bring_up.png)
 
 The steps to reproduce running a simple op end to end through CUDA backend are
 described [here](https://github.com/openxla/iree/blob/main/docs/developers/design_docs/cuda_backend.md#example).
@@ -175,7 +179,7 @@
 
 Those different transformations compose to this flow:
 
-![Compilation diagram](./2021-10-15-cuda-optimization-flow.png)
+![Compilation diagram](./cuda-optimization-flow.png)
 
 The full dump step by step of a linalg.matmul operation can be found [here](https://gist.github.com/ThomasRaoux/8bded9d7c3f7426fc1ca8598deb53220).
 
@@ -186,7 +190,7 @@
 We compare the performance of a single GEMM operation to highly optimized
 library cuBLAS using [mmperf framework](https://github.com/mmperf/mmperf).
 
-![Compilation diagram](./2021-10-15-cuda-memperf.png)
+![Compilation diagram](./cuda-memperf.png)
 
 The graph can be re-produced based on [instructions on mmperf](https://github.com/mmperf/mmperf#compare-mmperf-results-among-different-backends)
 
diff --git a/docs/website/docs/community/blog/2021-10-15-cuda-bring_up.png b/docs/website/docs/community/blog/posts/cuda-bring_up.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-15-cuda-bring_up.png
rename to docs/website/docs/community/blog/posts/cuda-bring_up.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-10-15-cuda-compiler-flow.png b/docs/website/docs/community/blog/posts/cuda-compiler-flow.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-15-cuda-compiler-flow.png
rename to docs/website/docs/community/blog/posts/cuda-compiler-flow.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-10-15-cuda-memperf.png b/docs/website/docs/community/blog/posts/cuda-memperf.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-15-cuda-memperf.png
rename to docs/website/docs/community/blog/posts/cuda-memperf.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-10-15-cuda-optimization-flow.png b/docs/website/docs/community/blog/posts/cuda-optimization-flow.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-15-cuda-optimization-flow.png
rename to docs/website/docs/community/blog/posts/cuda-optimization-flow.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-10-13-mmt4d-4x4_mmt4d.png b/docs/website/docs/community/blog/posts/mmt4d-4x4_mmt4d.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-13-mmt4d-4x4_mmt4d.png
rename to docs/website/docs/community/blog/posts/mmt4d-4x4_mmt4d.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-10-13-mmt4d-4x4_tiled.png b/docs/website/docs/community/blog/posts/mmt4d-4x4_tiled.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-13-mmt4d-4x4_tiled.png
rename to docs/website/docs/community/blog/posts/mmt4d-4x4_tiled.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-10-13-mmt4d-L1-dcache-load-misses.png b/docs/website/docs/community/blog/posts/mmt4d-L1-dcache-load-misses.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-13-mmt4d-L1-dcache-load-misses.png
rename to docs/website/docs/community/blog/posts/mmt4d-L1-dcache-load-misses.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-10-13-mmt4d-graph_flow.svg b/docs/website/docs/community/blog/posts/mmt4d-graph_flow.svg
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-13-mmt4d-graph_flow.svg
rename to docs/website/docs/community/blog/posts/mmt4d-graph_flow.svg
diff --git a/docs/website/docs/community/blog/2021-10-13-mmt4d-mmt4d_vs_matmul.png b/docs/website/docs/community/blog/posts/mmt4d-mmt4d_vs_matmul.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-10-13-mmt4d-mmt4d_vs_matmul.png
rename to docs/website/docs/community/blog/posts/mmt4d-mmt4d_vs_matmul.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-10-13-mmt4d.md b/docs/website/docs/community/blog/posts/mmt4d.md
similarity index 96%
rename from docs/website/docs/community/blog/2021-10-13-mmt4d.md
rename to docs/website/docs/community/blog/posts/mmt4d.md
index 1029922..b8c3b88 100644
--- a/docs/website/docs/community/blog/2021-10-13-mmt4d.md
+++ b/docs/website/docs/community/blog/posts/mmt4d.md
@@ -1,12 +1,15 @@
 ---
+date: 2021-10-13
+authors:
+  - ataei
+  - bjacob
+categories:
+  - Performance
 tags:
   - CPU
 ---
 
-Wednesday, October 13, 2021<br>
-By Ahmed Taei, Benoit Jacob
-
-# Work in progress on Matrix Multiplication on CPU
+# Matrix Multiplication with MMT4D
 
 ## Introduction
 
@@ -29,6 +32,8 @@
 [`linalg.matmul`](https://github.com/llvm/llvm-project/blob/6e98ec9b2099475c057612a7af680a27c0b91a24/mlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py#L9-L21)
 that is designed from the ground up for these efficiency considerations.
 
+<!-- more -->
+
 We are still in the early implementation phase of this
 [`linalg.mmt4d`](https://github.com/llvm/llvm-project/blob/6e98ec9b2099475c057612a7af680a27c0b91a24/mlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py#L54-L71)
 plan, but we feel confident that we know where we are going because what we are
@@ -150,7 +155,7 @@
 The following example illustrates that. In these diagrams, each matrix element
 is rendered its memory offset.
 
-![4x4-tiled](2021-10-13-mmt4d-4x4_tiled.png)
+![4x4-tiled](mmt4d-4x4_tiled.png)
 
 To compute the 2x2 block in the destination matrix, we will have to load two
 yellow blocks from LHS, RHS matrices respectively compute their matmul results
@@ -158,7 +163,7 @@
 tile loads data that is not contiguous. It would be better if we rearranged the
 elements in the following layout:
 
-![4x4-mmt4d](2021-10-13-mmt4d-4x4_mmt4d.png)
+![4x4-mmt4d](mmt4d-4x4_mmt4d.png)
 
 Now tiles are stored contiguously in memory and the kernel can simply load them
 from memory into the registers that will be directly consumed by the SIMD
@@ -174,7 +179,7 @@
 tileable and decompose well. Thankfully, the transformation from 2D to 4D can be
 written as a reshape followed by a transpose as in the following digram:
 
-![graphviz](2021-10-13-mmt4d-graph_flow.svg)
+![graphviz](mmt4d-graph_flow.svg)
 
 So we can think of the outermost two dimensions of the 4D representations as the
 tile position in the overall matrix, and the innermost two as the element
@@ -238,7 +243,7 @@
 showed that mmt4d is faster than the existing matmul implementation for bigger
 matrices as we can see the in the following chart:
 
-![performance](2021-10-13-mmt4d-mmt4d_vs_matmul.png)
+![performance](mmt4d-mmt4d_vs_matmul.png)
 
 The SIMD instruction being used here is the simplest kind, a `vector*scalar`
 multiplication, and the storage orders of the matrices allow the existing
@@ -248,7 +253,7 @@
 understand why mmt4d is faster in that case, we collected statistics of L1 cache
 misses:
 
-![load-misses](2021-10-13-mmt4d-L1-dcache-load-misses.png)
+![load-misses](mmt4d-L1-dcache-load-misses.png)
 
 This shows that in this case, the better cache-friendliness of mmt4d, thanks to
 its simple contiguous memory access pattern, accounts for its higher
diff --git a/docs/website/docs/community/blog/2021-07-19-tflite-tosa-compilation-diagram.png b/docs/website/docs/community/blog/posts/tflite-tosa-compilation-diagram.png
similarity index 100%
rename from docs/website/docs/community/blog/2021-07-19-tflite-tosa-compilation-diagram.png
rename to docs/website/docs/community/blog/posts/tflite-tosa-compilation-diagram.png
Binary files differ
diff --git a/docs/website/docs/community/blog/2021-07-19-tflite-tosa.md b/docs/website/docs/community/blog/posts/tflite-tosa.md
similarity index 89%
rename from docs/website/docs/community/blog/2021-07-19-tflite-tosa.md
rename to docs/website/docs/community/blog/posts/tflite-tosa.md
index 00403c4..9f71e57 100644
--- a/docs/website/docs/community/blog/2021-07-19-tflite-tosa.md
+++ b/docs/website/docs/community/blog/posts/tflite-tosa.md
@@ -1,12 +1,15 @@
 ---
+date: 2021-07-19
+authors:
+  - rsuderman
+  - jennik
+categories:
+  - Frontends
 tags:
   - TensorFlow
 ---
 
-Monday, July 19, 2021<br>
-By Rob Suderman and Jenni Kilduff
-
-# TFLite Support via TOSA
+# TFLite support via TOSA
 
 IREE can now execute [TensorFlow Lite](https://www.tensorflow.org/lite)
 (TFLite) models through the use of
@@ -17,7 +20,9 @@
 FlatBuffer and compile it to TOSA IR, which IREE takes as an input format to
 compile to its various backends.
 
-![Compilation diagram](./2021-07-19-tflite-tosa-compilation-diagram.png){align=left}
+<!-- more -->
+
+![Compilation diagram](./tflite-tosa-compilation-diagram.png){align=left}
 
 Using TFLite as a frontend for IREE provides an alternative ingestion method for
 already existing models that could benefit from IREE’s design. This enables
@@ -46,4 +51,4 @@
 [Android Java app](https://github.com/not-jenni/iree-android-tflite-demo) that
 was forked from an existing TFLite demo app, swapping out the TFLite library
 for our own AAR.  More information on IREE’s TFLite frontend is available
-[here](../../guides/ml-frameworks/tflite.md).
+[here](../../../guides/ml-frameworks/tflite.md).
diff --git a/docs/website/docs/community/tags.md b/docs/website/docs/community/tags.md
new file mode 100644
index 0000000..72aebd5
--- /dev/null
+++ b/docs/website/docs/community/tags.md
@@ -0,0 +1,9 @@
+---
+icon: octicons/tag-16
+---
+
+# Tags
+
+Website pages sorted by tag:
+
+[TAGS]
diff --git a/docs/website/mkdocs.yml b/docs/website/mkdocs.yml
index 1b6a147..20576e4 100644
--- a/docs/website/mkdocs.yml
+++ b/docs/website/mkdocs.yml
@@ -167,16 +167,21 @@
       - "community/index.md"
       - "Blog":
           - "community/blog/index.md"
-          - CUDA backend: "community/blog/2021-10-15-cuda-backend.md"
-          - Work in progress on Matrix Multiplication on CPU: "community/blog/2021-10-13-mmt4d.md"
-          - TFLite Support via TOSA: "community/blog/2021-07-19-tflite-tosa.md"
-
+      - "community/tags.md"
 plugins:
+  # https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/
+  - blog:
+      blog_dir: "community/blog"
+      blog_toc: true
+      post_url_date_format: yyyy-MM-dd
+      post_url_format: "{date}-{slug}"
+
   # https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/
   - search
 
   # https://squidfunk.github.io/mkdocs-material/setup/setting-up-tags/
-  - tags
+  - tags:
+      tags_file: community/tags.md
 
   # https://github.com/mkdocs/mkdocs-redirects
   - redirects:
@@ -204,6 +209,9 @@
 
         # "blog/" moved under "community/"
         "blog/index.md": "community/blog/index.md"
-        "blog/2021-07-19-tflite-tosa.md": "community/blog/2021-07-19-tflite-tosa.md"
-        "blog/2021-10-13-mmt4d.md": "community/blog/2021-10-13-mmt4d.md"
-        "blog/2021-10-15-cuda-backend.md": "community/blog/2021-10-15-cuda-backend.md"
+        "blog/2021-07-19-tflite-tosa.md": "community/blog/posts/tflite-tosa.md"
+        "blog/2021-10-13-mmt4d.md": "community/blog/posts/mmt4d.md"
+        "blog/2021-10-15-cuda-backend.md": "community/blog/posts/cuda-backend.md"
+        # Some blog post names/paths changed when setting up the blog plugin
+        "community/blog/2021-07-19-tflite-tosa.md": "community/blog/posts/tflite-tosa.md"
+        "community/blog/2021-10-13-mmt4d.md": "community/blog/posts/mmt4d.md"
diff --git a/docs/website/requirements.txt b/docs/website/requirements.txt
index 909284b..a1222ca 100644
--- a/docs/website/requirements.txt
+++ b/docs/website/requirements.txt
@@ -1,2 +1,2 @@
-mkdocs-material==9.2.0b1
+mkdocs-material==9.2.3
 mkdocs-redirects==1.2.1