Ein Bereich mit erheblichem Potenzial ist die Nutzung des maschinellen Lernens, um automatisch qualitativ hochwertige Lösungen für eine Reihe verschiedener NP-harter Optimierungsprobleme zu generieren, die im Gesamt-Workflow für den Entwurf kundenspezifischer ASICs existieren. Beispielsweise sind derzeit für die Platzierung und das Routing komplexer ASIC-Designs große Teams von Chipdesignern erforderlich, die iterativ von der übergeordneten bis zur detaillierten Platzierung verfeinern, während das Gesamtdesign eines ASICs ausgearbeitet wird.
Da die Platzierung erhebliche menschliche Ressourcen erfordert, ist es undenkbar, radikal unterschiedliche Layouts in Betracht zu ziehen, ohne den Zeitplan eines Chipprojekts nach dem anfänglichen High-Level-Design dramatisch zu gefährden. Die Platzierung und das Routing (Place & Route) sind jedoch Probleme, die sich durch den Einsatz des Reinforcement Learning lösen lassen. Dieser Lernansatz war schon bei der Lösung von Spielen erfolgreich, wie AlphaGo. Platzierung und Routing, also eine Abfolge von Platzierungs- und Routing-Entscheidungen zusammengenommen, beeinflussen die Gesamtmetriken wie Chipfläche, Timing und Verdrahtungslänge.
Zunächst nimmt man einen Reinforcement-Learning-Algorithmus um das Spiel Platzierung und Routing zu spielen, entweder ganz allgemein über viele verschiedene ASIC-Designs hinweg oder nur für ein bestimmtes ASIC-Design. Dazu muss noch eine Reward-Funktion definiert werden, die die verschiedenen Attribute in eine einzige numerische Reward-Funktion überführt und die mit signifikanter ML-Rechenleistung (in Form von ML-Beschleunigern) darauf angewendet wird. Damit lässt sich möglicherweise ein System bauen, das die Platzierung und das Routing schneller durchführen kann und effektiver als ein Team von menschlichen Experten, die mit bestehenden EDA-Tools Platzierung und Routing entwickeln. Google hat diese Ansätze intern untersucht und frühe vorläufige, aber vielversprechende Ergebnisse erzielt. Das automatisierte ML-basierte System ermöglicht eine schnelle Exploration eines Entwurfsraums, da die Reward-Funktion leicht angepasst werden kann, um sie für verschiedene Abwägungen bei den Zielen zu optimieren.
Darüber hinaus kann es sogar möglich sein, ein maschinelles Lernsystem so zu trainieren, dass es eine ganze Reihe von Entscheidungen von der Synthese auf hoher Ebene bis hinunter zu den tatsächlichen logischen Darstellungen fällen kann. Damit ließe sich der Prozess von Platzierung und Routing durchgängig von oben nach unten besser automatisieren. Wenn dies umsetzbar ist, dann ließe sich die Zeit für ein komplexes ASIC-Design erheblich reduzieren, von vielen Monaten auf Wochen. Dies würde die Schwelle senken ab der es sinnvoll ist, kundenspezifische Chips zu entwickeln. Denn die derzeitigen hohen Entwicklungskosten (NRE – Non Recurring Engineering) bedeuten oft, dass kundenspezifische Chips nur für hochvolumige Anwendungen attraktiv sind.
Mit den dramatischen Verbesserungen in der Bildverarbeitung in den letzten zehn Jahren gibt es eine Reihe von Problemen im Bereich der visuellen Inspektion von Wafern während des Halbleiterherstellungsprozesses, die möglicherweise einer stärkeren Automatisierung oder einer verbesserten Genauigkeit gegenüber den bestehenden Ansätzen zugänglich sind. Wenn wir Fehler früher oder genauer erkennen, können wir möglicherweise höhere Ausbeuten oder geringere Kosten erzielen.
Eine weitere Möglichkeit des maschinellen Lernens liegt in der Anwendung der gelernten Heuristik in Computersystemen wie Compilern, Betriebssystemen, Dateisystemen, Netzwerk-Stacks usw. Computersysteme sind mit handgeschriebenen Heuristiken gefüllt, die im allgemeinen Fall funktionieren müssen. Beispielsweise müssen Compiler Entscheidungen darüber treffen, welche Routinen sie inline schalten, welche Befehlssequenzen sie wählen, welche von vielen möglichen Schleifenverschachtelungsstrukturen sie verwenden und wie sie Datenstrukturen im Speicher auslegen. Low-Level-Netzwerksoftware-Stacks müssen Entscheidungen darüber treffen, wann die Größe des TCP-Fensters erhöht oder verringert werden soll, wann Pakete, die möglicherweise verworfen wurden, erneut übertragen werden sollen und ob und wie Daten über Netzwerkverbindungen mit unterschiedlichen Eigenschaften komprimiert werden sollen. Betriebssysteme müssen entscheiden, welche Blöcke aus ihrem Puffercache entfernt, welche Prozesse und Threads als nächstes eingeplant und welche Daten von der Festplatte vorgeladen werden sollen. Datenbanksysteme wählen Ausführungspläne für High-Level-Abfragen aus, treffen Entscheidungen darüber, wie High-Level-Daten auf Platten abgelegt werden und welche Kompressionsmethoden für welche Datenelemente verwendet werden sollen.
Maschinell erlernte Heuristiken versprechen das Potenzial handkodierte Heuristiken zu ersetzen, wobei diese ML-Heuristiken viel mehr kontextbezogene Informationen berücksichtigen können als dies bei handgeschriebener Heuristik möglich ist. Sie lassen sich leichter an die tatsächlichen Nutzungsmuster eines Systems anpassen, anstatt nur für einen durchschnittlichen Fall. In anderen Einsatzszenarien von ML lassen sich traditionelle Datenstrukturen ersetzen, z.B. B-Bäume, Hash-Tabellen und Bloom-Filter mit erlerntem Index-Strukturen.