DEENESPTFRRUARHIKOZHNL

module ara::shwa — Safe Hardware Acceleration

Diese Seite wurde vollständig KI-generiert auf Basis von SWS Safe Hardware Acceleration (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.

ModulegidsAI-GEGENEREERD

Maakt het veilige, gestandaardiseerde gebruik van heterogene hardwareversnellers voor dataparallele berekeningen mogelijk.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: cc6d229c7f27 Herkomst Open vragen (1)
Causaal anker: R25-11 Geldig vanaf R25-11 Nieuw gesynthetiseerd voor deze specificatiestand.
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Maakt het veilige, gestandaardiseerde gebruik van heterogene hardwareversnellers voor dataparallele berekeningen mogelijk.

Het adaptieve cluster shwa stelt een proceslokale bibliotheek beschikbaar voor de functioneel veilige aansturing van heterogene rekenversnellers zoals GPU's en NPU's (AUTOSAR_AP_EXP_SWArchitecture p. 127). Het maakt de apparaatagnostische selectie van uitvoeringseenheden, het beheer van n-dimensionale geheugenbuffers en het asynchrone in de wachtrij plaatsen van parallelle rekentaken via uitvoerwachtrijen mogelijk ([AP_SWS_SHWA_00309], [AP_SWS_SHWA_00912]). Bij taakuitvoeringsfouten bestaat er geen rollback-semantiek, waardoor de desbetreffende buffergegevens als onbepaald gewijzigd gelden ([AP_SWS_SHWA_00604]).

Het functionele cluster Safe Hardware Acceleration (shwa) stelt voor het AUTOSAR Adaptive Platform een gestandaardiseerd, functioneel veilig uitvoeringsmodel beschikbaar voor heterogene rekeneenheden zoals GPU's, NPU's, DSP's en FPGA's (AUTOSAR_AP_EXP_SWArchitecture p. 132). Uitgevoerd als in-process bibliotheek stelt shwa Adaptive Applications evenals andere functionele clusters in staat om high-performance rekenbronnen direct en zonder latentie aan te sturen (AUTOSAR_AP_EXP_SWArchitecture p. 127, SWS_SafeHardwareAcceleration p. 23).

Hardwareplatforms en doelapparaten worden geabstraheerd via Platform en Device ([AP_SWS_SHWA_01107], [AP_SWS_SHWA_00308]). Met behulp van strategieklassen zoals GpuSelector of AcceleratorSelector kunnen applicaties geschikte rekendoelen flexibel selecteren ([AP_SWS_SHWA_00407], [AP_SWS_SHWA_00413]). Databuffers worden via Buffer gealloceerd in N-dimensionale indexruimten (Range), terwijl gestructureerde lees- en schrijftoegang typeveilig plaatsvindt via Accessor en Id ([AP_SWS_SHWA_00209], [AP_SWS_SHWA_00007], [AP_SWS_SHWA_00707]).

Bufferallocatie, kernel-indiening en synchronisatieApplicationBufferQueueTaskHandlerEventUse Case: Buffer- en queue-voorbereidingCreate(bufferRange, propList)Result<unique_ptr<Buffer>>Create(device, errorHandler)Result<unique_ptr<Queue>>Use Case: Taakdefinitie en submissionParallelFor(bufferSize, cfg)Submit(cfg, handler)Create()Result<Event>Use Case: SynchronisationWait()Result<void>

Sequentiediagram: End-to-end-verloop van bufferallocatie, kernel-indiening (submit) en asynchrone synchronisatie. Bronnen: AP_SWS_SHWA_00209, AP_SWS_SHWA_00909, AP_SWS_SHWA_00912, AP_SWS_SHWA_00604.

Rekenopdrachten worden via TaskHandler gedefinieerd als enkelvoudige taak of parallelle lus en via wachtrijen (Queue) naar het apparaat verzonden ([AP_SWS_SHWA_01203], [AP_SWS_SHWA_00912]). Het resultaat levert een Event-object op voor blokkerende of tijdgebonden synchronisaties ([AP_SWS_SHWA_00604], [AP_SWS_SHWA_00606]). Voor runtimebewaking dient DeviceMonitor, die de actuele hardwaretoestand (kReady, kNotAccesible, kFailure, kUnknown) weergeeft ([AP_SWS_SHWA_01407], [AP_SWS_SHWA_00103]).

Fouten worden deterministisch gemeld via ara::core::Result en ShwaErrorCode ([AP_SWS_SHWA_01301]). Mislukt een taakuitvoering, dan bezitten de operaties geen rollback-semantiek, zodat gekoppelde buffers als onbepaald gewijzigd moeten worden geclassificeerd ([AP_SWS_SHWA_00604], [AP_SWS_SHWA_00914]).

Architectonische rol en systeemgrenzen van Safe Hardware Acceleration

Het functionele cluster Safe Hardware Acceleration (shwa) biedt binnen het AUTOSAR Adaptive Platform een gestandaardiseerd, functioneel veilig uitvoerings- en abstractiemodel voor heterogene rekeneenheden zoals GPU's, DSP's, NPU's en FPGA's (AUTOSAR_AP_EXP_SWArchitecture p. 132). In tegenstelling tot op daemons gebaseerde platformclusters zoals Platform Health Management is shwa ontworpen als een niet op daemons gebaseerde, proceslokale bibliotheek (in-process bibliotheek) (AUTOSAR_AP_EXP_SWArchitecture p. 127). Daardoor opereert de runtime-omgeving direct in de POSIX-adresruimte van het consumerende gebruikersproces en ontkoppelt deze rekenopdrachten zonder IPC-latenties van de onderliggende versnellerdrivers (AUTOSAR_AP_SWS_SafeHardwareAcceleration p. 23).

Het architectonische interface-ontwerp sluit aan bij moderne standaarden voor heterogeen rekenen zoals SYCL en OpenCL, maar adapteert deze paradigma's strikt aan de deterministische en veiligheidsgerichte voorschriften van het AUTOSAR Adaptive Platform (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI p. 15). Constructors van alle primaire interfaceklassen zijn als private gedeclareerd; instanties kunnen uitsluitend worden aangemaakt via benoemde statische factory-methoden van het type Create() (EXP_SafeHardwareAccelerationAPI p. 15). Vrijwel alle operaties signaleren hun succes of systeemspecifieke fouttoestanden via het retourtype ara::core::Result ([AP_SWS_SHWA_00308], EXP_SafeHardwareAccelerationAPI p. 15). Naast reguliere Adaptive Applications kunnen ook andere functionele clusters (bijvoorbeeld beeldverwerkings- of perceptieclusters) de C++-interfaces van shwa direct integreren voor sterk parallelle HPC-workloads (SWS_SafeHardwareAcceleration p. 23).

SafeHardwareAccelerationArchitecture cluster_app_process POSIX Process (Adaptive Application / Functional Cluster) cluster_shwa_lib ara::shwa (In-Process Library) cluster_hardware Hardware Targets app Application Logic platform Platform & Device Management (Platform, Device, DeviceSelector) app->platform memory Data Management (Buffer, Accessor, Range, Id) app->memory execution Task Execution & Scheduling (Queue, TaskHandler, Event) app->execution safety Safety & Health Monitoring (DeviceMonitor, ErrorHandler) app->safety platform->execution memory->execution gpu GPU execution->gpu npu NPU / VPU execution->npu dsp DSP / FPGA execution->dsp cpu Host CPU execution->cpu safety->gpu safety->npu

Contextdiagram: Inbedding van ara::shwa als in-process bibliotheek in de POSIX-procesruimte voor de aansturing van heterogene versnellers. Bronnen: AUTOSAR_AP_EXP_SWArchitecture p. 127, SWS_SafeHardwareAcceleration p. 22.

Hardwaretopologie, platformbepaling en device-selectie

De topologie van de in het totale systeem geïntegreerde rekenversnellers wordt geabstraheerd via de interface Platform ([AP_SWS_SHWA_01107]). Via de statische operatie Platform::GetPlatforms() bepaalt de applicatie eerst alle geregistreerde uitvoeringsplatforms en vraagt vervolgens via Platform::GetDevices() de respectievelijk toegewezen rekeneenheden op ([AP_SWS_SHWA_01108], AUTOSAR_AP_EXP_SWArchitecture p. 132). Elk fysiek of logisch uitvoeringsdoel wordt in het systeem gerepresenteerd door een Device-object ([AP_SWS_SHWA_00302]). Een Device biedt inspectiemethoden voor de classificatie van het hardwaretype, waaronder IsCpu() ([AP_SWS_SHWA_00310]), IsGpu() ([AP_SWS_SHWA_00311]) en IsAccelerator() ([AP_SWS_SHWA_00312]), evenals generieke detailopvragingen via het functietemplate GetInfo() ([AP_SWS_SHWA_00313]).

Voor de gerichte selectie van geschikte rekeneenheden stelt shwa het polymorfe selectiepatroon DeviceSelector beschikbaar ([AP_SWS_SHWA_00402], [AP_SWS_SHWA_00403]). Via de standaardimplementaties GpuSelector ([AP_SWS_SHWA_00406], [AP_SWS_SHWA_00407]), CpuSelector ([AP_SWS_SHWA_00409], [AP_SWS_SHWA_00410]) en AcceleratorSelector ([AP_SWS_SHWA_00412], [AP_SWS_SHWA_00413]) kunnen systemen rekendoelen filteren op basis van vooraf gedefinieerde prioriteiten of heuristische geschiktheidsbeoordelingen. De factory-methode Device::Create(deviceSelector) koppelt dit selectiemechanisme direct aan de apparaatinstantiëring ([AP_SWS_SHWA_00309]).

Topologieopvraag en creatie van een rekenapparaatApplicationPlatformDeviceSelectorDeviceGetPlatforms()Result<Vector<Platform>>GetDevices()Result<Vector<Device>>Use Case: Selectie en instantiëringSelectDevice()Result<Device>Create(deviceSelector)Result<Device>

Sequentiediagram: topologiebepaling, selectie van een rekendoel en instantiëring van een logisch Device. Bronnen: AP_SWS_SHWA_01107, AP_SWS_SHWA_01108, AP_SWS_SHWA_00407, AP_SWS_SHWA_00309.

Geheugenbeheer en multidimensionale datatoegang met Buffer en Accessor

Voor parallelle rekenkundige bewerkingen op heterogene architecturen scheidt shwa de fysieke dataopslag strikt van de logische toegang (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI p. 15). Geheugengebieden worden ingekapseld via het template Buffer<DataT, Dimensions, AllocatorT> ([AP_SWS_SHWA_00202]). De omvang van een geheugen in een-, twee- of driedimensionale ruimte wordt bepaald door de structuur Range<Dimensions> ([AP_SWS_SHWA_01007], [AP_SWS_SHWA_01008], [AP_SWS_SHWA_01009]), waarvan de dimensies kunnen worden opgevraagd via GetDimension0(), GetDimension1() en GetDimension2() ([AP_SWS_SHWA_01010], [AP_SWS_SHWA_01011], [AP_SWS_SHWA_01012]). Een buffer kan ofwel nieuw met eigen geheugen resp. allocator worden aangemaakt ([AP_SWS_SHWA_00209], [AP_SWS_SHWA_00210]), ofwel bestaande host-geheugenpointers (hostData) als invoer- of uitvoerdata integreren ([AP_SWS_SHWA_00211], [AP_SWS_SHWA_00213], [AP_SWS_SHWA_00214]). Eigenaarsbuffers worden door Buffer::Create() typisch als std::unique_ptr geretourneerd (EXP_SafeHardwareAccelerationAPI p. 15).

De feitelijke lees- en schrijftoegang tot bufferdata vindt niet direct via pointers plaats, maar via getypeerde Accessor-objecten ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). De toegangsmodus wordt bepaald via het enum AccessMode, dat de varianten kRead, kWrite en kReadWrite omvat ([AP_SWS_SHWA_00101]). De adressering van discrete indexpunten in de N-dimensionale ruimte gebeurt met behulp van het type Id<Dimensions> ([AP_SWS_SHWA_00707], [AP_SWS_SHWA_00708], [AP_SWS_SHWA_00709]) met de bijbehorende coördinaat-getters en -setters ([AP_SWS_SHWA_00710], [AP_SWS_SHWA_00711]). Voor de manipulatie van afzonderlijke array-elementen biedt Accessor de indexoperator operator[] ([AP_SWS_SHWA_00009], [AP_SWS_SHWA_00010]) evenals de synchroniserende methoden Get() ([AP_SWS_SHWA_00012]) en Set() ([AP_SWS_SHWA_00011]). Door de overdracht van PropertyList-instanties kunnen specifieke geheugeneigenschappen en toegangsattributen declaratief worden toegevoegd ([AP_SWS_SHWA_00802], [AP_SWS_SHWA_00015], [AP_SWS_SHWA_00215]).

