Skip to content

Updating the roadmap and adding a design roadmap.#1016

Closed
benvanik wants to merge 1 commit intomasterfrom
benvanik-roadmap
Closed

Updating the roadmap and adding a design roadmap.#1016
benvanik wants to merge 1 commit intomasterfrom
benvanik-roadmap

Conversation

@benvanik
Copy link
Copy Markdown
Collaborator

Mostly just a brain dump, but significantly better than nothing and something we can expand on as needed (or link to dedicated docs).

Copy link
Copy Markdown
Collaborator

@stellaraccident stellaraccident left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally LGTM!

Most of the comments are of the form "unlike C++, the English comma operator is a good thing to use" :)

Comment thread docs/roadmap.md Outdated
set of coming features in the [design roadmap](roadmap_design.md).

### Frontend: SavedModel/TF2.0
## Summer 2020
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume you are saying what follows will be true in summer 2020? If so, maybe title this "Expected state: Summer 2020".

This confused me.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, reading the content, should this be "Spring 2020"?

Comment thread docs/roadmap.md Outdated
### Sequencer: IR Refactoring
We want to plug in [Marl](https://github.com/google/marl) to provide CPU-side
work scheduling that matches GPU semantics. This should be roughly equivalent to
performance to Swiftshader executiong SPIR-V however with far less overhead.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... which is not great for the dense kernels... still planning to punch out to RUY or something until that catches up?

Comment thread docs/roadmap.md Outdated

### Sequencer: Dynamic Shapes
A large part of the codegen story for both CPU (via LLVM IR) and GPU (via
SPIR-V) relies on the upstream Linalg dialect and associated lowerings. We are
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread docs/roadmap.md Outdated
@@ -49,21 +58,3 @@ To better engage with the WebGPU and WebML efforts we will be implementing a
SPIR-V kernels as the Vulkan backend but enables us to target Metal, Direct3D
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar? Maybe s/but/, which/

Comment thread docs/roadmap_design.md Outdated
that not been the case. There are discussions happening about an upstream MLIR
[Tensor Compute Primitives](https://llvm.discourse.group/t/development-of-high-level-tensor-compute-primitives-dialect-s-and-transformations/388/)
dialect that HLO can be lowered into, allowing IREE (and other backends) to
decouple themselves from XLA.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and potentially be more easily targetable from the frontends.

Comment thread docs/roadmap_design.md Outdated
### Transient Tensor Ringbuffer
<a id="markdown-transient-tensor-ringbuffer" name="transient-tensor-ringbuffer"></a>

When properly implemented almost all buffers required during execution never
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comma after "implemented"

Comment thread docs/roadmap_design.md
`%sz = std.muli %cst, %dyn_dim : index` bytes doesn't materially change how the
allocations are performed. Since almost all usage involves simple write head
bumps there is no need for ahead-of-time memory planning or large fixed
allocations, and since no buffer within the ringbuffer can alias we can have
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comma after "alias"

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(that'd be a comma splice)

Comment thread docs/roadmap_design.md
runs a dedicated IREE thread to do this, but the expectation is that
applications can often do a better (and importantly more predictable) job.

By utilizing coroutines IREE will have a way to fill traditional pipeline
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comma after "coroutines"

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(that'd be a comma splice)

Comment thread docs/roadmap_design.md
#### Cellular Batching
<a id="markdown-cellular-batching" name="cellular-batching"></a>

Though coroutines help throughput there is a way we've found to reduce latency
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comma after "throughput"

Comment thread docs/roadmap_design.md
<a id="markdown-lowering-to-llvm-ir" name="lowering-to-llvm-ir"></a>

For scenarios where dynamic module loading is not required and entire modules
can be compiled into applications we can lower the VM IR to LLVM IR within
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comma after "applications"

@benvanik benvanik deleted the benvanik-roadmap branch March 22, 2020 01:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants