-
Notifications
You must be signed in to change notification settings - Fork 353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Refactor] Just-In-Time Compilation Pipeline #1313
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only some typos as usual :)
/// | ||
/// Notes: | ||
/// | ||
/// This type isn't reaponsable for creating [shader bindings](super::Binding) and figuring out which |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
responsible
/// | ||
/// Notes: | ||
/// | ||
/// This should only by used when doing compilation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
be
} | ||
} | ||
|
||
/// Returns the variables and operations to be decled and executed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
declared, i guess?
Operation::Operator(op) => Operation::Operator(op.vectorize(vectorization)), | ||
Operation::Algorithm(op) => Operation::Algorithm(op.vectorize(vectorization)), | ||
Operation::Metadata(_) => panic!( | ||
"Metadata can't be vectorize, they should only be generated after vectorization." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vectorized
"Metadata can't be vectorize, they should only be generated after vectorization." | ||
), | ||
Operation::Loop(_) => panic!( | ||
"Loops can't be vectorize, they should only be generated after vectorization." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vectorized
use burn_fusion::TensorDescription; | ||
use serde::{Deserialize, Serialize}; | ||
|
||
/// A trace encaptulate all information necessary to perform the compilation and execution of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
encapsulates
Refactor how the compilation pipeline works. With this change, the lower-level compilers have fewer things to do, while the high-level
gpu
representation supports more operations that can be expanded at compile time to lower-level instructions.This is the first step in implementing algorithms at the
gpu
representation level instead of at thewgsl
level. More refactoring PRs will be done before migrating more algorithms.