Comments (3)
It seems like this really calls for inferring a property on that IterDomain based on later uses within the Fusion which is a topic that comes up for dynamic shapes with other ops like view also. For instance we might mark the ID as "MaybeBroadcast" then when it is used later we would infer some potentially complicated relations between the inputs and the sizes and types of IDs. For pointwise binary ops the matching domains would imply that they match or at least one is a broadcast, for example. When we have processed the whole graph we can try and satisfy those relations and proceed as usual. So this issue is related to IterDomain graphs but with the new wrinkle that we may need to change the graph by changing whether to mark as bcast.
Exactly. Here's what I'm prototyping: https://github.com/NVIDIA/Fuser/compare/dynamic_reshape. I added a new IterType called Symbolic
.
from fuser.
This functionality has existed for some time now.
from fuser.
It seems like this really calls for inferring a property on that IterDomain based on later uses within the Fusion which is a topic that comes up for dynamic shapes with other ops like view also. For instance we might mark the ID as "MaybeBroadcast" then when it is used later we would infer some potentially complicated relations between the inputs and the sizes and types of IDs. For pointwise binary ops the matching domains would imply that they match or at least one is a broadcast, for example. When we have processed the whole graph we can try and satisfy those relations and proceed as usual. So this issue is related to IterDomain graphs but with the new wrinkle that we may need to change the graph by changing whether to mark as bcast.
from fuser.
Related Issues (20)
- [Python Benchmarks] Add a mode to selectively run a few inputs for functionality check
- `RuntimeError: Stride mismatch with contiguity info.` HOT 7
- Squeezed IterDomain ?S536{1} must concretize to IterType::Broadcast but found ?S536{1}. HOT 7
- Invalid input domain extent: 0 HOT 1
- DIDx aware ATen evaluation for matmul and linear. HOT 6
- pad propagation and replay issues. HOT 3
- group norm segmented into pointwise + persistent + pointwise HOT 17
- [obsolete issues]
- `getExprsBetween` is not getting expressions between vals HOT 5
- CUDA NVRTC compile error in `fd.ops.add` HOT 1
- failure in lightning-thunder ci HOT 3
- Almost Exact graph does not map non-size-one broadcast domains HOT 3
- RuntimeError: producer->getMemoryType() == MemoryType::Global HOT 3
- Tracking outer reduction CPP benchmark regressions HOT 2
- Confusing extra epilogue casting loop between lds and stg HOT 2
- Factor out validation from Expr subclass constructors
- Data-driven heuristics HOT 1
- `allocation order inference` should be a hint rather than a requirement.
- matmul expreval cannot handle output stride order
- Segfault on FusionDefinition().define_scalar()
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fuser.