[PATCH] D73595: [mlir][Linalg][doc] Add Design Document for the Linalg Dialect
River Riddle via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 28 17:56:02 PST 2020
rriddle added a comment.
Started making my way through it, very interesting doc!
================
Comment at: mlir/docs/Dialects/Linalg.md:3
-To generate the documentation:
+Table of contents:
+1. [Introduction: Inception and Evolution](#introduction)
----------------
It'd be really nice if we can use a TOC equivalent.
================
Comment at: mlir/docs/Dialects/Linalg.md:34
+ 6. [Property 6: Perfectly Nested Writes To The Whole Output Operands](#prop6)
+ 8. [Putting it Together](#summary)
+ 2. [Data Representation: Views](#views)
----------------
Is there a 7?
================
Comment at: mlir/docs/Dialects/Linalg.md:47
+
+In his latest MLIR Open Design meeting presentation, Chris laid out a compelling
+[vision](https://drive.google.com/corp/drive/folders/1C3SEjO4u9E0UB2IwztSxaovFTSATDxT6)
----------------
This seems like it's going to be out-of-date soon and feels weird to include for the documentation of a dialect.
================
Comment at: mlir/docs/Dialects/Linalg.md:51
+the infrastructure and be driven by search. The MLIR Linalg dialect aims at bringing an answer
+to the higher-level codegen problem. This document describes the key design principles
+that led to the existing implementation of Linalg and aims at exposing the tradeoffs
----------------
Double space?
================
Comment at: mlir/docs/Dialects/Linalg.md:59
+the field, from which it seeks to learn key lessons. This documentation
+and introspection effort also comes in the context of the proposal for a
+working group for discussing the [Development of high-level Tensor Compute
----------------
This start of this paragraph seems like it's describing why you are writing this documentation, which seems weird for a doc about the dialect.
================
Comment at: mlir/docs/Dialects/Linalg.md:74
+into fast library implementations when available. Linalg **defines ops and
+transformations declaratively** and was originally restricted to ops with
+*linear-algebra like* semantics (`pointwise`, `matmul`, `conv`...). This
----------------
Extra space here.
================
Comment at: mlir/docs/Dialects/Linalg.md:92
+This information captures the legality and applicability of transformations and
+is **not lost by lowering prematurely to loop or CFG form**. The key
+transformations are designed so as to **preserve this information** as long as
----------------
Extra space before "The"
================
Comment at: mlir/docs/Dialects/Linalg.md:118
+It is complemented by the
+[Vector dialect](https://mlir.llvm.org/docs/Dialects/Vector/),
+which define structured operations on vectors, following the same rationale and
----------------
Prefer relative paths on all of the things that can use it
================
Comment at: mlir/docs/Dialects/Linalg.md:140
+- the `linalg.for`, `linalg.load` and `linalg.store` ops evolved into a prelude
+to the *structured control flow* dialect (currently still named `LoopOps`).
+More components can be extracted, redesigned and generalized when new uses or
----------------
I'd remove "currently still"
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D73595/new/
https://reviews.llvm.org/D73595
More information about the llvm-commits
mailing list