Dyad: Making Hardware as Easy as Software
Engineering is at a crossroads. The traditional ways of engineering and using expert knowledge look like they will be subsumed by an onslaught of new tools. Today’s software workflows are agile with pervasive DevOps at every level, continuous deployment and testing, all wrapped with elements of generative AI accelerating the development. However, we do not believe that all of the past techniques will be discarded because engineering expertise plays a crucial role. While AI tools have well-known problems with hallucination, many software engineering domains are still finding tremendous value without 100% accuracy. Engineers need to be sure that the planes they design will fly and that software running real-time is certifiably correct. “Move fast and break things” is fundamentally not what you want to do with an airplane.
We must acknowledge that this wave of AI tooling will make the next generation of engineers orders of magnitude more productive than ever before. But, how do we reconcile this flood of new tooling with the safety requirements and physical knowledge that engineers hold dearly?
The solution needs to be a dyad that works seamlessly together. The next generation of modeling and simulation tools needs to be based on a physical and verifiable modeling language on one hand, while also being easily amenable to analysis by generative AI tools. It needs to facilitate the building and sharing of complex models from first principles, while integrating data-driven scientific machine learning techniques for learning physics from data. It needs to be a graphical tool that is easy for engineers to visualize the developed model, while also being text-based for the modern git-based CI/CD devops toolchains. It must be high-level and declarative so that domain-experts can weigh in, but it must have lower-level imperative APIs in order to ensure the compiler can target GPUs and embedded systems, and all of the other next-generation hardware in-development. It needs to be a tool that can be used during design, but also emit code that can run directly on the hardware.
The solution needs to be a new modeling system. We call this system Dyad.
The Foundational Tenets of Dyad
In order to achieve this goal, Dyad has made specific choices:
- Dyad is a declarative physical modeling language that has a one-to-one mapping with GUI views. This gives a textual representation that is amenable to analysis and generation by generative AI and devops pipelines, while allowing the same artifact to be used in the graphical environment.
- Dyad is built to incorporate modern devops tools. It has a package manager where libraries are git repositories, dependencies are tracked, and reproducibility is ensured. Its tooling is designed to work with CI/CD pipelines right out of the box.
- Dyad carefully integrates the high software velocity of modern open source projects with the guarantees and company-backing of traditional proprietary models. Dyad is built on simulation engines of the Julia programming language, specifically using many tools from the SciML ecosystem such as DifferentialEquations.jl and ModelingToolkit.jl, along with the complete Lux deep learning stack.
- This means that differentiable programming, neural networks, scientific machine learning, and hardware accelerator support (GPUs) are available by design.
- Dyad’s modeling language is designed to target both physical modeling through acausal differential-algebraic equation (DAE) formalisms while including specific synchronous compiler support for targeting embedded hardware and control systems.
- Dyad libraries are designed to integrate with generative AI tooling, automatically using your libraries to improve its predictive performance and help you translate information from other languages and expert written articles.
- Dyad has an interface for designing custom analyses of models. Users can write APIs to add new functionality such as generating neural surrogates and symbolic model discovery, which are automatically exposed through the graphical interface.
- Dyad is integrated with cloud compute that has access to scalable hardware so the latest multi-GPU AI training toolchains require no complex installation process. Cloud storage and streaming data endpoints ensure connectivity with Internet of Things (IoT) to build vast data warehouses from which to build ever improving digital twins.
- Dyad also meets the engineer where they are at and ships elements as VS Code extensions, so that coders who are more comfortable working locally with their existing toolchains can feel comfortable using the keyboard shortcuts they already know and love. This allows use of the same code base in different development environments, with or without a GUI.
The future of modeling and simulation will look radically different from what it is today. There will be AI/ML training jobs you will need to spawn across GPU clusters, automated jobs will check the generated code meets embedded safety requirements, and someone will need to maintain the complex data streaming pipelines. Modelers won’t just be alone testing new airplane wing designs but getting live data feeds from the field about past designs, sending jobs to automated testing robots to try new ideas, and having colleagues check out branches for deployment testing.
The future will be different, but the engineer will still be in control. And Dyad will be their tool.
What’s Next?
Today we release Dyad Studio, a VS Code extension.
We have chosen to publish Dyad Studio under a Source Available license. This allows us to make the code publicly available on GitHub and people can use it for free for educational and non-commercial personal purposes, with licenses available for commercial use. In addition, Dyad’s standard libraries are BSD3 open source licensed to enable open bug reporting and rapid improvements by community contributions.
Check out the documentation and install it today. We will be making rapid releases moving forward. We will have follow up blog posts that go into detail on specific topics, such as:
- The choices in the Dyad tech stack
- The new specialized Scientific Machine Learning (SciML) methods employed to make Dyad focused on production use
- How Dyad’s principle of having a one-to-one correspondence between text and visual representations positions it to get maximal leverage from large language models
- Dyad’s embedded hardware targeting story
And much more. Subscribe to our newsletter to stay tuned.