-
Couldn't load subscription status.
- Fork 35
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Channels are a key abstraction of mlir-air, but there are few examples for how to use them. This issue is a place to discuss which examples are needed to show how channels work, and which of those examples are implemented.
Functional Examples
- Herd2Herd (core in herd0 to core in herd1 using L1 data) First channel programming example #636
- Channel bundling (using sizes/indices) Programming Example using
ChannelOpsizeParameter #642 - Hierarchical (launch -> segment -> herd) Channel Example: Hierarchical - Launch to Segment to Herd and back #661
- Broadcast to multiple workers in same herd Channel Broadcast Examples #688 Channel Broadcast Examples #689
- Broadcast to multiple herds Channel Broadcast Examples #688 Channel Broadcast Examples #689
- Intra-Herd Communication: Worker to worker (Channel Examples: Worker-to-self, Worker-to-worker #653, Channel example worker to worker fix, minor fixes for other examples #697, Channel example worker to worker fix, minor fixes for other examples #697, Channel Operations May Fail Depending on
DeallocOp()Placement #660) - Overly simplistic sliding window example - does not yet support data streaming Channel Example: Sliding Window #704
Failing Examples
- Intra-Herd Communication: Worker to self (Worker-to-Self Channel Example #654, Channel Examples: Worker-to-self, Worker-to-worker #653, Access L2 Segment Allocation in Herd with Python Example #668, Access memory allocated in segment in the herd #666)
- Create basic example with two segments (something evens simpler that doesn't use channels, because this is largely untested) (Examples using Multiple Segments #663)
- L1-L1 (worker to worker, where the workers are in herds in the different segments) (Examples using Multiple Segments #663) (Python Multiple Segment Examples #665)
Not-Yet Implemented Examples
- L2-L2 (from segment to segment directly) [Deferring on this indefinitely, until multiple segments are supported] (Python Multiple Segment Examples #665)
Discussion Topics
Is Launch2Launch Desirable?
- Some trouble creating multiple launches, so this may be a little early in terms of creating a launch2launch channel communication (see issue Multiple launches, herd with single core #627)
- What information would you need to scheduling launches in order to do this?
Synchronous vs Asynchronous
- Might one day be good to have some examples where the user explicitly sets async tokens on channel operations, but this capability isn't implemented yet in the air dependency pass.
Placement
- An example doing something specific with channels based on placement of resources?
What is the best way to implement a sliding window of data with channels?
- Do we need some sort of
peek()functionality?
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request