AUTOSAR_AP_EXP_ParallelProcessingGuidelines
FIG-d82699558e4ca64c
839 × 544 px
5 Release(s)
Figure 5.2: Accelerator-model example
SHA-256 Inhalts-Fingerabdruck:
d82699558e4ca64c7cdf3a5bc047e90a84cecbcd80541b63e588333f26d024d1
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Diagrammtyp: Kombiniertes Prozess-, Schichten- und Hardware-Architekturdiagramm (Combined Process and Physical Architectural View) nach AUTOSAR Adaptive Platform (AP).
- Architektur-Kontext: AUTOSAR AP (
AUTOSAR_AP_EXP_ParallelProcessingGuidelines, Kap. 5.2.2 Accelerator-model). - Technischer Zweck: Spezifikation des Beschleunigermodells (Offloading-Architektur via OpenCL, CUDA oder OpenVX) zur Entkopplung von rechenintensiver Datenverarbeitung (z. B. Objekterkennung) von der Standard-CPU. Es kapselt hardwarenahe Parallelisierungs-Frameworks hinter standardisierten Service-Schnittstellen (
ara::com) und definiert die vertikale Schichtung vom Applikationsprozess bis zu den heterogenen Recheneinheiten (CPUs vs. GPGPU).
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Klassifikation (gemäß Diagrammlegende)
- ADAS AA1 (
OS process): Adaptive Application (Client-Prozess im POSIX-User-Space), die funktionale Assistenzfunktionen ausführt und Erkennungsergebnisse konsumiert. - Object Detection server (
OS process): Spezifischer Adaptive Service-Provider-Prozess (Server-Kapselung).- Thread (
Thread): Ausführungskontext innerhalb des Server-Prozesses zur Verwaltung von Anfragen, Datentransfers und Synchronisation. - OpenCL kernels (
Framework specific module): GPU-Programmcodes/Rechenkerne; werden vom Server-Prozess gehalten und in die Recheneinheit geladen (loaded).
- Thread (
- OpenCL (
Framework/engine): Laufzeitumgebung/User-Space-Bibliothek (OpenCL Runtime Framework) zur Verwaltung von Compute-Contexts, Command Queues und Memory Buffers. - Accelerator device driver (
OS specific module): Betriebssystemspezifischer Treiber; je nach OS-Architektur (Monolithisch vs. Microkernel) als Kernel-Modul oder eigenständiger Treiber-Prozess realisiert. - GPGPU / CPUs (
Hardware): Heterogene Zielhardware: Multi-Core Host-CPUs für Steuerungs- und OS-Aufgaben sowie GPGPU (General-Purpose Graphics Processing Unit) als Beschleuniger.
Schnittstellen (Interfaces) & Beziehungen
C++ generated service I/F: Service-orientierte Schnittstelle (ara::comProxy/Skeleton bzw. C++Bindings) zwischen ClientADAS AA1undObject Detection server. Entkoppelt Applikationslogik vollständig vom Beschleuniger.OpenCL library I/F: Standardisierte API (Host-API) zwischen dem Server-Thread und der OpenCL-Framework-Bibliothek.OS specific device driver I/F: Systemschnittstelle (z. B. POSIXioctl, System Calls oder IPC) zwischen OpenCL-User-Space-Runtime und dem Beschleuniger-Treiber.HW specific hardware-software I/F: Physische Anbindung (PCIe, Shared Memory, DMA-Controller, MMIO-Register) zwischen Treiber und GPGPU bzw. Host-CPUs.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungs- & Ladephase:
- Der
Object Detection serverinitialisiert den OpenCL-Kontext und die Command Queues über dieOpenCL library I/F. - Die vorkompilierten
OpenCL kernelswerden geladen (loaded) und über den Treiber auf die GPGPU geflasht/alloziert.
- Der
- Service Request (asynchron/synchron):
ADAS AA1triggert eine Verarbeitungsanforderung über dasC++ generated service I/F(ara::com-Methodenaufruf oder Event-Bereitstellung mit Bild-/Sensordaten).
- Offloading & Execution:
- Der Server-
Threadserialisiert/mapped die Eingangsdaten in Beschleuniger-kompatible Puffer (Device Memory / Shared Virtual Memory). - Übergabe der Ausführungsbefehle über die
OpenCL library I/Fan den Beschleunigertreiber (OS specific device driver I/F). - Der Treiber stößt per DMA/Registerzugriff die parallele Kernel-Abarbeitung auf der
GPGPUan. Die Host-CPUswerden während der GPU-Kernel-Ausführung entlastet.
- Der Server-
- Synchronisation & Response:
- Nach Kernel-Beendigung signalisiert die GPGPU (typischerweise via Interrupt) die Fertigstellung an den
Accelerator device driver. - Die OpenCL-Engine benachrichtigt den Server-
Thread(Event-Completion). - Der
Object Detection serverextrahiert die Ergebnisse und liefert sie über dasC++ generated service I/Fzurück anADAS AA1.
- Nach Kernel-Beendigung signalisiert die GPGPU (typischerweise via Interrupt) die Fertigstellung an den
4. Normative Relevanz & Entwickler-Hinweise
- Kapselung & Safety-Zonierung:
- Adaptive Applications (
ADAS AA1) dürfen keine direkten Abhängigkeiten auf herstellerspezifische Beschleuniger-APIs (OpenCL, CUDA, ROCm) besitzen. Sämtliche Hardware-Beschleunigung ist in dedizierten Server-Prozessen hinter AUTOSAR-Services zu kapseln. - Dies ermöglicht unabhängiges Lifecycle-Management (Execution Management) und erleichtert die ASIL-Dekomposition (z. B. QM-Beschleuniger hinter ASIL-B/D-Service-Wrapper).
- Adaptive Applications (
- Treiber- & OS-Konfiguration:
- Der
Accelerator device drivermuss zur Plattform-Strategie passen: Bei Microkernel-Systemen (z. B. QNX Neutrino) läuft der Treiber oft als User-Space Resource Manager, bei Linux (RT-Preempt) als Kernel-Modul. Echtzeit-Prioritäten müssen zwischen Server-Thread und Treiber-Interrupts strikt abgestimmt sein.
- Der
- Determinismus & Kernel-Kompilierung:
- Just-In-Time (JIT) Kompilierung von OpenCL-Kernels zur Laufzeit im Fahrzeug ist unzulässig. Kernels müssen als vorkompilierte Binaries (Offline-Compilation, z. B. SPIR-V oder vendorspezifische Binärformate) vorliegen, um Startzeit- und Laufzeit-Jitter zu eliminieren.
- Speichereffizienz (Zero-Copy):
- Datentransfers zwischen Server-Prozess, Host-Memory und GPGPU-Memory stellen den Haupt-Flaschenhals dar. Entwickler müssen Shared Memory (IPC) auf
ara::com-Ebene und Zero-Copy-Mechanismen (Unified Memory / Shared Virtual Memory SVM) auf OpenCL-Ebene einsetzen, um redundantememcpy-Zyklen zu verhindern.
- Datentransfers zwischen Server-Prozess, Host-Memory und GPGPU-Memory stellen den Haupt-Flaschenhals dar. Entwickler müssen Shared Memory (IPC) auf
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.