Taakdefinitie, taakplanning en uitvoering via Queues

De uitvoering van berekeningen op accelerator-devices wordt gecoördineerd via commandowachtrijen van het type Queue ([AP_SWS_SHWA_00902]). Een Queue wordt via zijn factory-methode Create() gekoppeld aan een bepaald Device of een DeviceSelector en optioneel geconfigureerd met een ErrorHandler en een PropertyList ([AP_SWS_SHWA_00908], [AP_SWS_SHWA_00909]). De methode GetDevice() levert het aan de queue gekoppelde rekenapparaat terug ([AP_SWS_SHWA_00910]). Het uitvoeringsgedrag van de wachtrij kan via IsInOrder() worden gecontroleerd ([AP_SWS_SHWA_00911]): bij een in-order-wachtrij worden ingeplande rekentaken strikt sequentieel verwerkt (AUTOSAR_AP_EXP_SWArchitecture p. 133).

De definitie van concrete workloads gebeurt met behulp van TaskHandler ([AP_SWS_SHWA_01202]). De task-handler maakt onderscheid tussen atomische enkelvoudige taken (SingleTask(), [AP_SWS_SHWA_01203]) en dataparallele rekenroosters (ParallelFor(), [AP_SWS_SHWA_01204]). Het doel van de uitvoering kan daarbij via de enumeratie Target worden vastgelegd als een accelerator (kDevice) of als een CPU-hosttaak (kHostTask) ([AP_SWS_SHWA_00102]). De indiening bij de wachtrij gebeurt via de methode Queue::Submit() ([AP_SWS_SHWA_00912]). Bij complexere pipelines ondersteunt Submit() ook de specificatie van een secundaire queue om afhankelijkheden tussen verschillende hardware-pipelines in kaart te brengen ([AP_SWS_SHWA_00913], AUTOSAR_AP_SWS_SafeHardwareAcceleration p. 23).

