)
Rust & KI als Effizienzpotenzial in der Automobilentwicklung
Alles andere als eingerostet
Die Programmiersprache Rust kombiniert die Sicherheit und den Komfort moderner Sprachen, ohne dabei auf die Leistung traditioneller Systemsprachen wie C und C++ zu verzichten. Gemeinsam mit dem Einsatz von LLMs in klassischen Sprachen steht der Automobilentwicklung so weiteres Effizienzpotenzial zur Verfügung.
Rust ist eine Programmiersprache,die seit 2009 entwickelt wird und 2010 erstmals der Öffentlichkeit vorgestellt wurde. Seitdem hat Rust stark an Popularität gewonnen und ist in den letzten fünf Jahren von allen Programmiersprachen am stärksten gewachsen, wobei die Kombination aus Leistung und Sicherheit von Entwicklerinnen und Entwicklern besonders geschätzt wird. Rund um die Sprache hat sich eine schnell wachsende Community und ein Ökosystem mit zahlreichen Bibliotheken und Werkzeugen entwickelt. Große Technologieunternehmen wie Google, Mozilla, Microsoft, Amazon und Facebook setzen Rust in verschiedenen Projekten ein, unter anderem in sicherheitskritischen Anwendungen und für Systemsoftware.
Ein Grund für die Popularität von Rust ist die erhöhte Sicherheit im Vergleich zu C oder C++, insbesondere durch die Vermeidung von Fehlern bei Speicherzugriffen. Rust eliminiert diese Probleme durch ein „Ownership-System“, das strenge Regeln für den Speicherzugriff festlegt. Jede Variable in Rust besitzt beispielsweise einen bestimmten, ihr zugewiesenen Speicherbereich – den sie auch wieder freigeben muss, wenn er nicht mehr benötigt wird. Das geschieht automatisch, wenn die Variable ihren Gültigkeitsbereich (Scope) verlässt. Auch beim Einsatz von Referenzen auf Speicherbereiche steigt die Sicherheit: Sie sind in Rust mit Lifetimes (Lebensdauern) versehen. Das soll sicherstellen, dass Referenzen nie auf ungültige Speicherbereiche zeigen. Race Conditions (Wettrennen um den Zugriff auf Ressourcen) zwischen verschiedenen Ausführungs-Threads eines Programmes werden durch das Ownership-System ebenfalls vermieden – hier lautet das Stichwort „Concurrency-Sicherheit“.
Trotz der erhöhten Sicherheit müssen Entwicklerinnen und Entwickler bei Rust keine Abstriche bei der Performance machen. Die Programmiersprache kann in vielen Fällen mit der Geschwindigkeit von C und C++ mithalten. Diese Kombination aus Sicherheit und Leistung macht Rust besonders attraktiv für die Entwicklung von Systemsoftware, Echtzeitanwendungen und andere Projekte mit hohen Leistungsanforderungen.
Ein weiterer Vorteil der Programmiersprache ist die ausgereifte Rust-Toolchain. Das integrierte Paketverwaltungssystem „Cargo“ und das robuste Testsystem machen die Softwareentwicklung effizient. Entwicklerinnen und Entwickler können schnell und einfach neue Projekte starten, Abhängigkeiten verwalten und umfangreiche Tests durchführen. Das erleichtert die Zusammenarbeit in Teams und fördert eine saubere, strukturierte Codebasis. Wie hoch das Ansehen von Rust mittlerweile ist, zeigt auch sein Einsatz als Programmiersprache für den Kern des Linux-Betriebssystems, bei dem Leistung und Sicherheit eine Schlüsselrolle spielen und der bislang in C programmiert wurde.
)
Krustentier am Steuer:
Die Krabbe „Ferris“ ist das Maskottchen der Rust-Community. Dank seiner technischen Vorzüge könnte Rust in Zukunft auch im Fahrzeug immer mehr Steuerungsaufgaben übernehmen.
Wachsendes Interesse
In der Automobilindustrie wächst das Interesse an Rust kontinuierlich, denn durch die Kombination aus Speichersicherheit, Effizienz und Concurrency-Sicherheit ist die Programmiersprache gut für den Einsatz in sicherheitskritischen eingebetteten Systemen für Fahrzeuge geeignet. Porsche Engineering hat bereits Erfahrungen damit gesammelt: „Wir haben im Januar ein erstes Projekt mit Rust gestartet: Wir programmieren damit den Kern eines Datensammler-Frameworks, das wir als Software-as-a-Service Dritten anbieten wollen“, berichtet Dr. Heiko Helble, Fachprojektleiter für ADAS-Softwareentwicklung bei Porsche Engineering. „Cybersecurity Spielt dabei eine wichtige Rolle für uns – und genau darum haben wir uns für Rust entschieden.“
Wie viele andere Expertinnen und Experten schätzt auch Helble an der Programmiersprache, dass sie typische Probleme wie unerlaubte Speicherzugriffe behebt und durch ihre Datentypen für die konsistente Verwendung von physikalischen Einheiten sorgt – es ist also beispielsweise nicht möglich, die Geschwindigkeit an einer Stelle in Metern pro Sekunde und an einer anderen Stelle in Kilometern pro Stunde zu erfassen. „Das erhöht den Programmieraufwand nur minimal, beschleunigt das Testing und die Fehlersuche aber deutlich“, so Helble.
Kombination mit einem LLM
Ein relativ neuer Trend in der Softwareentwicklung ist die Kombination von manueller und KI-unterstützter Programmierung, zum Beispiel mithilfe von Large Language Models (LLMs). Dabei gibt die Programmiererin oder der Programmierer einem LLM eine Teilaufgabe vor, und die KI liefert daraufhin den Quellcode. Prinzipiell ist das mit jeder Programmiersprache möglich, sofern das KI-Modell mit genügend Beispielen trainiert wurde. „Obwohl Rust viel jünger ist als C und es darum auch viel weniger Trainingsdaten gibt, funktioniert das bereits sehr gut“, berichtet Helble. „Ich habe mit einem LLM in 20 Minuten eine sehr komplexe Aufgabe auf Anhieb gelöst, für die ich normalerweise mehrere Stunden gebraucht hätte. Die Software war sofort lauffähig.“
Diese Art der KI-unterstützten Programmierung in Sprachen wie C oder C++ ist bereits heute bei Porsche Engineering erfolgreich im Einsatz. „LLMs bieten uns wertvolle Unterstützung bei der Lösung von Teilaufgaben“, berichtet Jonas Brandstetter, Entwicklungsingenieur bei Porsche Engineering. „Das könnte zum Beispiel die Kommunikation mit Peripherie-Hardware über bestimmte Schnittstellen sein. In Zukunft könnten wir aber bei den Anforderungen des Kunden starten, daraus die Aufgaben für das LLM generieren und so schließlich zum Code kommen.“ Entscheidend beim LLM-Einsatz in der Softwareentwicklung ist der Schutz vertraulicher Daten. Aus diesem Grund nutzt Porsche Engineering intern zugängliche Lösungen, die auf LLMs basieren, aber alle Datenschutzanforderungen erfüllen.
Info
Text erstmals erschienen im Porsche Engineering Magazin, Ausgabe 2/2024.
Text: Christian Buck
Illustration: Benedikt Rugar
Copyright: Alle in diesem Artikel veröffentlichten Bilder, Videos und Audio-Dateien unterliegen dem Copyright. Eine Reproduktion oder Wiedergabe des Ganzen oder von Teilen ist ohne die schriftliche Genehmigung von Porsche Engineering nicht gestattet. Bitte kontaktieren Sie uns für weitere Informationen.
Kontakt
Sie haben Fragen oder möchten weitere Informationen? Wir freuen uns über Ihre Kontaktaufnahme: info@porsche-engineering.de