DEENESPTFRRUARHIKOZHNL

модуль 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.

Руководство по модулюСОЗДАНО ИИ

Обеспечивает безопасное, стандартизированное использование гетерогенных аппаратных ускорителей для вычислений с параллелизмом по данным.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: cc6d229c7f27 Происхождение Открытые вопросы (1)
Причинный якорь: R25-11 Действует с R25-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Обеспечивает безопасное, стандартизированное использование гетерогенных аппаратных ускорителей для вычислений с параллелизмом по данным.

Адаптивный кластер shwa предоставляет локальную для процесса библиотеку для функционально безопасного управления гетерогенными вычислительными ускорителями, такими как GPU и NPU (AUTOSAR_AP_EXP_SWArchitecture с. 127). Он обеспечивает аппаратно-независимый выбор исполнительных блоков, управление n-мерными буферами памяти, а также асинхронную постановку параллельных вычислительных задач в очереди выполнения ([AP_SWS_SHWA_00309], [AP_SWS_SHWA_00912]). При ошибках выполнения задач семантика отката отсутствует, вследствие чего затронутые данные буфера считаются неопределенно измененными ([AP_SWS_SHWA_00604]).

Функциональный кластер Safe Hardware Acceleration (shwa) предоставляет для AUTOSAR Adaptive Platform стандартизированную, функционально безопасную модель выполнения для гетерогенных вычислительных блоков, таких как GPU, NPU, DSP и FPGA (AUTOSAR_AP_EXP_SWArchitecture с. 132). Реализованный в виде внутрипроцессной библиотеки, shwa позволяет Adaptive Applications, а также другим функциональным кластерам напрямую и без задержек управлять высокопроизводительными вычислительными ресурсами (AUTOSAR_AP_EXP_SWArchitecture с. 127, SWS_SafeHardwareAcceleration с. 23).

Аппаратные платформы и целевые устройства абстрагируются через Platform и Device ([AP_SWS_SHWA_01107], [AP_SWS_SHWA_00308]). С помощью классов стратегий, таких как GpuSelector или AcceleratorSelector, приложения могут гибко выбирать подходящие вычислительные цели ([AP_SWS_SHWA_00407], [AP_SWS_SHWA_00413]). Буферы данных выделяются через Buffer в N-мерных пространствах индексов (Range), тогда как структурированные операции чтения и записи выполняются с контролем типов через Accessor и Id ([AP_SWS_SHWA_00209], [AP_SWS_SHWA_00007], [AP_SWS_SHWA_00707]).

Выделение буфера, отправка в ядро и синхронизацияApplicationBufferQueueTaskHandlerEventUse Case: Подготовка буфера и очередиCreate(bufferRange, propList)Result<unique_ptr<Buffer>>Create(device, errorHandler)Result<unique_ptr<Queue>>Use Case: Определение задачи и передача на исполнениеParallelFor(bufferSize, cfg)Submit(cfg, handler)Create()Result<Event>Use Case: SynchronisationWait()Result<void>

Диаграмма последовательности: сквозной процесс выделения буфера, отправки ядра (Submit) и асинхронной синхронизации. Источники: AP_SWS_SHWA_00209, AP_SWS_SHWA_00909, AP_SWS_SHWA_00912, AP_SWS_SHWA_00604.

Вычислительные задания определяются через TaskHandler как отдельная задача или параллельный цикл и передаются устройству через очереди (Queue) ([AP_SWS_SHWA_01203], [AP_SWS_SHWA_00912]). В качестве результата возвращается объект Event для блокирующих или ограниченных по времени синхронизаций ([AP_SWS_SHWA_00604], [AP_SWS_SHWA_00606]). Для мониторинга во время выполнения служит DeviceMonitor, который отображает текущее состояние аппаратного обеспечения (kReady, kNotAccesible, kFailure, kUnknown) ([AP_SWS_SHWA_01407], [AP_SWS_SHWA_00103]).

Об ошибках сообщается детерминированно через ara::core::Result и ShwaErrorCode ([AP_SWS_SHWA_01301]). Если выполнение задачи завершается сбоем, операции не имеют семантики отката, поэтому связанные буферы должны классифицироваться как неопределенно модифицированные ([AP_SWS_SHWA_00604], [AP_SWS_SHWA_00914]).