Bufferallocatie, kernel-indiening en synchronisatieApplicationBufferQueueTaskHandlerEventUse Case: Buffer- en queue-voorbereidingCreate(bufferRange, propList)Result<unique_ptr<Buffer>>Create(device, errorHandler)Result<unique_ptr<Queue>>Use Case: Taakdefinitie en submissionParallelFor(bufferSize, cfg)Submit(cfg, handler)Create()Result<Event>Use Case: SynchronisationWait()Result<void>

Sequentiediagram: End-to-end-verloop van bufferallocatie, kernel-indiening (submit) en asynchrone synchronisatie. Bronnen: AP_SWS_SHWA_00209, AP_SWS_SHWA_00909, AP_SWS_SHWA_00912, AP_SWS_SHWA_00604.

Op gebeurtenissen gebaseerde synchronisatie en hardware-toestandbewaking

Elke indiening via Queue::Submit() retourneert een Event-object dat dient als asynchroon synchronisatie-anker ([AP_SWS_SHWA_00912], [AP_SWS_SHWA_00602]). Een aanroeper kan de voltooiing van de hardwareberekening blokkerend via Event::Wait() afwachten ([AP_SWS_SHWA_00604]) of een in de tijd begrensde synchronisatie via WaitFor(ms) uitvoeren ([AP_SWS_SHWA_00606]). Meerdere gebeurtenissen kunnen geaggregeerd via Event::Wait(const Vector<Event>&) worden bewaakt ([AP_SWS_SHWA_00605]). Als alternatief biedt de queue zelf collectieve synchronisatiemethoden: Queue::Wait() blokkeert totdat alle tot dusver in de wachtrij geplaatste taken zijn verwerkt ([AP_SWS_SHWA_00914]), terwijl Queue::WaitFor(ms) het wachten limiteert tot een vooraf ingestelde time-out ([AP_SWS_SHWA_00917]).

