ML-Fokus verlagert sich in Richtung Software

Quellknoten: 1600819

Neue Architekturen für maschinelles Lernen (ML) erregen weiterhin große Aufmerksamkeit, da der Wettlauf um die Bereitstellung der effektivsten Beschleunigungsarchitekturen für die Cloud und den Edge weitergeht, die Aufmerksamkeit beginnt sich jedoch von der Hardware auf die Softwaretools zu verlagern.

Die große Frage ist nun, ob sich letztendlich eine Software-Abstraktion gegenüber Hardware-Details durchsetzen wird, wenn es darum geht, die künftigen Gewinner zu bestimmen.

„Maschinelles Lernen hat in der Vergangenheit seinen Ursprung in einem Bereich, in dem der Schwerpunkt auf spezifischen Endanwendungen lag, etwa der Objekterkennung im Automobilbereich oder dem Verstehen natürlicher Sprache mithilfe von Sprache“, sagte Sree Harsha Angara, Produktmarketingmanagerin für IoT, Computer und Sicherheit bei Infineon. „Mittlerweile hat ML begonnen, sich auf verschiedene Arten von Anwendungen auszuweiten, wodurch der Schwerpunkt stärker auf Designtools und Software-Frameworks liegt.“

Entwickler von Systemen für maschinelles Lernen fordern zunehmend mehr von den Software Development Kits (SDKs) für maschinelles Lernen, und einige Anbieter nutzen ihre Software, um die Hardwaredetails zu verbergen. Am Ende könnte sich weniger optimale Hardware mit guter Software gegenüber besserer Hardware mit weniger Software durchsetzen.

Wir waren schon vorher hier
Compiler und andere Entwicklungstools sind auf der Softwareseite längst eine Selbstverständlichkeit. Aber wenn es um Hardware ging, wurde in den frühen 80er Jahren von den Designern erwartet, dass sie ihre Entwürfe weitgehend manuell erstellen. Auch wenn sich dies heute geändert hat, war es ein steiniger Weg dorthin. Und der Markt für programmierbare Logik war einer der ersten Orte, an dem sich Designsoftware durchsetzte.

Zunächst diente die PLD-Software lediglich dazu, arbeitsintensive Arbeiten zu vermeiden. In den Anfängen programmierbarer Logikgeräte (PLDs) entwickelten Ingenieure ihre Logik und fanden dann heraus, welche Verbindungen in den programmierbaren Arrays benötigt wurden. Diese würden buchstäblich handschriftlich in „Sicherungskarten“ geschrieben, die dann in Programmiergeräte eingegeben werden könnten, um ein Gerät physisch zu konfigurieren.

Eine große Veränderung erfolgte mit der Einführung der programmierbaren Array-Logik (PALs) durch Monolithic Memories. Zwei Dinge haben die PLD-Branche insgesamt angekurbelt. Erstens gab es eine architektonische Änderung, die die Kosten senkte und die Geschwindigkeit erhöhte. Noch einflussreicher war jedoch die erste Veröffentlichung eines sogenannten PAL-Assemblers mit dem Namen PALASM.

Dadurch entfiel der mühsame Prozess der Zuordnung der Verbindungen. Stattdessen könnte man boolesche Gleichungen eingeben – was für Ingenieure viel natürlicher ist – und das Tool die Programmierdetails ermitteln lassen. Dies trug dazu bei, einen ernsthaften Wendepunkt im Geschäft herbeizuführen.

Einige Jahre später erschienen neue Marktteilnehmer auf dem PLD-Markt, die für mehr architektonische Programmierbarkeit sorgten. Es gab schon immer eine Logik, die solche Geräte nicht umsetzen konnten, also begann der Wettlauf um die Entwicklung der flexibelsten Architekturen, die dennoch schnell und kostengünstig waren.

Ein bedeutender Wendepunkt kam, als Altera seine neue Architektur mit der Designsoftware MAX-PLUS veröffentlichte. Ingenieure hatten Mühe, die Grenzen dessen zu finden, was diese Architektur leisten konnte, und waren angenehm überrascht. Gleichungen, von denen erwartet wurde, dass sie bei der Kompilierung fehlschlagen würden, funktionierten tatsächlich, da die Software jetzt mehr konnte, als nur boolesche Gleichungen in Verbindungen umzuwandeln. Stattdessen wurden auch diese booleschen Gleichungen unter anderem durch Anwenden transformiert Satz von DeMorgan Dinge, die nicht getan werden konnten, in Dinge umzuwandeln, die getan werden konnten.

