forked from tinygrad/tinygrad
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
This is an umbrella issue to track implementation of ET accelerator backend for tinygrad.
There are three main areas that need to be implemented:
- Device management - maps directly to etrt.
- Allocator - maps directly to etrt.
- Command queue - effectively maps to etrt streams, but there may be lifetime issues and we can run one kernel at a time, probably should start with synchronous implementation.
- Program - maps directly to etrt kernel.
- Compiler - will use custom GNU toolchain.
- Q. Where do we put all the build requirements, like
linker.ld? - Q. Do we include unsupported instruction checker? As part of tests?
- Renderer. The most difficult part. ET runs kernels written in C, but there are enough architectural peculiarities to make it pretty complicated - it's neither "CPU backend", nor very GPU like (pretty close though).
Based on project architecture, ET related changes will likely touch multiple places of the code tree, including some "generic" modules - optimizer, beam search, etc. tinygrad is very fast moving project, so our goal should be to upstream ET related changes as soon as possible and until then - keep et branch in sync with upstream. This may prove a challenge.
Obviously, all tinygrad development guidelines apply.
Metadata
Metadata
Assignees
Labels
No labels