Product Updates

Datum

Verfasst von

Product Updates

🏎️ Quilters Router ist jetzt 7-mal schneller

Datum

Erstmals veröffentlicht

April 1, 2024

Bei Quilter möchten wir Unternehmen helfen, Elektronik 10-mal schneller zu entwickeln, indem wir das Leiterplattendesign vollständig automatisieren. Wir möchten Quilter-Nutzern helfen, Zeit zu sparen – Zeit, die sie stattdessen zum Erkunden, Bauen und Lernen nutzen können.

Damit diese Vision Wirklichkeit wird, muss Quilter schnell sein. Nicht nur „Entwirf mir diese Leiterplatte über Nacht“-schnell, sondern „während meiner Mittagspause“, „während dieser Besprechung“ oder sogar „in Echtzeit, während ich meinen Schaltplan aktualisiere“-schnell.

Heute stellen wir die erste von vielen Beschleunigungen für Quilters KI-Designengine vor: ein neu entwickeltes Submodul für lokales Routing, das das Routing um den Faktor 7 und den Abschluss ganzer Aufträge um den Faktor 3.5 beschleunigt sowie unsere Erfolgsquote bei komplexen Leiterplatten erhöht.

Routing an Arduino Uno – before an after router speedups
Routing eines Arduino Uno – vor und nach der Beschleunigung des Routers

Wie wir die Leistung messen

Bevor wir Updates unserer KI-Designengine veröffentlichen, durchlaufen wir ein standardisiertes Benchmarkverfahren. Dieser Prozess, den wir „Qtest“ nennen, stellt sicher, dass alle unsere Änderungen die Systemleistung verbessern.

Qtest umfasst eine Reihe interner Testplatinen, die Quilters Fähigkeiten anhand verschiedenster Designszenarien umfassend prüfen. Damit unser Benchmark erfolgreich abschließt, müssen alle Platinen der Testsuite bisherige Vergleichswerte in folgenden Bereichen erreichen oder übertreffen:

  • Fertigstellungsgrad in %: Haben wir den Entwurf abgeschlossen?
  • Fertigbarkeit: Haben wir ihn mit konservativeren Toleranzen entworfen? (z. B. Leiterbahnbreiten)
  • Auftragsdauer: Haben wir ihn schneller entworfen als zuvor?

Hier eine vereinfachte Zusammenfassung unseres neuesten Benchmarks im Vergleich zur Leistung bei unserem Open-Beta-Start Mitte Februar:

Routing speed improved 6.7x, with overall job speed up 3.6x
Routing um den Faktor 6.7 und gesamte Auftragsbearbeitung um den Faktor 3.6 beschleunigt

Dieser Benchmark zeigt erhebliche Verbesserungen der Routingeffizienz und als zusätzlichen Vorteil eine kürzere Gesamtbearbeitungszeit:

  • Das Routing wurde 6.7-mal schneller: von durchschnittlich ~4.5 Stunden auf 41 Minuten, mit einer maximalen Verbesserung um mehr als den Faktor 38 🤯
  • Ganze Aufträge wurden 3.6-mal schneller abgeschlossen, wobei die durchschnittliche Dauer von ~6.5 Stunden auf 1 Stunde und 41 Minuten sank; die maximale Verbesserung betrug den Faktor 8.3 🚀

Von 7-fach → 70-fach

Quilters Compiler besteht aus fünf „Submodulen“, die jeweils einzelne Phasen des Leiterplattendesignprozesses übernehmen.

Derzeit ist der Großteil von Quilters Compiler in Python geschrieben. Das bietet Flexibilität für Forschung, Entwicklung und Experimente, ist aber nicht die beste Wahl für maximale Rechenleistung.

Our "localized routing" module (green), rebuilt in native (C++)
Unser Modul für „lokales Routing“ (grün), neu implementiert in nativem Code (C++)

Wir erreichten die 7-fache Beschleunigung mit einer relativ einfachen Änderung: Wir implementierten unser zuvor in Python geschriebenes Submodul für „lokales Routing“ neu in nativem Code (C++) und verbesserten zugleich die Effizienz seiner Algorithmen.

Average job time in Qtest reduced from 6.5hrs to ~1.5hrs
Durchschnittliche Auftragsdauer in Qtest von 6.5 Stunden auf ~1.5 Stunden reduziert

Diese einfache Optimierung ist die erste von vielen grundlegenden Verbesserungen an Quilters Softwarearchitektur. Sie werden unser Verständnis der Fähigkeiten unseres KI-PCB-Designers rasch erweitern. Spannend! 🤩

Von „schneller“ zu „besser“

Während den meisten Nutzern die Geschwindigkeit wichtig ist, legen alle Wert auf Qualität. Vielleicht fragen Sie sich: „Was spielt es für eine Rolle, ob ein Layoutauftrag 12 Stunden oder 12 Minuten dauert, wenn der Entwurf für meinen Einsatz nicht gut genug ist?“