Om de betrouwbaarheid en functionele veiligheid van de hardware-accelerators tijdens runtime te waarborgen, definieert shwa de bewakingscomponent DeviceMonitor ([AP_SWS_SHWA_01402]). Instanties worden aangemaakt via statische Create()-methoden gerelateerd aan een Device of een DeviceSelector ([AP_SWS_SHWA_01407], [AP_SWS_SHWA_01408]). Via de methode DeviceMonitor::Status() wordt de actuele hardwaretoestand opgevraagd ([AP_SWS_SHWA_01409]). De enumeratie DeviceStatus omvat vier gestandaardiseerde toestanden: kReady (0, bedrijfsgereed), kNotAccesible (1, niet toegankelijk), kFailure (2, fouttoestand) en kUnknown (255, status niet bepaalbaar) ([AP_SWS_SHWA_00103]). Dit bewakingsmechanisme vormt het fundament voor veiligheidsanalyses en health-monitoring conform ISO 26262 (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI p. 15).

DeviceStatusLifecycle Init kReady kReady (0) Init->kReady kNotAccesible kNotAccesible (1) kReady->kNotAccesible Hardware getrennt / belegt kFailure kFailure (2) kReady->kFailure Hardwarefehler / Timeout kUnknown kUnknown (255) kReady->kUnknown Status unbestimmbar kNotAccesible->kReady Wiederhergestellt kNotAccesible->kFailure Schwerer Defekt kFailure->kUnknown Status unbestimmbar kUnknown->kReady Status revalidiert

Toestandsdiagram: levenscyclus en statusovergangen van de DeviceStatus volgens ara::shwa::DeviceMonitor. Bronnen: AP_SWS_SHWA_00103, AP_SWS_SHWA_01409.

Gedrag bij fouten en diagnose

Het foutafhandelingsconcept van shwa is gebaseerd op het AUTOSAR-specifieke foutdomein ShwaErrorDomain ([AP_SWS_SHWA_01307]), dat via GetShwaDomain() kan worden verkregen ([AP_SWS_SHWA_01311]). Specifieke foutcodes worden gerepresenteerd door de gestandaardiseerde enumeratie ShwaErrorCode ([AP_SWS_SHWA_01301]). Hiertoe behoren fundamentele runtime-fouten zoals kRuntime, het afbreken van berekeningen op de accelerator zoals kTaskExecutionFailure, geheugenallocatiefouten zoals kMemoryNotAllocated, schendingen van de geheugenintegriteit zoals kIntegrityCorrupted, tijdelijke resourceconflicten zoals kResourceBusy evenals ongeldige toegangsmodi zoals kInvalidAccessMode ([AP_SWS_SHWA_01301]). Foutcodes worden typesafe geconstrueerd met MakeErrorCode() ([AP_SWS_SHWA_01312]) en leveren via Name() en Message() tekstuele beschrijvingen op ([AP_SWS_SHWA_01308], [AP_SWS_SHWA_01309]).

Fouten bij de asynchrone uitvoering of bij het wachten op gebeurtenissen (Event::Wait() of Queue::Wait()) hebben ernstige gevolgen voor de dataconsistentie: als tijdens de berekening een kTaskExecutionFailure of kRuntime optreedt, hebben de betreffende bewerkingen geen rollback-semantiek en worden de data in de gekoppelde buffers als onbepaald gewijzigd beschouwd ([AP_SWS_SHWA_00604], [AP_SWS_SHWA_00914]). Voor asynchrone meldingen wordt de klasse ErrorHandler gebruikt, waarvan de callback door middel van HandleError() wordt getriggerd ([AP_SWS_SHWA_00507], [AP_SWS_SHWA_00508]). Mocht de applicatie uitzonderingsafhandeling vereisen, dan kunnen fouten via ThrowAsException() worden geconverteerd naar een ShwaException ([AP_SWS_SHWA_01303], [AP_SWS_SHWA_01310]).

Verdere detailbewijzen en specificatiereferenties

De architectuur en eisen van het cluster shwa zijn volledig onderbouwd door normatieve requirements en bijbehorende toelichtingsdocumenten. Tabel 1 vat de kernconcepten en hun toonaangevende vindplaatsen samen.

OnderwerpBelangrijke specificatie-elementenVindplaatsen
Architectuur & implementatieIn-process-bibliotheek, functionele indeling in categorie SafetyAUTOSAR_AP_EXP_SWArchitecture S. 127, AUTOSAR_AP_EXP_SWArchitecture S. 132
Topologie & selectiePlatform, Device, DeviceSelector, GpuSelector, CpuSelector[AP_SWS_SHWA_01107], [AP_SWS_SHWA_00308], [AP_SWS_SHWA_00403]
Geheugen & datatoegangBuffer, Accessor, Range, Id, AccessMode[AP_SWS_SHWA_00209], [AP_SWS_SHWA_00007], [AP_SWS_SHWA_01007], [AP_SWS_SHWA_00101]
Taakplanning & synchronisatieQueue, TaskHandler, Event[AP_SWS_SHWA_00908], [AP_SWS_SHWA_01202], [AP_SWS_SHWA_00604]
Hardwarebewaking & foutenDeviceMonitor, DeviceStatus, ShwaErrorCode, ErrorHandler[AP_SWS_SHWA_01407], [AP_SWS_SHWA_00103], [AP_SWS_SHWA_01301], [AP_SWS_SHWA_00507]

