Deep Dive — Ivy Documentation (original) (raw)
For general users of the framework, who are mainly concerned with learning how to use Ivy, then the Design section is the best place to start 🙂
This deep dive section is more targeted at people who would like to dive deeper into how Ivy actually works under the hood 🔧
Going through the sections outlined below will get you right into the weeds of the framework 🌱, and hopefully give you a better understanding of what is actually going on behind the scenes 🎬
It’s best to go through the sub-sections from start to finish, but you can also dive in at any stage! We’re excited for you to get involved! 🦾
A quick tour through the codebase
Primary, compositional, mixed, and nestable functions
Ivy goes for the superset when unifying the backend functions
How the backend is set, and what this means for each function type️
Different types of arrays, and how they’re handled
What the ivy.Container
does
How functions infer the correct data type
How functions infer the correct device
How the out
argument is used to specify the output target
How functions are dynamically wrapped at runtime
How the code is automatically formatted
Ivy’s Custom Code Formatters
How to add the correct function arguments
How to properly write docstrings
How to add useful examples to the docstrings
How we’re borrowing the test suite from the Array API Standard
How to add new tests for each Ivy function
How to implement frontend functions
How to add new tests for each frontend function
How to handle exceptions and assertions in a function
Everything about our Gradients API
Everything about modes Ivy can operate in, along with their purposes
How are we building our docs