DEENESPTFRRUARHIKOZHNL

classe ara::shwa::TaskHandler

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.

[AP_SWS_SHWA_01201] libellé pas encore importé Upstream: RS_SHWA_00001

class TaskHandler final {...};

Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.

Header-Datei#include "ara/shwa/task_handler.h"
Scopenamespace ara::shwa

Guide utilisateurGÉNÉRÉ PAR IA

Permet la création et la soumission de tâches de calcul individuelles ou parallèles à des périphériques accélérateurs.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 6d7c7c77c2a9 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Permet la création et la soumission de tâches de calcul individuelles ou parallèles à des périphériques accélérateurs.

La classe ara::shwa::TaskHandler sert à l’exécution de tâches sur du matériel d’accélération via des soumissions en file d’attente [AP_SWS_SHWA_01203]. Les nouvelles instances sont créées de manière thread-safe via la méthode fabrique statique Create(), qui renvoie les erreurs dans le ara::core::Result [AP_SWS_SHWA_01202]. Via SingleTask ainsi que ParallelFor, des étapes de calcul individuelles ou à parallélisme de données peuvent être transmises au périphérique cible. Tandis que l’instanciation est thread-safe, les soumissions de tâches ne le sont pas et nécessitent une synchronisation externe en cas d’accès parallèle.

Contexte

En tant que classe finale (final), la classe ara::shwa::TaskHandler fait partie du module pour l’accélération matérielle (shwa) au sein d’AUTOSAR Adaptive Platform. Elle fait office d’interface centrale pour la transmission et l’exécution de tâches de calcul sur un périphérique cible sélectionné (Device). Au sein de l’architecture logicielle, la classe assume le rôle d’intermédiaire entre le composant logiciel applicatif et l’infrastructure d’exécution sous-jacente.

L’interaction a lieu principalement entre deux partenaires du système : l’application appelante et l’accélérateur matériel sélectionné ou sa file d’attente de tâches. Les opérations de calcul définies côté application sont réceptionnées via les interfaces de ara::shwa::TaskHandler et transmises au périphérique sous forme de soumissions en file d’attente [AP_SWS_SHWA_01203]. Cela permet aussi bien le traitement d’étapes de calcul individuelles que de modèles de traitement à parallélisme de données [AP_SWS_SHWA_01204]. Interprétation : la classe devrait encapsuler les files d’attente spécifiques au périphérique, de sorte que les composants applicatifs puissent piloter les ressources d’accélération sans être liés à des détails matériels de bas niveau. Question (ouverte)

Cycle de vie

Le cycle de vie d’une instance de ara::shwa::TaskHandler est contrôlé par un patron de conception fabrique strict. L’instanciation s’effectue exclusivement via la méthode fabrique statique Create() [AP_SWS_SHWA_01202]. La classe étant déclarée comme final, une spécialisation par héritage est exclue. L’objet créé est renvoyé encapsulé dans un ara::core::Result<TaskHandler>, ce qui impose de vérifier explicitement le succès de l’initialisation [AP_SWS_SHWA_01202].

En matière de concurrence et de sécurité des threads, la classe présente des caractéristiques différenciées :

  • Instanciation : l’appel de la méthode statique Create() est thread-safe (thread-safe) [AP_SWS_SHWA_01202]. Plusieurs threads peuvent ainsi créer simultanément de nouvelles instances de gestionnaires via le chemin de la fabrique.
  • Soumission de tâches : les méthodes de transmission des ordres de travail, SingleTask [AP_SWS_SHWA_01203] et ParallelFor [AP_SWS_SHWA_01204], sont explicitement spécifiées comme non thread-safe (not thread-safe). Une instance unique de TaskHandler ne doit par conséquent pas être sollicitée simultanément depuis plusieurs threads de manière non coordonnée ; la synchronisation incombe à l’appelant.
  • Sécurité face aux exceptions : toutes les méthodes de l’interface sont déclarées comme noexcept et garantissent la sécurité face aux exceptions (exception safe) [AP_SWS_SHWA_01202], [AP_SWS_SHWA_01203], [AP_SWS_SHWA_01204]. Pour Create(), des sémantiques de rollback s’appliquent en outre (rollback_semantics) si l’initialisation échoue [AP_SWS_SHWA_01202].

La propriété demeure auprès du composant applicatif, qui détient l’instance et la détruit dès qu’aucune soumission supplémentaire en file d’attente n’est requise.

Parcours d'utilisation

Le déroulement typique s’articule autour des phases de création, de configuration des ordres et de transmission des tâches. Dans un premier temps, l’application demande une nouvelle instance via ara::shwa::TaskHandler::Create() [AP_SWS_SHWA_01202]. Après validation réussie du ara::core::Result, l’objet est prêt à recevoir des ordres de travail.