Tatsächlich hilft es enorm, Leiterplatten besser zu entwerfen, wenn man sie schneller entwerfen kann:

‍

1/ Geschwindigkeit hilft uns, einen größeren Teil des Lösungsraums zu erkunden

Menschliche PCB-Designer wissen bereits, dass die Bauteilplatzierung die Schwierigkeit des Routings erheblich beeinflusst. Quilter erkundet zu Beginn jedes Layoutauftrags zunächst Platzierungskandidaten, um zu entscheiden, welche „Designkonzepte“ ins Routing übergehen.

Da es für jede Leiterplatte nahezu unendlich viele Möglichkeiten gibt, findet ein schnellerer Designer die besten „Ausgangspunkte“ effektiver und erhöht so seine Erfolgschancen – insbesondere bei Entwürfen mit anspruchsvollen Merkmalen wie BGA-Routing oder Differenzpaaren.

In unserem Qtest-Benchmark sehen wir den Zusammenhang zwischen Geschwindigkeit und Fertigstellungsgrad. Die Layoutaufträge liefen insgesamt nicht nur ~3.5-mal schneller; der durchschnittliche Fertigstellungsgrad der Platinen, die nicht vollständig abgeschlossen wurden, stieg von 93.4% auf 98.4%. Ein Anstieg um 5% ist in diesem Kontext erheblich, da die letzten Leiterbahnen eines Entwurfs deutlich schwieriger zu routen sind als die ersten – für Menschen ebenso wie für Roboter.

2/ Geschwindigkeit hilft unserem Reinforcement-Learning-System, schneller besser zu werden

Quilters KI-Designer speichert mithilfe von Reinforcement Learning Erfahrungen in neuronalen Netzen – ähnlich wie ein menschlicher Designer auf bisherige Erfahrungen zurückgreift, wenn er eine neue Leiterplatte entwirft.

Malcolm Gladwell zufolge braucht man 10,000 Stunden, um auf einem Gebiet Experte zu werden. Stellen Sie sich vor, Sie könnten so viel schneller lernen, dass dieselben 10,000 Stunden in einen Bruchteil der tatsächlichen Zeit passen – wie in Matrix.

Bei Quilters KI-Designer ist das tatsächlich der Fall. 7-mal schnelleres Routing bedeutet in derselben Trainingssitzung 7-mal mehr Gelegenheiten, durch Versuch und Irrtum zu lernen, und eine 7-mal schnellere Verbesserung als zuvor.

Filmstandbild-Meme mit dem Text Ich beherrsche PCB-Design.

Haben Sie bis hierher gelesen?

Wenn Sie solche Inhalte faszinieren, passen Sie vielleicht hervorragend zu einer der vielen Stellen, für die wir aktuell Verstärkung suchen, darunter:

  1. Senior DevOps Infrastructure Engineer: Helfen Sie uns, die Orchestrierungspipeline zu automatisieren und zu verbessern, die bei jedem neuen Layoutauftrag oder Qtest-Benchmark startet.
  2. Senior–Staff Reinforcement Learning (RL) Engineer: Helfen Sie uns, diese Beschleunigungen zu nutzen, um Erfahrungen im PCB-Layout und -Design in neuronalen Netzen zu speichern.
  3. Senior Electromagnetics Simulation Engineer: Helfen Sie uns, Physiksimulationen stärker in den Design- und Lernprozess unseres Agenten einzubinden, damit er bessere Layouts erstellt.

Quilter selbst ausprobieren

Project Speedrun zeigte, wie autonomes Layout in der Praxis aussieht und welche Zeitersparnis Quilter ermöglicht. Erleben Sie es jetzt mit Ihrer eigenen Hardware.

Jetzt starten

Validierung des Designs

Nach der Nachbearbeitung bleibt die entscheidende Frage: Funktioniert die Hardware? Beim Einschalten zeigen sich die meisten elektrischen Fehler. Auf diesen Moment freuen sich Ingenieure ebenso, wie sie ihm nervös entgegenblicken.

Weiter zu Teil 4

Nachbearbeitung des Designs

Autonomes Layout liefert ein vollständiges, DRC-geprüftes Design. Die Nachbearbeitung ist ein kurzer Präzisionsdurchlauf, der es für die Fertigung finalisiert.

Weiter zu Teil 3

Kompilieren des Designs

Nach der Vorbereitung wird das Design an Quilter übergeben. In klassischen Abläufen klärt hier ein Ingenieur die Entwurfsabsicht mit einem Layoutspezialisten. Quilter ersetzt dieses Gespräch durch Schaltungsverständnis: Sie laden das Projekt hoch, prüfen die Interpretation der Randbedingungen und starten den Auftrag.

Weiter zu Teil 2