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.
160 API-Records in Kapitel 8: 18 Klassen, 120 Funktionen, 4 Enumerationen und 3 Typ-Aliasse.
사용자 가이드AI 생성
연산 집약적인 작업을 특화된 하드웨어 가속기로 안전하게 오프로드할 수 있도록 지원합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 94872e9e2305출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
연산 집약적인 작업을 특화된 하드웨어 가속기로 안전하게 오프로드할 수 있도록 지원합니다.
네임스페이스 ara::shwa은 Safe Hardware Acceleration 인터페이스를 제공하며 대상 포맷 Target을 통해 병렬 연산 작업을 GPU나 CPU와 같은 장치로 목적에 맞게 오프로드할 수 있도록 합니다([AP_SWS_SHWA_00102]). 애플리케이션은 셀렉터를 통해 가속기를 선택하고, 독점적으로 관리되는 실행 대기열을 생성하며, 버퍼 접근자를 통해 메모리 접근을 제어합니다. 핵심 제약 조건으로는 복사 불가능한 리소스를 사용한 엄격한 소유권 모델과 ShwaErrorCode을 통한 무예외 오류 신호 전달이 적용됩니다([AP_SWS_SHWA_01301]).
컨텍스트
네임스페이스 ara::shwa(Safe Hardware Acceleration)은 AUTOSAR Adaptive Platform 내에서 연산 집약적인 작업을 특화된 하드웨어 가속기로 오프로드하기 위한 인터페이스를 제공합니다. 이 모듈을 사용하면 그래픽 처리 장치(GPU), 디지털 신호 처리기 또는 전용 중앙 처리 장치(CPU)와 같은 다양한 가속기 유형을 통합할 수 있습니다.
시스템 환경 감지는 전자 제어 장치(ECU)에서 사용 가능한 하드웨어 플랫폼을 확인하고 연관된 Device 인스턴스를 나열하는 클래스 Platform을 통해 수행됩니다. 적절한 장치 선택은 특화된 셀렉터를 통해 동적 또는 정적으로 제어할 수 있습니다. DeviceSelector는 정수 순위를 기준으로 사용 가능한 장치의 우선순위를 지정하는 호출 가능한 함수 객체 역할을 하며, CpuSelector, GpuSelector 및 AcceleratorSelector는 특정 실행 유닛을 명시적으로 지정합니다. 가속기의 현재 작동 상태는 열거형 DeviceStatus([AP_SWS_SHWA_00103])을 통해 표현됩니다.
연산 작업의 병렬 실행은 Queue이 담당합니다. 연산 작업은 TaskHandler을 통해 캡슐화되며, 실행 위치는 Target([AP_SWS_SHWA_00102])를 통해 가속기(kDevice) 또는 호스트 CPU(kHostTask) 중 하나로 선택하여 결정됩니다. 입출력 데이터를 위한 메모리 영역은 차원 정보 Range을 사용하여 Buffer을 통해 할당됩니다. 이러한 버퍼에 대한 접근은 Accessor 객체에 의해 관리되며, 이는 AccessMode([AP_SWS_SHWA_00101])를 통해 접근 모드를 제한합니다.
ara::shwa의 리소스 및 수명 주기 모델은 리소스 소유 객체, 설명 핸들 및 대기열 종속 컴포넌트를 엄격하게 구분합니다:
리소스 소유 클래스:Queue, Buffer 및 Accessor는 하드웨어 리소스와 메모리 영역을 독점적으로 관리합니다. 이들은 복사할 수 없으며(not copyable) 반드시 std::unique_ptr을 통해 관리되어야 합니다. 전달 또는 양도는 이동 의미론(Move-Semantik)을 통해서만 허용됩니다.
서술적 핸들 및 헬퍼 클래스:Platform, Device, DeviceMonitor, Id, Range 및 PropertyList는 하드웨어 리소스를 독점적으로 소유하지 않습니다. 이들은 복사 가능하도록 설계되었습니다. Device의 인스턴스는 장치에 대한 액세스 인터페이스만을 나타낼 뿐, 이를 독점적으로 제어하지는 않습니다. 해석: 실행 큐(Queue)의 초기화는 이전에 선택된 특정 Device에 바인딩되는데, 이는 Queue가 리소스를 독점적으로 관리하기 때문입니다. 질문 Q-c38811a811f133d0 (열림)
종속 컴포넌트:Event(동기화용) 및 TaskHandler(작업 처리용) 클래스는 Queue 내에서만 생성될 수 있으며, 큐의 컨텍스트 외부에서는 기능적 의미를 갖지 않습니다.
장치의 수명 주기는 DeviceStatus([AP_SWS_SHWA_00103])에 반영됩니다. 작동 준비 상태인 kReady 외에도 장치는 액세스 불가(kNotAccesible), 오류 상태(kFailure) 또는 알 수 없음(kUnknown)으로 표시될 수 있습니다. 해석: kReady, kNotAccesible 및 kFailure 간의 장치 상태 변경은 런타임에 DeviceMonitor 또는 플랫폼과 같은 헬퍼 클래스를 통해 감지됩니다. 질문 Q-8fc0dc95534dc8bc (열림)
사용 경로
가속 연산을 실행하기 위한 ara::shwa의 전형적인 사용 방식은 다섯 단계로 구성됩니다:
플랫폼 및 장치 선택: 애플리케이션은 Platform을 통해 사용 가능한 하드웨어 플랫폼과 이에 할당된 Device 인스턴스를 조회합니다. 셀렉터(예: DeviceSelector, GpuSelector 또는 CpuSelector)는 DeviceStatus([AP_SWS_SHWA_00103])가 kReady 상태를 나타내는 가장 적합한 장치를 결정합니다.
큐 인스턴스화: 선택된 Device에 대해 Queue이 생성되어 std::unique_ptr로 유지됩니다.
메모리 할당 및 준비: 입력 및 출력 데이터를 위해 Range을 통해 필요한 차원을 가진 Buffer이 생성됩니다. 채우기 또는 평가를 위해 애플리케이션은 Accessor를 요청하며, 이때 액세스 모드는 AccessMode([AP_SWS_SHWA_00101])을 통해 kRead, kWrite 또는 kReadWrite로 선언됩니다.
태스크 등록 및 실행:Queue 내에서 TaskHandler이 생성됩니다. 실행이 시작되며, Target([AP_SWS_SHWA_00102])를 통해 태스크가 가속기(kDevice)에서 실행되는지 또는 호스트(kHostTask)에서 실행되는지가 지정됩니다.
동기화:Queue은 호스트 애플리케이션이 하드웨어 가속기에서의 비동기 연산 완료를 모니터링하고 데이터 조율을 동기화하는 데 사용하는 Event을 제공합니다.
ara::shwa의 프로그래밍 인터페이스는 예외가 발생하지 않도록(exception-free) 설계되었습니다. 오류 상태는 ara::core::ErrorCode을 통해 동기식으로 반환됩니다. 오류 코드 생성은 오류 도메인 GetShwaDomain([AP_SWS_SHWA_01311])를 참조하여 팩토리 함수 MakeErrorCode([AP_SWS_SHWA_01312])를 통해 수행됩니다. 애플리케이션 아키텍처가 예외 기반 오류 모델을 제공하는 경우, 오류 코드를 ShwaException으로 변환하여 던질 수 있습니다.
메모리 및 액세스 문제: 메인 메모리 할당이 실패하면 kMemoryNotAllocated이 발생합니다. 버퍼의 데이터 일관성을 유지할 수 없는 경우 kIntegrityCorrupted이 보고됩니다. 유효하지 않은 액세스 모드 또는 Accessor 객체에 대한 실패한 작업은 각각 kInvalidAccessMode 또는 kAccessorFailure로 이어집니다.
실행 및 동기화 오류: 대상 장치에서 작업 처리가 실패하면 kTaskExecutionFailure이 신호됩니다. 동기화 객체에 대한 허용되지 않은 작업은 kEventInvalidOperation로 이어지며, 차단된 리소스는 kResourceBusy를 유발합니다. 구성된 실행 시간을 초과하면 kTimedOut이 반환됩니다.
잘못된 매개변수 및 객체 상태: 파괴되었거나 유효하지 않은 객체에서 메서드를 호출하면 kInvalidObject이 발생합니다. 유효하지 않은 인덱스 또는 매개변수는 kInvalidIndex 또는 kInvalidParameter를 통해 거부됩니다. 지원되지 않는 기능은 kFeatureNotSupported을 보고하며, 일반적인 오류는 kRuntime를 통해 캡처됩니다.
가속기에서 비동기 연산 중에 발생하는 오류 처리를 위해 ErrorHandler 클래스가 사용됩니다.
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.
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.
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.
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 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
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.
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_
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.
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.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문