Product Updates

日付

著者

Product Updates

🏎️ Quilterのルーターが7倍高速に

日付

初回公開日

April 1, 2024

シリーズ全体を読む

/ 6

この記事は、Quilterの物理法則に基づくレイアウト自動化を使い、NXP i.MX 8M Mini搭載コンピューターを再現した過程を詳しく紹介するシリーズの一部です。 

Quilterの目標は、基板設計を完全に自動化し、企業の電子機器開発を10倍速くすることです。Quilterを使う皆様に、時間を節約していただきたいと考えています。その時間を、探索、製作、学習に使えるようにするためです。

このビジョンを実現するには、Quilterは高速でなければなりません。「一晩でこの基板を設計してくれる」というだけでなく、「昼食に出かけている間に」「会議に出ている間に」、さらには「回路図を更新するそばからリアルタイムで」設計できる速さです。

本日は、QuilterのAI設計エンジンに予定している多くの高速化の第一弾をご紹介します。局所配線サブモジュールを再構築したことで、配線は7倍、ジョブ全体の完了は3.5倍高速になり、複雑な基板での成功率も向上しました。

Routing an Arduino Uno – before an after router speedups
Arduino Unoの配線:ルーター高速化の前後を比較

性能ベンチマークの方法

AI設計エンジンの更新を公開する前に、私たちはまず、標準化されたベンチマーク手順を実施します。「Qtest」と呼ぶこのプロセスによって、すべての変更がシステム性能の向上につながることを確認しています。

Qtestは、幅広い設計状況でQuilterの能力を十分に試す、社内のテスト用基板群で構成されています。ベンチマークを正常に完了するには、テスト群のすべての基板が、次の項目で過去のベンチマークと同等以上の結果を達成しなければなりません。

  • 完了率(%):設計を完了できたかを確認します。
  • 製造性:より余裕のある許容値(例:配線幅)で設計できたかを確認します。
  • ジョブの所要時間:以前より速く設計できたかを確認します。

最新のベンチマーク結果と、2月中旬のオープンベータ開始時点の性能を比較した概要を、以下に示します。

Routing speed improved 6.7x, with overall job speed up 3.6x
配線速度は6.7倍、ジョブ全体の速度は3.6倍に向上

このベンチマークでは、配線効率が大幅に向上し、その副次的な効果としてジョブの総所要時間も大幅に改善しています。

  • 配線が6.7倍高速化し、平均約4.5時間から41分に短縮しました。最大では38倍を超える改善でした🤯
  • ジョブ全体が3.6倍高速化し、所要時間は 平均約6.5時間から1時間41分に短縮しました。最大で8.3倍の改善でした🚀

7倍から70倍へ

Quilterのコンパイラは、基板設計プロセスの各段階を担当する5つの「サブモジュール」で構成されています。

現在、Quilterのコンパイラの大部分はPythonで記述されています。R&Dや実験には柔軟で適していますが、計算性能を最大限に引き出すための最善の選択ではありません。

Our "localized routing" module (green), rebuilt in native (C++)
ネイティブのC++で再構築した「局所配線」モジュール(緑)

7倍の高速化は、比較的単純な変更によって実現しました。「局所配線」サブモジュールを、PythonからネイティブのC++で再構築し、併せてアルゴリズムの効率を改善したのです。

Average job time in Qtest reduced from 6.5hrs to ~1.5hrs
Qtestの平均ジョブ時間が6.5時間から約1.5時間に短縮

この単純な最適化は、Quilterのソフトウェアアーキテクチャにおける、今後の数多くの飛躍的な改善の第一歩です。これらの改善によって、AI PCB設計ツールの能力に対する私たちの理解が急速に深まります。楽しみです!🤩

「速い」から「優れた」へ

ほとんどのユーザーが速度を重視していますが、すべてのユーザーが重視するのは品質です。こう思う方もいるでしょう。「使える水準の設計ができないなら、レイアウトジョブに12時間かかろうと12分かかろうと、何の違いがあるのでしょうか?」

実際には、より優れた基板設計の生成を目指すなら、より速く設計できることが、大いに役立ちます。

‍

1/ 速度が上がると、設計空間をより広く探索できます

人間のPCB設計者は、部品配置が配線の難しさに大きく影響することをよく知っています。Quilterは各レイアウトジョブの最初に配置候補を探索し、どの「設計案」を配線工程に進めるかを決めます。

どの基板にも、ほぼ無限の可能性があります。そのため、速く設計できるほど、成功の可能性を高める最良の「出発点」を効率よく見つけられます。BGA配線や差動ペアなど、難しい要素のある設計では、特に重要です。

Qtestのベンチマークでは、速度と完成度の関係を確認できます。レイアウトジョブ全体が約3.5倍高速になっただけでなく、成功しなかった基板の平均完了率も93.4%から98.4%に上昇しました。この状況での5%の上昇は、大きな意味を持ちます。人間でもロボットでも、設計の最後に残る配線は、最初の配線より格段に難しいからです。

2/ 速度が上がると、強化学習器がより速く改善します

人間の設計者が新しい基板を設計するときに過去の経験を生かすのと同じように、QuilterのAI設計ツールは、強化学習を使って経験をニューラルネットワークに蓄積します。

Malcolm Gladwellは、ある分野の専門家になるには10,000時間かかると提唱しました。映画「マトリックス」のように学習速度を上げ、同じ10,000時間分の学習を、実際にはその何分の1かの時間に詰め込めたらどうでしょうか?

QuilterのAI設計ツールでは、これが実際に起きています。配線が7倍速くなるということは、同じ学習セッションで試行錯誤から学ぶ機会が7倍になり、改善の速度も以前の7倍になるということです。

映画の場面に「I know PCB design(PCB設計はわかる)」という文字を重ねたミーム画像。

ここまでお読みいただけましたか?

こうした内容に興味をひかれる方は、私たちが現在採用中の多くの職種にぴったりかもしれません。たとえば、次のような職種があります。

  1. シニアDevOpsインフラエンジニア:新しいレイアウトジョブやQtestベンチマークの開始時に動くオーケストレーションパイプラインの、自動化と改善を担っていただきます。
  2. シニア〜スタッフ強化学習(RL)エンジニア:今回の高速化を活用し、PCBのレイアウトと設計の経験をニューラルネットワークに組み込む取り組みを担っていただきます。
  3. シニア電磁界シミュレーションエンジニア:よりよいレイアウトを生成できるよう、エージェントの設計・学習プロセスに物理シミュレーションをさらに組み込む取り組みを担っていただきます。

Quilterを実際に試す

Project Speedrunは、自律的なレイアウトの実際の姿と、Quilterが実現する時間短縮を示しました。次は、ご自身のハードウェアでお確かめください。

利用を始める

設計の検証

仕上げが完了したら、最後に確認するのはハードウェアが動作するかどうかです。電源投入時には電気的な不具合の多くが現れます。エンジニアにとって、緊張と期待が入り交じる瞬間です。

第4回に進む

設計の仕上げ

自律的なレイアウトにより、DRCを実施済みの完成した設計が得られます。仕上げは、製造に向けて最終調整するための短い精密な作業です。

第3回に進む

設計のコンパイル

設計の準備ができたら、次はQuilterに引き渡します。従来のワークフローでは、この段階でエンジニアとレイアウト担当者が設計意図を確認します。Quilterはこの打ち合わせを回路理解のプロセスに置き換えます。プロジェクトをアップロードし、制約条件がどう解釈されたかを確認して、ジョブを実行します。

第2回に進む