Архитектурная роль и системные границы Safe Hardware Acceleration

Функциональный кластер Safe Hardware Acceleration (shwa) предоставляет в рамках AUTOSAR Adaptive Platform стандартизированную, функционально безопасную модель выполнения и абстракции для гетерогенных вычислительных блоков, таких как GPU, DSP, NPU и FPGA (AUTOSAR_AP_EXP_SWArchitecture с. 132). В отличие от платформенных кластеров на базе демонов, таких как Platform Health Management, shwa спроектирован как локальная для процесса библиотека, не использующая демоны (внутрипроцессная библиотека) (AUTOSAR_AP_EXP_SWArchitecture с. 127). Благодаря этому среда выполнения действует непосредственно в адресном пространстве POSIX потребляющего пользовательского процесса и развязывает вычислительные задания без задержек IPC от нижележащих драйверов ускорителей (AUTOSAR_AP_SWS_SafeHardwareAcceleration с. 23).

Архитектурный дизайн интерфейса ориентирован на современные стандарты гетерогенных вычислений, такие как SYCL и OpenCL, однако строго адаптирует эти парадигмы к детерминированным и ориентированным на безопасность требованиям AUTOSAR Adaptive Platform (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI с. 15). Конструкторы всех первичных интерфейсных классов объявлены закрытыми; экземпляры могут создаваться исключительно через именованные статические фабричные методы типа Create() (EXP_SafeHardwareAccelerationAPI с. 15). Практически все операции сигнализируют о своем успехе или системных состояниях ошибок через возвращаемый тип ara::core::Result ([AP_SWS_SHWA_00308], EXP_SafeHardwareAccelerationAPI с. 15). Помимо обычных Adaptive Applications, другие функциональные кластеры (например, кластеры обработки изображений или восприятия) также могут напрямую подключать интерфейсы C++ из shwa для высокопараллельных рабочих нагрузок HPC (SWS_SafeHardwareAcceleration с. 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

Контекстная диаграмма: встраивание ara::shwa в качестве внутрипроцессной библиотеки в адресное пространство процесса POSIX для управления гетерогенными ускорителями. Источники: AUTOSAR_AP_EXP_SWArchitecture, стр. 127, SWS_SafeHardwareAcceleration, стр. 22.

Аппаратная топология, обнаружение платформ и выбор устройств

Топология вычислительных ускорителей, интегрированных в общую систему, абстрагируется через интерфейс Platform ([AP_SWS_SHWA_01107]). С помощью статической операции Platform::GetPlatforms() приложение сначала определяет все зарегистрированные платформы выполнения, а затем запрашивает назначенные им вычислительные блоки посредством Platform::GetDevices() ([AP_SWS_SHWA_01108], AUTOSAR_AP_EXP_SWArchitecture с. 132). Каждая физическая или логическая цель выполнения представляется в системе объектом Device ([AP_SWS_SHWA_00302]). Device предоставляет методы инспекции для классификации типа аппаратного обеспечения, среди которых IsCpu() ([AP_SWS_SHWA_00310]), IsGpu() ([AP_SWS_SHWA_00311]) и IsAccelerator() ([AP_SWS_SHWA_00312]), а также обобщенные запросы сведений через шаблон функции GetInfo() ([AP_SWS_SHWA_00313]).

Для адресного выбора подходящих вычислительных блоков shwa предоставляет полиморфный паттерн выбора DeviceSelector ([AP_SWS_SHWA_00402], [AP_SWS_SHWA_00403]). С помощью стандартных реализаций GpuSelector ([AP_SWS_SHWA_00406], [AP_SWS_SHWA_00407]), CpuSelector ([AP_SWS_SHWA_00409], [AP_SWS_SHWA_00410]) и AcceleratorSelector ([AP_SWS_SHWA_00412], [AP_SWS_SHWA_00413]) системы могут фильтровать вычислительные цели по предварительно заданным приоритетам или эвристическим оценкам пригодности. Фабричный метод Device::Create(deviceSelector) напрямую связывает этот механизм выбора с инстанцированием устройства ([AP_SWS_SHWA_00309]).

Запрос топологии и создание вычислительного устройстваApplicationPlatformDeviceSelectorDeviceGetPlatforms()Result<Vector<Platform>>GetDevices()Result<Vector<Device>>Use Case: Выбор и инстанцированиеSelectDevice()Result<Device>Create(deviceSelector)Result<Device>

Диаграмма последовательности: определение топологии, выбор вычислительной цели и инстанцирование логического устройства. Источники: AP_SWS_SHWA_01107, AP_SWS_SHWA_01108, AP_SWS_SHWA_00407, AP_SWS_SHWA_00309.

Управление памятью и многомерный доступ к данным с помощью буфера и метода доступа

Для параллельных вычислительных операций на гетерогенных архитектурах shwa строго разделяет физическое хранение данных и логический доступ (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI с. 15). Области памяти инкапсулируются через шаблон Buffer<DataT, Dimensions, AllocatorT> ([AP_SWS_SHWA_00202]). Протяженность памяти в одномерном, двумерном или трехмерном пространстве задается структурой Range<Dimensions> ([AP_SWS_SHWA_01007], [AP_SWS_SHWA_01008], [AP_SWS_SHWA_01009]), размеры которой можно запросить через GetDimension0(), GetDimension1() и GetDimension2() ([AP_SWS_SHWA_01010], [AP_SWS_SHWA_01011], [AP_SWS_SHWA_01012]). Буфер может создаваться заново с собственной памятью или аллокатором ([AP_SWS_SHWA_00209], [AP_SWS_SHWA_00210]) либо подключать существующие указатели памяти хоста (hostData) в качестве входных или выходных данных ([AP_SWS_SHWA_00211], [AP_SWS_SHWA_00213], [AP_SWS_SHWA_00214]). Владеющие буферы обычно возвращаются из Buffer::Create() как std::unique_ptr (EXP_SafeHardwareAccelerationAPI с. 15).

Непосредственный доступ для чтения и записи данных буфера осуществляется не напрямую через указатели, а через типизированные объекты Accessor ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Режим доступа определяется перечислением AccessMode, которое включает варианты kRead, kWrite и kReadWrite ([AP_SWS_SHWA_00101]). Адресация дискретных точек индексов в N-мерном пространстве выполняется с помощью типа Id<Dimensions> ([AP_SWS_SHWA_00707], [AP_SWS_SHWA_00708], [AP_SWS_SHWA_00709]) с соответствующими геттерами и сеттерами координат ([AP_SWS_SHWA_00710], [AP_SWS_SHWA_00711]). Для манипулирования отдельными элементами массива Accessor предоставляет оператор индексации operator[] ([AP_SWS_SHWA_00009], [AP_SWS_SHWA_00010]), а также синхронизирующие методы Get() ([AP_SWS_SHWA_00012]) и Set() ([AP_SWS_SHWA_00011]). Передавая экземпляры PropertyList, можно декларативно добавлять специфические свойства памяти и атрибуты доступа ([AP_SWS_SHWA_00802], [AP_SWS_SHWA_00015], [AP_SWS_SHWA_00215]).

Определение задач, планирование заданий и выполнение через очереди

Выполнение вычислений на устройствах-ускорителях координируется через очереди команд типа Queue ([AP_SWS_SHWA_00902]). Queue связывается через свой фабричный метод Create() с определенным Device или DeviceSelector и опционально конфигурируется с ErrorHandler, а также PropertyList ([AP_SWS_SHWA_00908], [AP_SWS_SHWA_00909]). Метод GetDevice() возвращает вычислительное устройство, сопряженное с очередью ([AP_SWS_SHWA_00910]). Поведение очереди при выполнении можно проверить через IsInOrder() ([AP_SWS_SHWA_00911]): в случае очереди со строгим порядком (In-Order) поставленные в очередь вычислительные задачи обрабатываются строго последовательно (AUTOSAR_AP_EXP_SWArchitecture с. 133).

Определение конкретных рабочих нагрузок выполняется с помощью TaskHandler ([AP_SWS_SHWA_01202]). Обработчик задач различает атомарные одиночные задачи (SingleTask(), [AP_SWS_SHWA_01203]) и сетки параллельных по данным вычислений (ParallelFor(), [AP_SWS_SHWA_01204]). При этом цель выполнения можно задать через перечисление Target либо как ускоритель (kDevice), либо как хост-задачу CPU (kHostTask) ([AP_SWS_SHWA_00102]). Отправка в очередь выполняется через метод Queue::Submit() ([AP_SWS_SHWA_00912]). При более сложных конвейерах Submit() также поддерживает указание вторичной очереди для отображения зависимостей между различными аппаратными конвейерами ([AP_SWS_SHWA_00913], AUTOSAR_AP_SWS_SafeHardwareAcceleration с. 23).

Выделение буфера, отправка в ядро и синхронизацияApplicationBufferQueueTaskHandlerEventUse Case: Подготовка буфера и очередиCreate(bufferRange, propList)Result<unique_ptr<Buffer>>Create(device, errorHandler)Result<unique_ptr<Queue>>Use Case: Определение задачи и передача на исполнениеParallelFor(bufferSize, cfg)Submit(cfg, handler)Create()Result<Event>Use Case: SynchronisationWait()Result<void>

Диаграмма последовательности: сквозной процесс выделения буфера, отправки ядра (Submit) и асинхронной синхронизации. Источники: AP_SWS_SHWA_00209, AP_SWS_SHWA_00909, AP_SWS_SHWA_00912, AP_SWS_SHWA_00604.

Событийная синхронизация и мониторинг состояния аппаратного обеспечения

Каждая отправка через Queue::Submit() возвращает объект Event, который служит асинхронным якорем синхронизации ([AP_SWS_SHWA_00912], [AP_SWS_SHWA_00602]). Вызывающая сторона может либо ожидать завершения аппаратного вычисления в блокирующем режиме с помощью Event::Wait() ([AP_SWS_SHWA_00604]), либо выполнить ограниченную по времени синхронизацию через WaitFor(ms) ([AP_SWS_SHWA_00606]). Несколько событий можно отслеживать агрегированно через Event::Wait(const Vector<Event>&) ([AP_SWS_SHWA_00605]). В качестве альтернативы сама очередь предлагает методы коллективной синхронизации: Queue::Wait() блокирует выполнение до тех пор, пока не будут обработаны все поставленные в очередь задачи ([AP_SWS_SHWA_00914]), тогда как Queue::WaitFor(ms) ограничивает ожидание заданным тайм-аутом ([AP_SWS_SHWA_00917]).

Чтобы обеспечить надежность и функциональную безопасность аппаратных ускорителей во время выполнения, shwa определяет компонент мониторинга DeviceMonitor ([AP_SWS_SHWA_01402]). Экземпляры создаются через статические методы Create() применительно к Device или DeviceSelector ([AP_SWS_SHWA_01407], [AP_SWS_SHWA_01408]). Через метод DeviceMonitor::Status() запрашивается текущее состояние аппаратного обеспечения ([AP_SWS_SHWA_01409]). Перечисление DeviceStatus включает четыре стандартизированных состояния: kReady (0, готов к работе), kNotAccesible (1, недоступен), kFailure (2, состояние ошибки) и kUnknown (255, статус не может быть определен) ([AP_SWS_SHWA_00103]). Этот механизм мониторинга формирует основу для анализа безопасности и мониторинга работоспособности согласно ISO 26262 (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI с. 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

Диаграмма состояний: жизненный цикл и переходы состояний DeviceStatus согласно ara::shwa::DeviceMonitor. Источники: AP_SWS_SHWA_00103, AP_SWS_SHWA_01409.

Поведение при ошибках и диагностика

Концепция обработки ошибок в shwa основана на специфичном для AUTOSAR домене ошибок ShwaErrorDomain ([AP_SWS_SHWA_01307]), который можно получить через GetShwaDomain() ([AP_SWS_SHWA_01311]). Специфические коды ошибок представляются стандартизированным перечислением ShwaErrorCode ([AP_SWS_SHWA_01301]). Сюда относятся фундаментальные ошибки времени выполнения, такие как kRuntime, прерывания вычислений на ускорителе, такие как kTaskExecutionFailure, ошибки выделения памяти, такие как kMemoryNotAllocated, нарушения целостности памяти, такие как kIntegrityCorrupted, временные конфликты ресурсов, такие как kResourceBusy, а также недопустимые режимы доступа, такие как kInvalidAccessMode ([AP_SWS_SHWA_01301]). Коды ошибок конструируются типобезопасным образом с помощью MakeErrorCode() ([AP_SWS_SHWA_01312]) и предоставляют текстовые описания через Name() и Message() ([AP_SWS_SHWA_01308], [AP_SWS_SHWA_01309]).

Ошибки при асинхронном выполнении или при ожидании событий (Event::Wait() или Queue::Wait()) оказывают серьезное влияние на целостность данных: если во время вычисления возникает kTaskExecutionFailure или kRuntime, затронутые операции не имеют семантики отката, а данные в связанных буферах считаются модифицированными неопределенным образом ([AP_SWS_SHWA_00604], [AP_SWS_SHWA_00914]). Для асинхронных уведомлений используется класс ErrorHandler, функция обратного вызова которого инициируется посредством HandleError() ([AP_SWS_SHWA_00507], [AP_SWS_SHWA_00508]). Если приложению требуется обработка исключений, ошибки можно преобразовать через ThrowAsException() в ShwaException ([AP_SWS_SHWA_01303], [AP_SWS_SHWA_01310]).

Дополнительные подробные подтверждения и ссылки на спецификацию

Архитектура и требования кластера shwa полностью подтверждены нормативными требованиями и соответствующими пояснительными документами. В таблице 1 обобщены ключевые концепции и их основные источники.

Тематическая областьВажные элементы спецификацииИсточники подтверждения
Архитектура & предоставлениеВнутрипроцессная библиотека, функциональная классификация по категории SafetyAUTOSAR_AP_EXP_SWArchitecture S. 127, AUTOSAR_AP_EXP_SWArchitecture S. 132
Топология & выборPlatform, Device, DeviceSelector, GpuSelector, CpuSelector[AP_SWS_SHWA_01107], [AP_SWS_SHWA_00308], [AP_SWS_SHWA_00403]
Память & доступ к даннымBuffer, Accessor, Range, Id, AccessMode[AP_SWS_SHWA_00209], [AP_SWS_SHWA_00007], [AP_SWS_SHWA_01007], [AP_SWS_SHWA_00101]
Планирование заданий & синхронизацияQueue, TaskHandler, Event[AP_SWS_SHWA_00908], [AP_SWS_SHWA_01202], [AP_SWS_SHWA_00604]
Мониторинг аппаратного обеспечения & ошибкиDeviceMonitor, DeviceStatus, ShwaErrorCode, ErrorHandler[AP_SWS_SHWA_01407], [AP_SWS_SHWA_00103], [AP_SWS_SHWA_01301], [AP_SWS_SHWA_00507]

Типичное инстанцирование конвейера и развязка нескольких очередей внутри приложения подробно проиллюстрированы в спецификации (SWS_SafeHardwareAcceleration с. 22, AUTOSAR_AP_SWS_SafeHardwareAcceleration с. 23). При этом строгое разделение ресурсов памяти и вычислений гарантирует детерминированное поведение в критически важных для безопасности автомобильных областях применения (AUTOSAR_AP_EXP_SafeHardwareAccelerationAPI с. 15).

Настоящее руководство сгенерировано ассистентом курации ИИ на основе спецификации AUTOSAR Adaptive 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 класс

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 класс

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 класс

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 класс

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

DeviceMonitor класс

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

DeviceSelector класс

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 класс

ErrorHandler manages asynchronous error handling for operations on HWA.

Event класс

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 класс

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 класс

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

Platform класс

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.

PropertyList класс

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 класс

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 класс

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

ShwaErrorDomain класс

Defines the error domain for Safe Hardware Acceleration.

ShwaException класс

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.

TaskHandler класс

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

GetShwaDomain функция

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

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;
MakeErrorCode функция

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 перечисление

Die Enumeration definiert die folgenden standardisierten Werte.

enum class AccessMode : std::uint32_t {...};
DeviceStatus перечисление

Die Enumeration definiert die folgenden standardisierten Werte.

enum class DeviceStatus : std::uint32_t {...};
ShwaErrorCode перечисление

Die Enumeration definiert die folgenden standardisierten Werte.

enum class ShwaErrorCode : ara::core::ErrorDomain::CodeType {...};
Target перечисление

Die Enumeration definiert die folgenden standardisierten Werte.

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

Пространства имён

Архитектурное взаимодействие

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.

Заголовочные файлы (глава 8)