Dies war ein Wendepunkt und erhöhte den Einsatz für die Software-Seite des Geschäfts erheblich. Versuchen Sie so sehr Sie auch versuchen, auf architektonische Schwächen der Hardware hinzuweisen, solange die Software diese Schwächen maskierte, war das ein aussichtsloses Argument.

Das Geschäft wurde bis zu diesem Zeitpunkt von Hardware-Unternehmen dominiert, wobei AMD (nach der Übernahme von Monolithic Memories) der Spitzenreiter war. Aber Hardware-Unternehmen waren nicht gut darin, Software zu entwickeln, und sie machten es nicht gerne. Anstatt sich mit der Software herumzuschlagen, hat AMD die Arbeit an ein kleines Softwareunternehmen ausgelagert. Das stellte sich als strategischer Fehler heraus, und das Unternehmen gab schließlich sein Geschäft auf und verkaufte einen Teil der Technologie an AMDs neu ausgegliederte Vantis-Tochtergesellschaft (was letztendlich nicht erfolgreich war) und einen Teil an Xilinx, damals ein Neuling in der Szene ausgefallene FPGAs (die äußerst erfolgreich waren).

Am Ende war es die Software, die den Gewinner ermittelte. Die Hardwarefunktionen folgten einem Sprungmuster, und die Tools erwiesen sich als das Unterscheidungsmerkmal.

„Die Geschichte ist übersät mit bemerkenswerten FPGA-Hardwarearchitekturen, die alle ins Stocken geraten sind und nicht mehr existieren, teilweise aufgrund des Fehlens einer effektiven Toolchain“, sagte Stuart Clubb, Hauptproduktmanager bei Siemens EDA. „Es spielt keine Rolle, wie gut eine Hardwareplattform ist, wenn Sie nicht über die Software verfügen, um diese Plattform effizient und effektiv zu nutzen.“

Eine Parallele zum maschinellen Lernen?
Heutzutage sind alle Augen auf künstliche Intelligenz gerichtet und Unternehmen versuchen, die beste Architektur für Beschleuniger für maschinelles Lernen zu finden, die entweder in der Cloud oder am Netzwerkrand funktionieren. Während Cloud-Instanziierungen dominiert haben, Edge-Implementierungen – mit ihren strengen Leistungs- und Kostenanforderungen – haben viel mehr Kreativität angeregt.

Es wird jedoch immer schwieriger, die Auswirkungen der Unterschiede zwischen diesen Architekturen zu verstehen. Es fühlt sich fast so an, als ob die großen Ideen hinter uns liegen und die Unternehmen immer wieder an verschiedenen Parametern arbeiten, um einen optimalen Kompromiss zwischen Leistung, Leistung und Kosten zu finden.

„Das Problem, auf das die Leute stoßen, besteht darin, dass sie über diese Hardwarelösungen verfügen und nicht in der Lage sind, sie zu optimieren oder den gewünschten Auslastungsgrad zu erreichen“, sagte Dana McCarty, Vizepräsidentin für Vertrieb und Marketing, Inferenzprodukte bei FlexLogix.

Maschinelles Lernen hatte schon immer ein Softwareelement, da die gesamte Idee, eine Lösung für maschinelles Lernen zu trainieren und zu implementieren, keine leichte Aufgabe ist. Die Existenz früher Frameworks für maschinelles Lernen wie Caffe und TensorFlow machte KI-Anwendungen praktisch und für eine größere Anzahl von Entwicklern zugänglich.

Dennoch ist die Erstellung eines vollständigen Designs mit viel Arbeit verbunden – insbesondere für Edge-Anwendungen. Vorteilhafteste lieferte ein Beispiel für den Einsatz von KI bei Testdaten – eine Anwendung, die beispielsweise weit weniger im Vordergrund steht als das Sehen.

„Wir erhalten diesen großen, ungereinigten Datensatz, und es wird mehrere Wochen dauern, ihn manuell durchzugehen und Tools manuell anzuwenden“, sagte Keith Schaub, Vizepräsident für Technologie und Strategie bei Advantest. „Sie haben Hunderte von Features, manchmal 1,000 Features oder mehr, und Sie versuchen herauszufinden, welche Features am wichtigsten mit Ihrer Vorhersage korrelieren. Diese ermitteln sie mithilfe von Regressionsmethoden und [Hauptkomponentenanalyse]. Und dann haben Sie dieses statische Modell mit 12 Funktionen.“

Und das ist nur das High-Level-Feature-Engineering. Der nächste Teil besteht darin, dieses Modell effizient auf ein bestimmtes Gerät abzubilden, wodurch ein Wettbewerbsvorteil entstehen könnte. „Sie müssen in der Lage sein, dieses Modell effizient auf Ihren Beschleuniger zu übertragen, und das Unternehmen, das diese Überbrückung durchführen kann, wird gewinnen“, sagte Sam Fuller, Senior Director of Marketing bei Flex Logix.

Während Cloud-basierte Engines weitgehend auf vollständiger Gleitkomma-Hardware basieren können, spart ein Großteil der Edge-Hardware Strom und Kosten, indem sie sich auf ganzzahlige Implementierungen konzentriert. Das bedeutet, dass man einen Entwurf und die trainierten Parameter nimmt und sie quantisiert – also vom Gleitkommawert in den Ganzzahlwert umwandelt. Dies führt zu einigen Fehlern, die die Inferenzgenauigkeit beeinträchtigen können, sodass möglicherweise ein erneutes Training mit dem gewünschten Ganzzahlformat erforderlich ist. Bezeichnenderweise ist es im Laufe der Zeit einfacher geworden, direkt auf ganze Zahlen zu trainieren.

Auch die Reduzierung der Größe und des Energieverbrauchs dieser Konstruktionen erforderte Arbeit. Man könnte den Entwurf durchgehen, Parameter identifizieren, die wahrscheinlich zu klein sind, um von Bedeutung zu sein, und sie dann wegschneiden. Dies war ursprünglich ein manueller Prozess, der eine Neubewertung der Genauigkeit erforderte, um sicherzustellen, dass sie durch den Beschneidungsprozess nicht zu stark beeinträchtigt wurde.

Dann geht es darum, die Software-„Kernel“ an den verwendeten Prozessortyp anzupassen. Hierbei handelt es sich häufig um Bare-Metal-Code, der für jeden Knoten im Netzwerk geschrieben wird. Einige Architekturen wählen Verarbeitungselemente, die sich nur auf die allgemeinen Anweisungen konzentrieren, die für die Inferenz verwendet werden. Andere behalten die „vollständige Programmierbarkeit“ bei, sodass sie über Schlussfolgerungen hinaus flexibler eingesetzt werden können.

Und wenn Sie über eine Datenflussarchitektur verfügen, müssen Sie möglicherweise die Hardware aufteilen und verschiedenen Regionen unterschiedliche Ebenen und Knoten zuweisen.

Dies sind nur einige der Dinge, die gehandhabt werden müssen, um eine voll funktionsfähige Anwendung für maschinelles Lernen zu implementieren. Einiges davon erfolgte manuell, aber der Grad der Softwareautomatisierung wurde nach und nach gesteigert.

Der nächste Schritt: Hardware geheim halten
Im letzten Jahr ist ein Wandel in der Branche sichtbar geworden. Auf Konferenzen wie den Linley Processor-Konferenzen oder Hot Chips haben Unternehmen neue Angebote angekündigt und die Software ausführlicher diskutiert. Und insbesondere in einigen Fällen wird nicht wirklich über die zugrunde liegende Hardware gesprochen.

Das kann natürlich in öffentlichen Foren wie Konferenzen passieren. Manchmal geben Unternehmen die Details nur im Rahmen einer Geheimhaltungsvereinbarung an legitime Verkaufsinteressenten weiter. Aber der Tenor der Gespräche scheint sich zunehmend in die Richtung verschoben zu haben: „Machen Sie sich keine Sorgen um die Details.“ Dafür sorgt die Software.“

Das verändert Verkaufsgespräche erheblich: Von einem Gespräch, bei dem versucht wird, einen Interessenten davon zu überzeugen, dass subtile architektonische Unterschiede sinnvolle Ergebnisse haben, hin zu einem Gespräch, bei dem Designerfahrung den Beweis liefert. Können Sie ein Testdesign schneller implementieren als bisher? Erreichen Sie Ihre angestrebten Leistungskennzahlen – Kosten, Geschwindigkeit, Leistung, Genauigkeit usw. – mit minimalem manuellen Aufwand? Können Sie mit wenig bis gar keinem manuellen Eingriff eine einwandfreie Implementierung erreichen?

Wenn die Antwort auf alle diese Fragen „Ja“ lautet, spielt es dann eine Rolle, wie die Hardware dies erreicht hat? Wenn die Software bei Bedarf schnell Transformationen durchführen kann, spielt es dann eine Rolle, ob die zugrunde liegenden Gates eine Einschränkung aufwiesen, die eine Softwaretransformation erforderte? Wenn eine andere Architektur weitaus mehr Schnickschnack hat, die Fertigstellung eines Entwurfs aber viel mehr Aufwand erfordert, sind diese zusätzlichen Funktionen dann diesen Aufwand wert?

Unternehmen, die sich auf ihre Tools verlassen, wetten, dass es ihren Kunden egal ist, was sich unter der Haube verbirgt – solange sie in Kombination mit guter Software die gewünschte Aufgabe mit der erforderlichen Geschwindigkeit, Leistung, Genauigkeit und Kosten erledigen können .

Wird sich die Geschichte mit maschinellem Lernen wiederholen?
Ähnlich wie Menschen neigen Unternehmen dazu, Persönlichkeiten zu haben. Einige sind hardwareorientiert, andere softwareorientiert. Einiges von beidem ist eindeutig für jedes Angebot für maschinelles Lernen erforderlich, aber es scheint, als würde sich der Vorsprung in Richtung Software-orientierter Angebote verschieben. Das bedeutet, dass die Software als Star des Angebots im Mittelpunkt stehen muss und nicht als lästiger, aber notwendiger Cameo-Auftritt. Das bedeutet auch, dass Hardware und Software gemeinsam entwickelt werden müssen.

Der Bedarf an Software zum Puffern der Details ist bei ML wahrscheinlich größer als bei FPGAs. Selbst mit Tools werden FPGAs von Hardware-Ingenieuren entworfen. ML-Modelle hingegen werden von Datenwissenschaftlern entworfen, die viele Ebenen von der Hardware entfernt sind. Daher müssen Tools die Abstraktionslücke schließen.

„Wenn Sie ihre Sprache nicht sprechen, haben Sie keine Chance“, sagte Nick Ni, Direktor für Produktmarketing für KI und Software bei Xilinx. „Jeder Anbieter spricht über TensorFlow- und Python-Unterstützung, weil er keine andere Möglichkeit hat. Ob es Ihnen gefällt oder nicht, Sie müssen es unterstützen. Aber um einen so hohen Rahmen zu unterstützen, muss man alles dazwischen tun.“

Ein weiterer Fehler in der PLD-Branche bestand darin, clevere Architekturen zu entwerfen, nur um anschließend festzustellen, dass es äußerst schwierig war, Software dafür zu erstellen. Die erfolgreichsten Hardware- und Softwareteams arbeiteten zusammen, wobei die Hardware nach Bedarf optimiert wurde, um reibungslose und leistungsstarke Softwarealgorithmen zu ermöglichen.

Abb. 1: Die Entwicklung der Design-Tools, angefangen bei manuellen Designs über die Eliminierung von Langeweile bis hin zur tatsächlichen Fähigkeit, Designs zu manipulieren und schließlich zu optimieren. In den letzten Phasen ist das gemeinsame Design von Hardware und Software entscheidend für den Erfolg. Quelle: Bryon Moyer/Semiconductor Engineering

Abb. 1: Die Entwicklung der Design-Tools, angefangen bei manuellen Designs über die Eliminierung von Langeweile bis hin zur tatsächlichen Fähigkeit, Designs zu manipulieren und schließlich zu optimieren. In den letzten Phasen ist das gemeinsame Design von Hardware und Software entscheidend für den Erfolg. Quelle: Bryon Moyer/Semiconductor Engineering

Dies gilt auch für maschinelles Lernen. Wenn sich ein cleverer Hardware-Trick in der Software nur schwer umsetzen lässt, wird er wahrscheinlich nie zum Einsatz kommen. Letztendlich werden die erfolgreichsten Angebote wahrscheinlich Architekturen sein, die gut zu ihren Tools passen und auf alle Funktionen verzichten, die von den Tools nicht effektiv genutzt werden können.

„Eine der grundlegenden Prämissen des Unternehmens ist, dass die Anforderungen der Software das Design der Hardware bestimmen müssen“, sagte Nigel Drago, CTO von Quadric.io, auf der Linley Processor Conference im vergangenen Herbst.

Auf derselben Konferenz erwähnte Ravi Setty, Senior Vice President von Roviero, die Rolle der Software bei der Definition der Unternehmensarchitektur. „Wir haben die Komplexität der Hardware vielleicht um 5 % erhöht, um etwa 90 % Einfachheit beim Compiler zu erreichen. Die Hardware ist völlig unabhängig von den Informationen des neuronalen Netzes. Es ist der Compiler, der über das gesamte Wissen verfügt. Und die Hardware – es ist nur eine Ausführungsmaschine.“

