🏎️ Quilter's router is now 7x faster

Our new local routing module reduces routing time by 7x, overall job time by 3.5x, and improves success rate for complex boards

At Quilter, our objective is to help companies build electronics 10x faster by fully automating circuit board design. We want to help the people that use Quilter to save time – time that could otherwise be spent exploring, building, and learning.

To make this vision a reality, Quilter must be fast. Not just “design this board for me overnight” fast, but “design it while I’m out at lunch”, or “while I’m in this meeting”, or even “in real time, as I update my schematic” fast.

Today, we're sharing the first of many speedups to Quilter’s AI design engine: a rebuild of our local routing submodule that makes routing 7x faster, overall job completion 3.5x faster, and improves our success rate for complex boards.

Routing an Arduino Uno – before an after router speedups

How we benchmark performance

Before publishing updates to our AI design engine, we first complete a standardized benchmarking process. This process – which we call ”Qtest” – ensures all changes we make push system performance up and to the right.

Qtest is composed of a suite of internal test boards that fully exercise Quilter’s capabilities against a wide range of design scenarios. For our benchmark to complete successfully, all boards in the test suite must meet or exceed previous benchmarks for:

  • completion %: did we finish the design?
  • manufacturability: did we design it with more conservative tolerances? (ex: trace widths)
  • job duration: did we design it faster than before?

Here’s a simplified summary of results from our latest benchmark, compared against performance at the time of our Open Beta launch in mid-February:

Routing speed improved 7.7x, with overall job speed up 3.6x

This benchmark shows significant improvements across routing efficiency and, as a secondary benefit, total job time:

  • Routing got 7.7x faster, from an average of ~4.5hrs to 41 mins, with a maximum improvement of more than 38x 🤯
  • Overall jobs got 3.6x faster, from an average of ~6.5hrs to 1hr 41 mins, with a maximum improvement of 8.3x 🚀

Going from 7x → 70x

Quilter’s compiler is composed of five “sub-modules” that are tasked with tackling individual stages of the circuit board design process.

Currently, most of Quilter’s compiler stack is written in Python, which is a flexible choice for R&D and experimentation, but not the best choice for maximizing computational performance.

Our "localized routing" module (green), rebuilt in native (C++)

We achieved our 7x speed unlock with a relatively straightforward change – rebuilding our “localized routing” submodule in native (C++) from Python, alongside improvements to its algorithmic efficiency.

Average job time in Qtest reduced from 6.5hrs to ~1.5hrs

This simple optimization delivers the first of many step-change improvements to Quilter’s software architecture that will rapidly advance our understanding of our AI PCB designer's capabilities. Exciting! 🤩

Going from “faster” to “better”

While most of our users care about speed, all of them care about quality. You may be wondering, “who cares if it takes 12 hours or 12 minutes to complete a layout job if the design isn’t good enough for me to use?”

As it turns out, if your goal is to generate better circuit board designs, being able to design them faster helps – a lot:

1/ Speed helps us explore more of the design space

Human PCB designers already know that component placement significantly impacts routing difficulty. Quilter starts each layout job by first exploring placement candidates to decide which “design concepts” to advance to routing.

Because there are nearly infinite possibilities for every PCB, a faster designer is more effective at identifying the best “starting points” that increase its odds of success – especially for designs with challenging features like BGA routing or differential pairs.

We can see the relationship between speed and completeness in our Qtest benchmark. Not only did layout jobs run ~3.5x faster overall, but average completion % for boards that did not succeed increased from 93.4% to 98.4%. An increase of 5% in this context is big, as the final traces of any design are significantly harder to route than the first ones – for humans and robots alike.

2/ Speed helps our reinforcement learner get better, faster

Quilter’s AI designer uses reinforcement learning to store experience in neural nets the same way that a human designer taps into previous experience when they sit down to design a new board.

Malcolm Gladwell suggested it takes 10,000 hours to become an expert at something. Imagine if you could accelerate your learning speed to pack all of those same 10,000 hours into a fraction of the actual time, Matrix-style?

This is actually the case for Quilter’s AI designer. 7x faster routing means 7x more opportunities to learn from trial and error in the same training session, and a 7x faster rate of improvement than before.

Did you make it this far?

If you find this type of content fascinating, then you might be a great fit for one of the many positions that we’re currently hiring for, including:

  1. Senior Devops Infrastructure Engineer: Help us automate and improve the orchestration pipeline that runs when we kick of a new layout job or Qtest benchmark.
  2. Senior – Staff Reinforcement Learning (RL) Engineer: Help us utilize these speedups to encode PCB layout and design experience in neural nets.
  3. Senior Electromagnetics Simulation Engineer: Help us further incorporate physics simulations into our agent’s design and learning process to help it produce better layouts.
What should we build next?
Reach out

Get subscribed to get news, updates and more.
Straight to your inbox.

By clicking “Submit” you agree to our TOS and Privacy Policy.