De typische pipeline-instantiëring en ontkoppeling van meerdere wachtrijen binnen een applicatie wordt uitvoerig geïllustreerd in de specificatie (SWS_SafeHardwareAcceleration p. 22, AUTOSAR_AP_SWS_SafeHardwareAcceleration p. 23). De strikte scheiding van geheugen- en rekenbronnen garandeert daarbij deterministisch gedrag in veiligheidskritieke automotive-toepassingsgebieden (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI p. 15).

Deze handleiding is gegenereerd door een AI-curatie-assistent op basis van de AUTOSAR Adaptive-specificatie R25-11.

Spezifikation: AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf (R25-11) · 160 API-Records

class: 18 function: 120 enumeration: 4 type alias: 3 header file: 15

ara::shwa

AcceleratorSelector manages accelerator selection for operations on HWA if available.

Accessor klasse

Accessor manages read and write access to allocated memory by Buffer. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ptr, which may be moved. ≙ std::unique_ptr

Buffer klasse

Buffer manages memory allocation for operations on the host or/and HWA. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ptr, which may be moved. ≙ std::unique_ptr

CpuSelector manages CPU selection for operations on HWA if available Allows to get a device from any supported backends for which the device type is CPU.

Device klasse

Device class represents HWA device. Provides access to the device but not controlling it. Designed as copyable since not owning resources.

DeviceMonitor API class. Designed as copyable since not owning resources.

Class allowing to choose the most appropriate device of the available ones. This is a callable object taking a device reference and returning an integer rank. One of the device with the highest non-negative value is selected.

ErrorHandler manages asynchronous error handling for operations on HWA.

Event klasse

Event class helps to manage task execution synchronization between HWA and Host application. Can be created only inside of the Queue otherwise it’s meaningless.

GpuSelector manages GPU selection for operations on HWA if available Select a device from any supported backends for which the device type is GPU.

Id klasse

Id API class. Designed as copyable since not owning resources.

Platform klasse

Platform class is responsible for extracting different HWA platforms available for current application and listing Devices bind to each platform. Designed as copyable since not owning resources.

Property List class is designed to enable vendor specific SHWA functionality extension and adjustment. Properties are not standardized and can be defined by Vendor. Class using Property list is obliged to have HasProperty() and GetProperty() methods defined.

Queue klasse

Queue API provides the functionality for parallel processing on selected Device. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ ptr, which may be moved. ≙ std::unique_

Range klasse

Defines size of Buffer for one, two or three dimensions. Designed as copyable since not owning resources.

Defines the error domain for Safe Hardware Acceleration.

Exception type could be thrown by application or other FC using Safe Hardware Acceleration. Safe Hardware Acceleration API is exception free and can only return an ErrorCode, but user code can transform this error to exception and throw if it’s alligned with system error handling architecture.

Handles tasks execution on the selected Device Can be created only inside of the Queue otherwise it’s meaningless.

Liest die durch die Signatur bezeichnete Information oder Eigenschaft aus dem Objekt.

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;

Die Spezifikation definiert diese Deklaration mit der in der Signatur ausgewiesenen Semantik.

constexpr ara::core::ErrorCode MakeErrorCode (ShwaErrorCode code, ara::core::ErrorDomain::SupportDataType data) noexcept;
AccessMode enumeratie

Die Enumeration definiert die folgenden standardisierten Werte.

enum class AccessMode : std::uint32_t {...};
DeviceStatus enumeratie

Die Enumeration definiert die folgenden standardisierten Werte.

enum class DeviceStatus : std::uint32_t {...};
ShwaErrorCode enumeratie

Die Enumeration definiert die folgenden standardisierten Werte.

enum class ShwaErrorCode : ara::core::ErrorDomain::CodeType {...};
Target enumeratie

Die Enumeration definiert die folgenden standardisierten Werte.

enum class Target : std::uint32_t {...};

Namespaces

Architectuursamenwerking

G Zusammenspiel bei einer Task-Einreichung app Adaptive Application buf Buffer app->buf 1: Create(range) acc Accessor app->acc 3: Create(buffer, handler) queue Queue app->queue 2: Create(device, error handler) app->queue 4: Submit(lambda) queue->app 7: Result<Event> handler TaskHandler queue->handler 5: invoke task device Device handler->device 6: ParallelFor / SingleTask error ErrorHandler device->error 6a: async error (if any)

Klickbare Knoten führen zu den Klassenseiten. Quellen: SWS SHWA §7.1, SWS SHWA §7.3, SWS SHWA §7.6. Teilweise Interpretation: Die Kollaboration verdichtet die in den Quellen separat beschriebenen Rollen.

Headerbestanden (hoofdstuk 8)