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])। डेटा बफ़र्स को N-आयामी इंडेक्स स्थानों (Range) में Buffer के माध्यम से आवंटित किया जाता है, जबकि संरचित रीड और राइट एक्सेस Accessor और Id के माध्यम से प्रकार-सुरक्षित रूप से होते हैं ([AP_SWS_SHWA_00209], [AP_SWS_SHWA_00007], [AP_SWS_SHWA_00707])।

बफ़र आवंटन, कर्नेल सबमिशन और सिंक्रोनाइज़ेशनआवेदनबफरकतारTaskHandlerआयोजनUse 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 के अलावा, अन्य कार्यात्मक क्लस्टर (उदाहरण के लिए छवि प्रसंस्करण या धारणा क्लस्टर) अत्यधिक समानांतर HPC कार्यभार के लिए shwa के C++ इंटरफेस को सीधे एकीकृत कर सकते हैं (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

संदर्भ आरेख: विषम त्वरकों को नियंत्रित करने के लिए POSIX प्रक्रिया स्थान में इन-प्रोसेस लाइब्रेरी के रूप में ara::shwa का अंतःस्थापन। स्रोत: 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])।

टोपोलॉजी क्वेरी और गणना उपकरण (कंप्यूट डिवाइस) का निर्माणआवेदनPlatformDeviceSelectorउपकरणGetPlatforms()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-आयामी स्थान में असतत सूचकांक बिंदुओं का एड्रेसिंग संबंधित निर्देशांक गेटर्स और सेटर्स ([AP_SWS_SHWA_00710], [AP_SWS_SHWA_00711]) के साथ प्रकार Id<Dimensions> ([AP_SWS_SHWA_00707], [AP_SWS_SHWA_00708], [AP_SWS_SHWA_00709]) का उपयोग करके किया जाता है। व्यक्तिगत सरणी तत्वों में हेरफेर करने के लिए, 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]): इन-ऑर्डर कतार में, कतारबद्ध गणना कार्यों को कड़ाई से क्रमिक रूप से संसाधित किया जाता है (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)।

बफ़र आवंटन, कर्नेल सबमिशन और सिंक्रोनाइज़ेशनआवेदनबफरकतारTaskHandlerआयोजनUse 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

स्थिति आरेख: ara::shwa::DeviceMonitor के अनुसार DeviceStatus का जीवनचक्र और स्थिति संक्रमण। स्रोत: 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 मुख्य अवधारणाओं और उनके आधिकारिक संदर्भों को सारांशित करती है।

विषय क्षेत्रमहत्वपूर्ण विनिर्देश तत्वसंदर्भ
वास्तुकला & प्रावधानइन-प्रोसेस लाइब्रेरी, श्रेणी Safety में कार्यात्मक वर्गीकरणAUTOSAR_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 के आधार पर एक AI क्यूरेशन सहायक द्वारा तैयार किया गया था।

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 क्लास

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)