Ensuite, l’application décide de la méthode de transmission appropriée en fonction du modèle de traitement :

  • Pour les tâches de calcul individuelles, SingleTask(cfg) est appelée, ce qui met en file d’attente la fonction de tâche passée en paramètre dans le périphérique cible sélectionné [AP_SWS_SHWA_01203].
  • Pour les modèles de traitement à parallélisme de données, le modèle de fonction ParallelFor(bufferSize, cfg) est disponible [AP_SWS_SHWA_01204]. En plus de la configuration, la taille de tampon (bufferSize) est également transmise afin de piloter l’exécution parallèle sur plusieurs éléments de données au sein du périphérique accélérateur.

Interprétation : le paramètre de modèle T devrait représenter ici une fonction appelable, une lambda ou une configuration de tâche correspondante encapsulant la logique de calcul à exécuter sur le périphérique. Question Q-2fca8604440b44e9 (ouverte)

Déroulement de la soumission de tâche avec TaskHandlerApplicationTaskHandlerDevice-QueueUse Case: InstanziierungCreate()ara::core::Result<TaskHandler>Use Case: Exécution de tâchealtEinzelne AufgabeSingleTask(cfg)Queue-EinreichungParallele SchleifeParallelFor(bufferSize, cfg)Queue-Einreichung (Parallel)

Diagramme de séquence : chaîne d’interaction depuis l’instanciation jusqu’à la soumission de tâches dans la file d’attente du périphérique. Sources : [AP_SWS_SHWA_01202], [AP_SWS_SHWA_01203], [AP_SWS_SHWA_01204]

Scénarios d'erreur

Le traitement des erreurs dans ara::shwa::TaskHandler suit le paradigme exempt d’exceptions (noexcept) de l’Adaptive Platform.

Les états d’erreur surviennent principalement lors de l’instanciation :

  • La méthode fabrique Create() signale les échecs via le canal d’erreur dans la valeur de retour ara::core::Result [AP_SWS_SHWA_01202].
  • L’identifiant d’erreur concret défini est ShwaErrorCode::kRuntime, qui signale des erreurs générales d’exécution lors de la création de l’objet [AP_SWS_SHWA_01202]. Grâce aux sémantiques de rollback spécifiées, il est garanti qu’aucun état partiellement initialisé ni aucune fuite de ressources n’apparaissent en cas d’échec [AP_SWS_SHWA_01202].

Les appels SingleTask [AP_SWS_SHWA_01203] et ParallelFor [AP_SWS_SHWA_01204] ne renvoient aucune valeur de retour (void) et ne déclenchent aucune exception. Les appelants doivent donc s’assurer que l’instance du gestionnaire est valide et que les accès lors de threads concurrents sont synchronisés de manière externe.

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R25-11.

Carte des membres

Vue détaillée

Sélectionnez une entrée dans le plan.

Méthodes

Create fonction

Erzeugt beziehungsweise liefert das in der Signatur beschriebene Objekt oder Ergebnis über den angegebenen Factory-Pfad.

static ara::core::Result< TaskHandler > Create () noexcept;
ParallelFor fonction

Führt die übergebene Task-Funktion innerhalb einer Queue-Einreichung auf dem ausgewählten Device aus.

template <typename T> void ParallelFor (std::size_t bufferSize, T cfg) noexcept;
SingleTask fonction

Führt die übergebene Task-Funktion innerhalb einer Queue-Einreichung auf dem ausgewählten Device aus.

template <typename T> void SingleTask (T cfg) noexcept;

Détails

fonction Create [AP_SWS_SHWA_01202] Upstream: RS_SHWA_00001, RS_SHWA_00007

static ara::core::Result< TaskHandler > Create () noexcept;

Erzeugt beziehungsweise liefert das in der Signatur beschriebene Objekt oder Ergebnis über den angegebenen Factory-Pfad.

Scopeclass ara::shwa::TaskHandler
Thread Safetythread-safe rollback_semantics
Exception Safetyexception safe
ErrorsShwaErrorCode::k Runtime General runtime error

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01202
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01202@rel:R25-11#84ede47c
Content hash
84ede47c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01202
Status: valid/unmigrated Version: rel:R25-11#a001527a Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01202@rel:R25-11#a001527a
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction ParallelFor [AP_SWS_SHWA_01204] Upstream: RS_SHWA_00001

template <typename T> void ParallelFor (std::size_t bufferSize, T cfg) noexcept;

Führt die übergebene Task-Funktion innerhalb einer Queue-Einreichung auf dem ausgewählten Device aus.

Scopeclass ara::shwa::TaskHandler
Thread Safetynot thread-safe
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01204
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01204@rel:R25-11#84321a81
Content hash
84321a81
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01204
Status: valid/unmigrated Version: rel:R25-11#1ff0ddef Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01204@rel:R25-11#1ff0ddef
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction SingleTask [AP_SWS_SHWA_01203] Upstream: RS_SHWA_00001

template <typename T> void SingleTask (T cfg) noexcept;

Führt die übergebene Task-Funktion innerhalb einer Queue-Einreichung auf dem ausgewählten Device aus.

Scopeclass ara::shwa::TaskHandler
Thread Safetynot thread-safe
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01203
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01203@rel:R25-11#bc694532
Content hash
bc694532
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01203
Status: valid/unmigrated Version: rel:R25-11#2c1013ce Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01203@rel:R25-11#2c1013ce
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill