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/

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

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

---
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.
- { align=left }
+ { 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.
-
+
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:
-
+
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).
-
+
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.
-
+
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:
-
+
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:
-
+
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:
-
+
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:
-
+
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.
-{align=left}
+<!-- more -->
+
+{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