Obwohl die Rolle von Tools zunimmt, sind wir noch nicht so weit, dass sie die Hardware vollständig verdrängen. Es gibt immer noch eine reichhaltige Mischung architektonischer Erkundungen, die noch nicht abgeschlossen ist. Wie bei vielen Entwicklungspfaden der Designautomatisierung betreten wir den Bereich, in dem viele Designs automatisch umsetzbar sein werden, wobei manuelle Optimierungen erforderlich sind, um das Beste aus der Hardware herauszuholen.

In dieser Marktphase gibt es auch eine Spannung zwischen allgemeineren Architekturen mit Software-Abstraktion und speziell entwickelten Architekturen. „Während eine softwaregesteuerte Allzweck-Hardwarelösung möglicherweise eine größere Flexibilität bietet, verlieren solche Lösungen häufig gegenüber Spezialhardware, wenn eine bestimmte Dimension (Fläche, Leistung, Geschwindigkeit, Kosten) von größerer Bedeutung ist“, bemerkte Clubb von Siemens EDA.

Dies kann eine Herausforderung für Software darstellen, die auf spezielle Hardware abzielt. „Jede Architektur hat einzigartige Vorteile und ist für bestimmte Anwendungsfälle optimiert“, erklärt Anoop Saha, Senior Manager, Strategie und Wachstum bei Siemens EDA. „Aber die Herausforderung für den Benutzer bleibt bestehen: Wie kann er sein Netzwerk auf einer bestimmten Hardwarearchitektur zusammenstellen? Und wenn sie dazu in der Lage sind, wie können sie es dann für die jeweilige Hardware optimieren und die verschiedenen verfügbaren Komponenten nutzen? Die hardwarespezifischen Optimierungen und Flexibilitäten müssen automatisierter durch die Software gehandhabt werden.“

Regeln Werkzeuge?
Letztlich hat man also den Eindruck, dass die Hardware-Gewinner auf lange Sicht diejenigen sein werden, die das beste Design-Erlebnis bieten und nur so viel Hardware zur Verfügung stellen, dass Entwickler bei ihren Design-Entscheidungen unterstützt werden. Das ist sicherlich die Art und Weise, wie FPGAs heute funktionieren. Tatsächlich kann die FPGA-Hardware in manchen Fällen theoretisch Dinge tun, die die Software nicht zulässt.

ML scheint einen ähnlichen Weg zu verfolgen. „Hardware-Innovationen, die erhebliche Leistungs- und Geschwindigkeitsvorteile bieten, werden in ein gemeinsames Software-Framework oder eine API integriert“, sagte Angara von Infineon. „Das bedeutet, dass sie erhebliche Vorteile bei der Ausführung von ML bieten, ohne den Aufwand ‚einfacher‘ Software.“

Es bleibt abzuwarten, ob Ingenieure aufhören, über die Hardware nachzudenken. „Können ML-‚Compiler‘ intelligent genug sein, um generische Hardwareplattformen so weit anzusprechen, dass die Hardware keine Rolle mehr spielt? Wahrscheinlich nicht“, sagte Clubb. „Die Spezialisierung auf ML-Hardware hat sicherlich Vor- und Nachteile, da sie die Flexibilität und Neuprogrammierbarkeit der Lösung einschränkt. Erfinderische Architekten und Hardware-Designer müssen immer dann effektivere Lösungen entwickeln, wenn die Allzwecklösung die Anforderungen der Anwendung nicht erfüllt.“

Die Skalierung und die Größe des Marktes können dies jedoch beeinflussen. Als die Synthese neu war, gab es viele Ingenieure, die dachten, sie könnten immer einen besseren Job machen als ein Werkzeug. Das mag wahr gewesen sein, aber es wurde unpraktisch, als die Designs skalierten, die Produktivitätserwartungen stiegen und die Werkzeuge verbessert wurden.

Auch wenn Hardware immer bis zu einem gewissen Grad eine Rolle spielen wird, sieht es so aus, als ob auf lange Sicht, genau wie bei der programmierbaren Logik, Software-Tools oft der Königsmacher sein könnten.

Quelle: https://semiengineering.com/ml-focus-shifting-toward-software/

Zeitstempel:

Mehr von Halbleitertechnik