Nothing Special   »   [go: up one dir, main page]

skip to main content
survey

GPU Devices for Safety-Critical Systems: A Survey

Published: 15 December 2022 Publication History

Abstract

 Graphics Processing Unit (GPU) devices and their associated software programming languages and frameworks can deliver the computing performance required to facilitate the development of next-generation high-performance safety-critical systems such as autonomous driving systems. However, the integration of complex, parallel, and computationally demanding software functions with different safety-criticality levels on GPU devices with shared hardware resources contributes to several safety certification challenges. This survey categorizes and provides an overview of research contributions that address GPU devices’ random hardware failures, systematic failures, and independence of execution.

References

[1]
2011. DO-178C / EUROCAE ED-12C - Software Considerations in Airborne Systems and Equipment Certification.
[2]
2015. IEC 60050-192: International Electrotechnical Vocabulary (IEV) - Part 192: Dependability. https://www.electropedia.org/.
[3]
2018. ISO 26262-11: Road Vehicles - Functional Safety - Part 11: Guideline on application of ISO 26262 to semiconductors.
[4]
2020. NVIDIA Xavier Series System-on-Chip - Technical Reference Manual. Report DP-09253-002. NVIDIA.
[5]
2020. R-Car H3/M3 - User Manual (Rev.0.10). Report. Renesas.
[6]
M. Abdel-Majeed, W. Dweik, H. Jeon, and M. Annavaram. 2015. Warped-RE: Low-cost error detection and correction in GPUs. In 45th Annu. IEEE/IFIP Int. Conf. on Dependable Syst. and Netw.331–342.
[7]
J. Abella et al. 2015. WCET analysis methods: Pitfalls and challenges on their trustworthiness. In 10th IEEE Int. Symp. on Ind. Embedded Syst. (SIES).
[8]
V. Abhyankar. 2010. Performance-Cost Analysis of Software Implemented Hardware Fault Tolerance Techniques. Report. University of Wisconsin Madison.
[9]
C. Adams, A. Spain, J. Parker, M. Hevert, J. Roach, and D. Cotten. 2019. Towards an integrated GPU accelerated SoC as a flight computer for small satellites. In IEEE Aerosp. Conf.1–7.
[10]
I. Agirre, J. Abella, M. Azkarate-Askasua, and F. J. Cazorla. 2017. On the tailoring of CAST-32A certification guidance to real COTS multicore architectures. In 12th IEEE Int. Symp. on Ind. Embedded Syst. (SIES). 1–8.
[11]
H. Ahmadian, R. Obermaisser, and J. Perez. 2018. Distributed Real-Time Architecture for Mixed-Criticality Systems. CRC Press, Taylor & Francis Incorporated. 2018027202
[12]
S. Alcaide et al. 2020. Software-only based diverse redundancy for ASIL-D automotive applications on embedded HPC platforms. In IEEE Int. Symp. on Defect and Fault Tolerance in VLSI and Nanotechnology Syst. (DFT). 1–4.
[13]
S. Alcaide, L. Kosmidis, C. Hernandez, and J. Abella. 2019. High-integrity GPU designs for critical real-time automotive systems. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE). 824–829.
[14]
S. Alcaide, L. Kosmidis, C. Hernandez, and J. Abella. 2019. Software-only diverse redundancy on GPUs for autonomous driving platforms. In IEEE 25th Int. Symp. on On-Line Testing and Robust System Des. (IOLTS). 90–96.
[15]
S. Alcaide, L. Kosmidis, H. Tabani, C. Hernandez, J. Abella, and F. J. Cazorla. 2018. Safety-related challenges and opportunities for GPUs in the automotive domain. IEEE Micro 38, 6 (2018), 46–55.
[16]
M. Alcon et al. 2020. Timing of autonomous driving software: Problem analysis and prospects for future solutions. In IEEE Real-Time and Embedded Technol. and Appl. Symp. (RTAS). 267–280.
[17]
Imanol Allende, Nicholas Mc Guire, Jon Perez, Lisandro G. Monsalve, and Roman Obermaisser. 2021. Towards Linux based safety systems - A statistical approach for software execution path coverage. J. of Syst. Architecture 116 (2021), 102047.
[18]
T. Amert, N. Otterness, M. Yang, J. H. Anderson, and F. D. Smith. 2017. GPU scheduling on the NVIDIA TX2: Hidden details revealed. In IEEE Real-Time Syst. Symp. (RTSS). 104–115.
[19]
ARINC. 2015. ARINC 653 - Avionics application software standard interface.
[20]
J. Athavale et al. 2020. AI and reliability trends in safety-critical autonomous systems on ground and air. In 50th Annu. IEEE/IFIP Int. Conf. on Dependable Syst. and Netw. Workshops (DSN-W). 74–77.
[21]
J. Athavale, A. Baldovin, and M. Paulitsch. 2020. Trends and functional safety certification strategies for advanced railway automation systems. In IEEE Int. Rel. Physics Symp. (IRPS). 1–7.
[22]
A. Avižienis, J. C. Laprie, B. Randell, and C. Landwehr. 2004. Basic concepts and taxonomy of dependable and secure computing. In IEEE Trans. on Dependable and Secure Comput., Vol. 1. 11–33.
[23]
Nakhoon Baek and Kuinam J. Kim. 2019. Design and implementation of OpenGL SC 2.0 rendering pipeline. Cluster Computing 22, 1 (2019), 931–936.
[24]
D. Barbieri, V. Cardellini, and S. Filippone. 2015. SIMPL: A pattern language for writing efficient kernels on GPGPU. In IEEE/ACM 1st Int. Workshop on Softw. Eng. for High Performance Comput. in Sci.38–45.
[25]
Javier Barrera et al. 2020. On the reliability of hardware event monitors in MPSoCs for critical domains. In Proc. of the 35th Annu. ACM Symp. on Applied Comput.580–589.
[26]
S. Bauer, S. Köhler, K. Doll, and U. Brunsmann. 2010. FPGA-GPU architecture for kernel SVM pedestrian detection. In IEEE Comput. Soc. Conf. on Comput. Vision and Pattern Recognition - Workshops. 61–68.
[27]
M. Benito et al. 2021. Comparison of GPU computing methodologies for safety-critical systems: An avionics case study. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE).
[28]
Alfredo Benso and P. Prinetto. 2003. Fault Injection Techniques and Tools for Embedded Systems Reliability Evaluation. Springer. http://books.google.com/books?id=MjVHBN6Ja6EC&printsec=frontcover&source=gbs_v2_summary_r&cad=0#v=onepage&q=&f=false.
[29]
Kostiantyn Berezovskyi, Fabrice Guet, Luca Santinelli, Konstantinos Bletsas, and Eduardo Tovar. 2016. Measurement-based probabilistic timing analysis for graphics processor units(Architecture of Comput. Syst. (ARCS)). Springer Int. Publishing, 223–236.
[30]
Kostiantyn Berezovskyi, Luca Santinelli, Konstantinos Bletsas, and Eduardo Tovar. 2014. WCET measurement-based and extreme value theory characterisation of CUDA kernels. In Proc. of the 22nd Int. Conf. on Real-Time Netw. and Syst.279–288.
[31]
C. Bernardeschi, L. Cassano, and A. Domenici. 2015. SRAM-based FPGA systems for safety-critical applications: A survey on design standards and proposed methodologies. J. Comput. Sci. Technol. 30, 2 (2015), 373–390.
[32]
Marko Bertogna. 2019. A view on future challenges for the real-time community (Key Note). In 27th Int. Conf. on Real-Time Netw. and Syst. (RTNS).
[33]
A. Betts and A. Donaldson. 2013. Estimating the WCET of GPU-accelerated applications using hybrid analysis. In 25th Euromicro Conf. on Real-Time Syst.193–202.
[34]
Richard Bramley. 2017. Functional safety and the GPU. In GPU Technol. Conf.NVIDIA.
[35]
C. Braun et al. 2014. A-ABFT: Autonomous algorithm-based fault tolerance for matrix multiplications on graphics processing units. In 44th Annu. IEEE/IFIP Int. Conf. on Dependable Syst. and Netw.443–454.
[36]
Fredrik C. Bruhn, Nandinbaatar Tsog, Fabian Kunkel, Oskar Flordal, and Ian Troxel. 2020. Enabling radiation tolerant heterogeneous GPU-based onboard data processing in space. CEAS Space Journal (2020).
[37]
Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston, and Pat Hanrahan. 2004. Brook for GPUs: Stream computing on graphics hardware. ACM Trans. Graph. 23, 3 (2004), 777–786.
[38]
P. Burgio et al. 2016. A software stack for next-generation automotive systems on many-core heterogeneous platforms. In Euromicro Conf. on Digit. System Des. (DSD). 55–59.
[39]
A. J. Calderón et al. 2019. Understanding and exploiting the internals of GPU resource allocation for critical systems. In IEEE/ACM Int. Conf. on Comput.-Aided Des. (ICCAD). 1–8.
[40]
Alejandro J. Calderón et al. 2020. GMAI: Understanding and exploiting the internals of GPU resource allocation in critical systems. ACM Trans. Embed. Comput. Syst. 19, 5 (2020), Article 34.
[41]
Nicola Capodieci, Roberto Cavicchioli, and Marko Bertogna. 2017. NVIDIA GPU scheduling details in virtualized environments: Work-in-progress. In Proc. of the Int. Conf. on Embedded Softw.IEEE Press.
[42]
N. Capodieci, R. Cavicchioli, M. Bertogna, and A. Paramakuru. 2018. Deadline-based scheduling for GPU with preemption support. In IEEE Real-Time Syst. Symp. (RTSS). 119–130.
[43]
Nicola Capodieci, Roberto Cavicchioli, Paolo Valente, and Marko Bertogna. 2017. SiGAMMA: Server based integrated GPU arbitration mechanism for memory accesses. In Proc. of the 25th Int. Conf. on Real-Time Netw. and Syst.48–57.
[44]
CAST. 1997. Use of COTS Graphical Processors (CGP) in Airborne Display Systems (CAST-29). Report.
[45]
CAST. 2016. Multi-core Processors - Position Paper CAST-32A. Report.
[46]
R. Cavicchioli et al. 2017. Memory interference characterization between CPU cores and integrated GPUs in mixed-criticality platforms. In IEEE Int. Conf. on Emerging Tech. and Factory Automat. (ETFA). 1–10.
[47]
Roberto Cavicchioli et al. 2019. Novel methodologies for predictable CPU-to-GPU command offloading. In 31st Euromicro Conf. on Real-Time Syst. (ECRTS).
[48]
Francisco J. Cazorla, Leonidas Kosmidis, Enrico Mezzetti, Carles Hernandez, Jaume Abella, and Tullio Vardanega. 2019. Probabilistic worst-case timing analysis: Taxonomy and comprehensive survey. ACM Comput. Surv. 52, 1 (2019), Article 14.
[49]
Jieyang Chen. 2019. Fault Tolerant and Energy Efficient One-Sided Matrix Decompositions on Heterogeneous Systems with GPUs. Thesis.
[50]
J. Chen, S. Li, and Z. Chen. 2016. GPU-ABFT: Optimizing algorithm-based fault tolerance for heterogeneous systems with GPUs. In IEEE Int. Conf. on Netw., Architecture and Storage (NAS). 1–2.
[51]
Nevin Cini and Gulay Yalcin. 2020. A methodology for comparing the reliability of GPU-based and CPU-based HPCs. ACM Comput. Surv. 53, 1 (2020).
[52]
G. Corradi. 2017. Tools, architectures and trends on industrial all programmable heterogeneous MPSoC (KeyNote). In 29th Euromicro Conf. on Real-Time Syst. (ECRTS).
[53]
David Cuesta. 2014. Thermal Aware Design Techniques for Multiprocessor Architectures in Three Dimensions. Thesis.
[54]
William J. Dally, Yatish Turakhia, and Song Han. 2020. Domain-specific hardware accelerators. Commun. ACM 63, 7 (2020), 48–57.
[55]
D. Defour and E. Petit. 2013. GPUburn: A system to test and mitigate GPU hardware failures. In Int. Conf. on Embedded Comput. Syst.: Architectures, Modeling, and Simulation (SAMOS). 263–270.
[56]
J. Diaz, C. Muñoz-Caro, and A. Niño. 2012. A survey of parallel programming models and tools in the multi and many-core era. IEEE Trans. on Parallel and Distrib. Syst. 23, 8 (2012), 1369–1386.
[57]
M. Dimitrov, M. Mantor, and H. Zhou. 2009. Understanding software approaches for GPGPU reliability. In Workshop on General Purpose Processing on Graphics Processing Units (GPGPU). 94–104.
[58]
C. Ding, C. Karlsson, H. Liu, T. Davies, and Z. Chen. 2011. Matrix multiplication on GPUs with on-line fault tolerance. In IEEE 9th Int. Symp. on Parallel and Distrib. Processing with Appl.311–317.
[59]
G. A. Elliott and J. H. Anderson. 2012. Robust real-time multiprocessor interrupt handling motivated by GPUs. In 24th Euromicro Conf. on Real-Time Syst.267–276.
[60]
EN 2011. EN50128 - Railway Applications: Communication, signalling and processing systems - Software for railway control and protection systems.
[61]
Meinhard Erben, Wolf Günther, Tobias Sedlmeier, Dieter Lederer, and Klaus-Jürgen Amsler. 2006. Legal aspects of safety designed software development, especially under European law. In 3rd Eur. Embedded Real Time Softw. (ERTS). 6.
[62]
Maher Fakih et al. 2017. SAFEPOWER project: Architecture for safe and power-efficient mixed-criticality systems. Microprocess. Microsyst. 52, C (2017), 89–105.
[63]
B. Fang et al. 2014. GPU-Qin: A methodology for evaluating the error resilience of GPGPU applications. In IEEE Int. Symp. on Performance Anal. of Syst. and Softw. (ISPASS). 221–230.
[64]
B. Fang, K. Pattabiraman, M. Ripeanu, and S. Gurumurthi. 2016. A systematic methodology for evaluating the error resilience of GPGPU applications. IEEE Trans. on Parallel and Distrib. Syst. 27, 12 (2016), 3397–3411.
[65]
B. Fang, J. Wei, K. Pattabiraman, and M. Ripeanu. 2012. Evaluating error resiliency of GPGPU applications. In SC Companion: High Performance Comput., Netw. Storage and Anal.1502–1503.
[66]
Bo Fang, J. Wei, K. Pattabiraman, and M. Ripeanu. 2012. Towards building error resilient GPGPU applications. In High Performance Comput., Netw. Storage and Anal. (SC).
[67]
Tobias Fleig. 2016. Fair Scheduling of GPU Computation Time in Virtualized Environments. Master Thesis.
[68]
B. Forsberg, L. Benini, and A. Marongiu. 2018. HePREM: Enabling predictable GPU execution on heterogeneous SoC. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE). 539–544.
[69]
B. Forsberg, L. Benini, and A. Marongiu. 2019. Taming data caches for predictable execution on GPU-based SoCs. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE). 650–653.
[70]
B. Forsberg, A. Marongiu, and L. Benini. 2017. GPUguard: Towards supporting a predictable execution model for heterogeneous SoC. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE). 318–321.
[71]
R. Garg, A. Mohan, M. Sullivan, and G. Cooperman. 2018. CRUM: Checkpoint-restart support for CUDA’s unified memory. In Int. Conf. on Cluster Comput. (CLUSTER).
[72]
L. B. Gomez et al. 2014. GPGPUs: How to combine high computational power with high reliability. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE). 1–9.
[73]
M. M. Goncalves, I. P. Lamb, P. Rech, R. M. Brum, and J. R. Azambuja. 2020. Improving selective fault tolerance in GPU register files by relaxing application accuracy. IEEE Trans. on Nuclear Sci. 67, 7 (2020), 1573–1580.
[74]
D. Gonzalez-Arjona and G. Furano. [n.d.]. High-performance avionics solution for advanced and complex GNC systems for ADR (HIPNOS). In TEC-ED & TEC-SW Final Presentation Days at ESA.
[75]
E. Grade, A. Hayek, and J. Börcsök. 2016. Implementation of a fault-tolerant system using safety-related Xilinx tools conforming to the standard IEC 61508. In Int. Conf, on Syst. Reliability and Science (ICSRS). 78–83.
[76]
J. A. Gunnels, D. S. Katz, E. S. Quintana-Orti, and R. A. Van de Gejin. 2001. Fault-tolerant high-performance matrix multiplication: Theory and practice. In Int. Conf. on Dependable Syst. and Netw. (DSN). 47–56.
[77]
M. Gupta and others.2017. Compiler techniques to reduce the synchronization overhead of GPU redundant multithreading. In 54th ACM/EDAC/IEEE Des. Automat. Conf. (DAC). 1–6.
[78]
S. K. S. Hari et al. 2017. SASSIFI: An architecture-level fault injection tool for GPU application resilience evaluation. In IEEE Int. Symp. on Performance Anal. of Syst. and Softw. (ISPASS). 249–258.
[79]
C. Hartmann, R. Mader, L. Michel, C. Ebert, and U. Margull. 2017. Massive parallelization of real-world automotive real-time software by GPGPU. In 30th Int. Conf. on Architecture of Comput. Syst. (ARCS). 1–8.
[80]
Troels Henriksen. 2020. Bounds checking on GPU. In Int. Symp. on High-level Parallel Programming and Appl. (HLPP).
[81]
S. Heo, S. Cho, Y. Kim, and H. Kim. 2020. Real-time object detection system with multi-path neural networks. In IEEE Real-Time and Embedded Technol. and Appl. Symp. (RTAS). 174–187.
[82]
Chapel Hill. 2015. Real-time Scheduling for GPUs with Applications in Advanced Automotive Systems. Thesis.
[83]
M. D. Hill and M. R. Marty. 2008. Amdahl’s law in the multicore era. Comput. 41, 7 (2008), 33–38.
[84]
Cheol-Ho Hong, Ivor Spence, and Dimitrios S. Nikolopoulos. 2017. GPU virtualization and scheduling methods: A comprehensive survey. ACM Comput. Surv. 50, 3 (2017).
[85]
A. Horga, S. Chattopadhyay, P. Eles, and Z. Peng. 2018. Measurement based execution time analysis of GPGPU programs via SE+GA. In 21st Euromicro Conf. on Digit. System Des. (DSD). 30–37.
[86]
Lan Huang, Da-Lin Li, Kang-Ping Wang, Teng Gao, and Adriano Tavares. 2020. A survey on performance optimization of high-level synthesis tools. J. of Comput. Sci. and Technol. 35, 3 (2020), 697–720.
[87]
Y. Huangfu and W. Zhang. 2016. Warp-based load/store reordering to improve GPU data cache time predictability and performance. In IEEE 19th Int. Symp. on Real-Time Distrib. Comput. (ISORC). 166–173.
[88]
Y. Huangfu and W. Zhang. 2017. Static WCET analysis of GPUs with predictable warp scheduling. In IEEE 20th Int. Symp. on Real-Time Distrib. Comput. (ISORC). 101–108.
[89]
Y. Huangfu and W. Zhang. 2017. WCET analysis of the shared data cache in integrated CPU-GPU architectures. In IEEE High Performance Extreme Comput. Conf. (HPEC). 1–7.
[90]
Y. Huangfu and W. Zhang. 2018. WCET analysis of GPU L1 data caches. In IEEE High Performance Extreme Comput. Conf. (HPEC). 1–7.
[91]
Andy A. Hwang, Ioan A. Stefanovici, and Bianca Schroeder. 2012. Cosmic rays don’t strike twice: Understanding the nature of DRAM errors and the implications for system design. SIGPLAN Not. 47, 4 (2012), 111–122.
[92]
IEC 2010. IEC 61508(-1/7): Functional safety of electrical/electronic/programmable electronic safety-related systems.
[93]
ISO 2011. ISO 10218-1/2:2011 - Robots and robotic devices - Safety requirements for industrial robots.
[94]
ISO 2015. ISO 13849-(1/2): Safety of machinery - Safety-related parts of control systems, 94 pages.
[95]
ISO 2018. ISO 26262(-1/11) Road vehicles - Functional safety.
[96]
S. Jain, I. Baek, S. Wang, and R. Rajkumar. 2019. Fractional GPUs: Software-based compute and memory bandwidth reservation for GPUs. In Proc. of the IEEE Real-Time and Embedded Technol. and Appl. Symp., (RTAS). 29–41.
[97]
J. Janzen, D. Black-Schaffer, and A. Hugo. 2016. Partitioning GPUs for improved scalability. In Proc. - Symp. on Comput. Architecture and High Performance Comput.42–49.
[98]
X. Jean, M. Gatti, G. Berthon, and M. Fumey. 2011. The Use of Multicore Processors in Airborne Systems (EASA 2011.C31). Report. EASA, Thales Avionics.
[99]
H. Jeon and M. Annavaram. 2012. Warped-DMR: Light-weight error detection for GPGPU. In 45th Annu. IEEE/ACM Int. Symp. on Microarchitecture. 37–47.
[100]
Z. Jia, M. Maggioni, B. Staiger, and D. P. Scarpazza. 2018. Dissecting the NVIDIA Volta GPU Architecture via Microbenchmarking. Report. CoRR. https://arxiv.org/abs/1804.06826.
[101]
Adwait Jog et al. 2015. Anatomy of GPU memory system for multi-application execution. In Proc. of the Int. Symp. on Memory Syst.223–234.
[102]
C. Kalra, F. Previlon, X. Li, N. Rubin, and D. Kaeli. [n.d.]. PRISM: Predicting resilience of GPU applications using statistical methods. In Int. Conf. for High Performance Comput., Netw., Storage and Anal.866–879.
[103]
Christoph Kern and Mark R. Greenstreet. 1999. Formal verification in hardware design: A survey. ACM Trans. Des. Autom. Electron. Syst. 4, 2 (Apr.1999), 123–193.
[104]
David B. Kirk and Wen-mei W. Hwu. 2016. Programming Massively Parallel Processors, Third Edition: A Hands-on Approach. Morgan Kaufmann Publishers Inc.
[105]
L. Kosmidis et al. 2019. GPU4S: Embedded GPUs in space. In 22nd Euromicro Conf. on Digit. System Des. (DSD). 399–405.
[106]
Leonidas Kosmidis et al. 2020. GPU4S: Embedded GPUs in space - Latest project updates. Microprocessors and Microsystems 77 (2020), 103143.
[107]
Leonidas Kosmidis et al. 2021. GPU4S: Major project outcomes, lessons learnt and way forward. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE).
[108]
Ronny Krashinsky, Olivier Giroux, Stephen Jones, Nick Stam, and Sridhar Ramaswamy. 2020. NVIDIA Ampere Architecture In-Depth. https://developer.nvidia.com/blog/nvidia-ampere-architecture-in-depth/.
[109]
Flavio Kreiliger, Joel Matejka, Michal Sojka, and Zdenek Hanzálek. 2019. Experiments for predictable execution of GPU kernels. OSPERT (2019), 23.
[110]
Huang Kuang-Hua and J. A. Abraham. 1984. Algorithm-based fault tolerance for matrix operations. IEEE Trans. on Comput. C-33, 6 (1984), 518–528.
[111]
Asier Larrucea, Jon Perez, Irune Agirre, Vicent Brocal, and Roman Obermaisser. 2015. A modular safety case for an IEC-61508 compliant generic hypervisor. In Euromicro Conference on Digital System Design (DSD). CPS, 4.
[112]
A. Larrucea, J. Perez, and R. Obermaisser. 2015. A modular safety case for an IEC 61508 compliant generic COTS processor. In IEEE Int. Conf. on Comput. and Inform. Technol.; Ubiquitous Comput. and Commun.; Dependable, Autonomic and Secure Comput.; Pervasive Intell. and Comput. (CIT/IUCC/DASC/PICom). 1788–1795.
[113]
Benjamin C. Lee, Engin Ipek, Onur Mutlu, and Doug Burger. 2009. Architecting phase change memory as a scalable dram alternative. SIGARCH Comput. Archit. News 37, 3 (June2009), 2–13.
[114]
C. Lee et al. 2016. VADI: GPU virtualization for an automotive platform. IEEE Trans. on Ind. Inform. 12, 1 (2016), 277–290.
[115]
J. Leng et al. [n.d.]. Asymmetric resilience: Exploiting task-level idempotency for transient error recovery in accelerator-based systems. In IEEE International Symposium on High Performance Computer Architecture (HPCA). 44–57.
[116]
George Lentaris et al. 2018. High-performance embedded computing in space: Evaluation of platforms for vision-based navigation. J. of Aerosp. Inf. Syst. 15, 4 (2018), 178–192.
[117]
Guanpeng Li et al. 2018. Understanding error propagation in deep learning neural network (DNN) accelerators and applications. In Proc. of the Int. Conf. for High Performance Comput., Netw., Storage and Anal.
[118]
G. Li, K. Pattabiraman, C. Cher, and P. Bose. 2016. Understanding error propagation in GPGPU applications. In Proc. of the Int. Conf. for High Performance Comput., Netw., Storage and Anal. (SC). 240–251.
[119]
A. Lotfi, S. Hukerikar, K. Balasubramanian, P. Racunas, N. Saxena, R. Bramley, and Y. Huang. 2019. Resiliency of automotive object detection networks on GPU architectures. In IEEE Int. Test Conf. (ITC). 1–9.
[120]
A. Mahmoud et al. 2018. Optimizing software-directed instruction replication for GPU error detection. In Int. Conf. for High Performance Comput., Netw., Storage and Anal. (SC). 842–854.
[121]
Riccardo Mariani. 2019. Challenges in AI/ML for safety critical systems (Key Note). In 32nd IEEE Int. Symp. on Defect and Fault Tolerance in VLSI and Nanotechnology Syst. (DFT). NVIDIA.
[122]
I. Martinez et al. 2018. Safety Certification of Mixed-Criticality Systems. CRC Press.
[123]
C. Di Martino et al. 2014. Lessons learned from the analysis of system failures at Petascale: The case of Blue Waters. In 44th IEEE/IFIP Int. Conf. on Dependable Syst. and Networks. 610–621.
[124]
Naoya Maruyama, Akira Nukada, and Satoshi Matsuoka. 2009. Software-Based ECC for GPUs. Report.
[125]
N. Maruyama, A. Nukada, and S. Matsuoka. 2010. A high-performance fault-tolerant software framework for memory on commodity GPUs. In IEEE Int. Symp. on Parallel & Distrib. Processing (IPDPS). 1–12.
[126]
L. Mejias, J. Lai, J. J. Ford, and P. O’ Shea. 2012. Demonstration of closed-loop airborne sense-and-avoid using machine vision. IEEE Aerosp. and Electron. Syst. Mag. 27, 4 (2012), 4–7.
[127]
Sparsh Mittal. 2017. A survey of techniques for architecting TLBs. Concurrency and Computation Practice and Experience 29, 10 (2017).
[128]
Sparsh Mittal, S. B. Abhinaya, Manish Reddy, and Irfan Ali. 2018. A survey of techniques for improving security of GPUs. J. of Hardware and Syst. Secur. 2, 3 (2018), 266–285.
[129]
Sparsh Mittal and Jeffrey S. Vetter. 2015. A survey of CPU-GPU heterogeneous computing techniques. ACM Comput. Surv. 47, 4 (2015).
[130]
S. Mittal and J. S. Vetter. 2016. A survey of techniques for modeling and improving reliability of computing systems. IEEE Trans. on Parallel and Distrib. Systems 27, 4 (2016), 1226–1238.
[131]
R. Nane et al. 2016. A survey and evaluation of FPGA high-level synthesis tools. IEEE Trans. on Comput.-Aided Des. of Integrated Circuits and Syst. 35, 10 (2016), 1591–1604.
[132]
R. Nathan and D. J. Sorin. 2015. Argus-G: Comprehensive, low-cost error detection for GPGPU cores. IEEE Comput. Architecture Letters 14, 1 (2015), 13–16.
[133]
W. Nedel, F. Kastensmidt, and J. R. Azambuja. 2014. Implementation and experimental evaluation of a CUDA core under single event effects. In 15th Latin American Test Workshop (LATW). 1–4.
[134]
B. Nie et al. 2017. Characterizing temperature, power, and soft-error behaviors in data center systems: Insights, challenges, and opportunities. In IEEE 25th Int. Symp. on Modeling, Anal., and Simulation of Comput. and Telecommun. Syst. (MASCOTS). 22–31.
[135]
A. Nukada, H. Takizawa, and S. Matsuoka. 2011. NVCR: A transparent checkpoint-restart library for NVIDIA CUDA. In IEEE Int. Symp. on Parallel and Distrib. Processing Workshops and Phd Forum. 104–113.
[136]
[137]
NVIDIA Corporation. [n.d.]. CUDA for Tegra.https://docs.nvidia.com/cuda/cuda-for-tegra-appnote/index.html. Retrieved 2022-02-10 from https://docs.nvidia.com/cuda/cuda-for-tegra-appnote/index.html.
[138]
D. A. G. Oliveira et al. 2014. Modern GPUs radiation sensitivity evaluation and mitigation through duplication with comparison. IEEE Trans. on Nuclear Sci. 61, 6 (2014), 3115–3122.
[139]
D. A. G. Oliveira, P. Rech, L. L. Pilla, P. O. A. Navaux, and L. Carro. 2014. GPGPUs ECC efficiency and efficacy. In IEEE Int. Symp. on Defect and Fault Tolerance in VLSI and Nanotechnology Syst. (DFT). 209–215.
[140]
D. A. G. Gonçalves de Oliveira, L. L. Pilla, T. Santini, and P. Rech. 2016. Evaluation and mitigation of radiation-induced soft errors in graphics processing units. IEEE Trans. on Comput. 65, 3 (2016), 791–804.
[141]
I. S. Olmedo et al. 2020. Dissecting the CUDA scheduling hierarchy: A Performance and predictability perspective. In IEEE Real-Time and Embedded Technol. and Appl. Symp. (RTAS). 213–225.
[142]
I. S. Olmedo, N. Capodieci, and R. Cavicchioli. 2018. A perspective on safety and real-time issues for GPU accelerated ADAS. In 44th Annu. Conf. of the IEEE Ind. Electron. Soc. (IECON). 4071–4077.
[143]
M. Ottavi, D. Gizopoulos, and S. Pontarelli. 2018. Dependable Multicore Architectures at Nanoscale. Springer.
[144]
Nathan Otterness et al. 2017. An evaluation of the NVIDIA TX1 for supporting real-time computer-vision workloads. In IEEE Real-Time and Embedded Technol. and Appl. Symp. (RTAS). 353–364.
[145]
Nathan Otterness and James Anderson. 2021. Exploring AMD GPU scheduling details by experimenting with “Worst Practices”. In Int. Conf. on Real-Time Netw. and Syst. (RTNS).
[146]
Nathan Otterness and James H. Anderson. 2020. AMD GPUs as an alternative to NVIDIA for supporting real-time workloads. In 32nd Euromicro Conf. on Real-Time Syst. (ECRTS). 10:1–10:23.
[147]
Nathan Otterness, Ming Yang, Tanya Amert, James Anderson, and F. Donelson Smith. 2017. Inferring the scheduling policies of an embedded CUDA GPU. In Workshop on Operating Syst. Platforms for Embedded Real Time Syst. Appl. (OSPERT).
[148]
G. Papadimitriou et al. 2020. Exceeding conservative limits: A consolidated analysis on modern hardware margins. IEEE Transactions on Device and Materials Reliability 20, 2 (2020), 341–350.
[149]
Savita Patil et al. 2019. Survey of memory, timing, and power management verification methods for multi-core processors. In IEEE 10th Annu. Inf. Tech., Electron. and Mobile Communication Conf. (IEMCON). 0110–0119.
[150]
R. Pellizzoni et al. 2011. A predictable execution model for COTS-based embedded systems. In 17th IEEE Real-Time and Embedded Technol. and Appl. Symp.269–279.
[151]
J. Perez et al. 2014. A safety certification strategy for IEC-61508 Compliant industrial mixed-criticality systems based on multicore partitioning. In 17th Euromicro Conf. on Digit. Syst. Des. (DSD). 394–400.
[152]
J. Perez et al. 2015. A Safety Concept for an IEC 61508 Compliant Fail-Safe Wind Power Mixed-Criticality Embedded System Based on Multi-Core Partitioning. Lecture Notes in Comput. Sci., Vol. 9111. Springer Int. Publishing. 3– 17 pages.
[153]
Jon Perez Cerrolaza, Roman Obermaisser, Jaume Abella, Francisco J. Cazorla, Kim Grüttner, Irune Agirre, Hamidreza Ahmadian, and Imanol Allende. 2020. Multi-core devices for safety-critical systems: A survey. ACM Comput. Surv. 53, 4 (2020).
[154]
J. Picchi and W. Zhang. 2015. Impact of L2 cache locking on GPU performance. In SoutheastCon. 1–4.
[155]
Bharath Pichai, Lisa Hsu, and Abhishek Bhattacharjee. 2014. Architectural support for address translation on GPUs: designing memory management units for CPU/GPUs with unified address spaces. In Proc. of the 19th Int. Conf. on Architectural Support for Programming Languages and Operating Syst.743–758.
[156]
L. L. Pilla, P. Rech, F. Silvestri, C. Frost, P. O. A. Navaux, M. S. Reorda, and L. Carro. 2014. Software-based hardening strategies for neutron sensitive FFT algorithms on GPUs. IEEE Trans. on Nuclear Sci. 61, 4 (2014), 1874–1880.
[157]
F. G. Previlon et al. 2017. Combining architectural fault-injection and neutron beam testing approaches toward better understanding of GPU soft-error resilience. In IEEE 60th Int. Midwest Symp. on Circuits and Syst.898–901.
[158]
F. G. Previlon et al. 2018. Evaluating the impact of execution parameters on program vulnerability in GPU applications. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE). 809–814.
[159]
F. G. Previlon et al. 2019. A comprehensive evaluation of the effects of input data on the resilience of GPU applications. In IEEE Int. Symp. on Defect and Fault Tolerance in VLSI and Nanotechnology Syst. (DFT). 1–6.
[160]
F. G. Previlon et al. 2020. Characterizing and exploiting soft error vulnerability phase behavior in GPU applications. IEEE Trans. on Dependable and Secure Comput. (2020), 1–1.
[161]
P. Rech, L. L. Pilla, P. O. A. Navaux, and L. Carro. 2014. Impact of GPUs parallelism management on safety-critical and HPC applications reliability. In 44th Annu. IEEE/IFIP Int. Conf. on Dependable Systems and Netw.455–466.
[162]
I. Rodriguez et al. 2020. An on-board algorithm implementation on an embedded GPU: A space case study. In Des., Automat. & Test in Europe Conf. & Exhibition (DATE). 1718–1719.
[163]
J. E. Rodriguez Condia et al. 2020. Analyzing the sensitivity of GPU pipeline registers to single events upsets. In IEEE Comput. Soc. Annu. Symp. on VLSI (ISVLSI). 380–385.
[164]
J. E. Rodriguez Condia et al. 2020. A dynamic hardware redundancy mechanism for the in-field fault detection in cores of GPGPUs. In 23rd Int. Symp. on Des. and Diagnostics of Electron. Circuits & Syst. (DDECS). 1–6.
[165]
Josie E. Rodriguez Condia, Boyang Du, Matteo Sonza Reorda, and Luca Sterpone. 2020. FlexGripPlus: An improved GPGPU model to support reliability analysis. Microelectronics Reliability 109 (2020), 113660.
[166]
Sara Royuela, Alejandro Duran, Maria A. Serrano, Eduardo Quiñones, and Xavier Martorell. 2017. A Functional Safety OpenMP for Critical Real-Time Embedded Systems. Springer Int. Publishing.
[167]
M. Salim, A. O. Akkirman, M. Hidayetoglu, and L. Gurel. 2015. Comparative benchmarking: Matrix multiplication on a multicore coprocessor and a GPU. In Computational Electromagnetics Int. Workshop (CEM). 1–2.
[168]
F. Fernandes Santos et al. 2017. Evaluation and mitigation of soft-errors in neural network-based object detection in three GPU architectures. In 47th Annu. IEEE/IFIP Int. Conf. on Dependable Syst. and Netw. Workshops (DSN-W). 169–176.
[169]
Fernando Fernandes dos Santos, Luigi Carro, and Paolo Rech. 2019. Kernel and layer vulnerability factor to evaluate object detection reliability in GPUs. IET Comput. & Digit. Techniques (2019).
[170]
F. F. d. Santos, P. F. Pimenta, C. Lunardi, L. Draghetti, L. Carro, D. Kaeli, and P. Rech. 2019. Analyzing and increasing the reliability of convolutional neural networks on GPUs. IEEE Trans. on Rel. 68, 2 (2019), 663–677.
[171]
Bülent Sari. 2020. Fail-operational Safety Architecture for ADAS/AD Systems and a Model-driven Approach for Dependent Failure Analysis. Springer Vieweg.
[172]
Catherine D. Schuman, Thomas E. Potok, Robert M. Patton, J. Douglas Birdwell, Mark E. Dean, Garrett S. Rose, and James S. Plank. 2017. A Survey of Neuromorphic Computing and Neural Networks in Hardware. arxiv:1705.06963 [cs.NE].
[173]
Maria A. Serrano, Sara Royuela, and Eduardo Quiñones. 2018. Towards an OpenMP Specification for Critical Real-Time Syst.Springer Int. Publishing.
[174]
Yusuke Suzuki, Shinpei Kato, Hiroshi Yamada, and Kenji Kono. 2014. GPUvm: Why not virtualizing GPUs at the hypervisor? In USENIX Annu. Technical Conf.USENIX Association, 109–120.
[175]
H. Takizawa, K. Sato, K. Komatsu, and H. Kobayashi. 2009. CheCUDA: A checkpoint/restart tool for CUDA applications. In Int. Conf. on Parallel and Distrib. Comput., Appl. and Technologies. 408–413.
[176]
E. Talpes et al. 2020. Compute solution for Tesla’s full self-driving computer. IEEE Micro 40, 2 (2020), 25–35.
[177]
Jingweijia Tan and Xin Fu. 2012. RISE: Improving the streaming processors reliability against soft errors in GPGPUs. In Proc. of the 21st Int. Conf. on Parallel Architectures and Compilation Techniques (PACT). 191–200.
[178]
J. Tan, N. Goswami, T. Li, and X. Fu. 2011. Analyzing soft-error vulnerability on GPGPU microarchitecture. In IEEE Int. Symp. on Workload Characterization (IISWC). 226–235.
[179]
D. Tiwari et al. 2015. Understanding GPU errors on large-scale HPC systems and the implications for system design and operation. In IEEE 21st Int. Symp. on High Performance Comput, Architecture (HPCA). 331–342.
[180]
Nguyen Toan, Tatsuo Nomura, Hideyuki Jitsumoto, Naoya Maruyama, Toshio Endo, and Satoshi Matsuoka. 2010. MPI-CUDA Applications Checkpointing. Report. IPSJ SIG Technical Report.
[181]
Assia Tria and Hamid Choukri. 2011. Invasive attacks. Encyclopedia of Cryptography and Security, 2 (2011), Pages 623–629.
[182]
M. M. Trompouki et al. 2017. An open benchmark implementation for multi-CPU multi-GPU pedestrian detection in automotive systems. In IEEE/ACM Int. Conf. on Comput.-Aided Des. (ICCAD). 305–312.
[183]
Matina Maria Trompouki and Leonidas Kosmidis. 2018. Brook auto: High-level certification-friendly programming for GPU-powered automotive systems. In Proc. of the 55th Annu. Des. Automat. Conf.
[184]
Matina Maria Trompouki and Leonidas Kosmidis. 2019. BRASIL: A high-integrity GPGPU toolchain for automotive systems. In 37th IEEE Int. Conf. on Comput. Des. (ICCD). IEEE, 660–663.
[185]
I. Troxel, J. Schaefer, M. Gruber, and P. Gauvin. 2019. Summary of Radiation Test Data for Several GPUs. Report.
[186]
T. Tsai, S. K. S. Hari, M. Sullivan, O. Villa, and S. W. Keckler. [n.d.]. NVBitFI: Dynamic fault injection for GPUs. In 51st Annu. IEEE/IFIP Int. Conf. on Dependable Syst. and Netw. (DSN). 284–291.
[187]
S. Tselonis and D. Gizopoulos. 2016. GUFI: A framework for GPUs reliability assessment. In IEEE Int. Symp. on Performance Anal. of Syst. and Softw. (ISPASS). 90–100.
[188]
R. Ubal, B. Jang, P. Mistry, D. Schaa, and D. Kaeli. 2012. Multi2Sim: A simulation framework for CPU-GPU computing. In 21st Int. Conf. on Parallel Architectures and Compilation Techniques (PACT). 335–344.
[189]
A. Vallero, D. Gizopoulos, and S. Di Carlo. 2017. SIFI: AMD Southern Islands GPU microarchitectural level fault injector. In IEEE 23rd Int. Symp. on On-Line Testing and Robust System Des. (IOLTS). 138–144.
[190]
A. Vallero, S. Tselonis, D. Gizopoulos, and S. Di Carlo. 2018. Multi-faceted microarchitecture level reliability characterization for NVIDIA and AMD GPUs. In IEEE 36th VLSI Test Symp. (VTS). 1–6.
[191]
J. Wadden, A. Lyashevsky, S. Gurumurthi, V. Sridharan, and K. Skadron. 2014. Real-world design and evaluation of compiler-managed GPU redundant multithreading. In Int. Symp. on Comput. Architecture (ISCA). 73–84.
[192]
B. X. Wang. 2019. Detecting hazardously misleading information on safety-critical displays. In IEEE/AIAA 38th Digit. Avionics Syst. Conf. (DASC). 1–5.
[193]
Zhang Wangyuan and Li Tao. 2008. Microarchitecture soft error vulnerability characterization and mitigation under 3D integration technology. In 41st IEEE/ACM Int. Symp. on Microarchitecture. 435–446.
[194]
B. Wu, G. Chen, D. Li, X. Shen, and J. Vetter. 2015. Enabling and exploiting flexible task assignment on GPU through SM-centric program transformations. In Proc. of the Int. Conf. on Supercomputing, Vol. 2015-June. 119–130.
[195]
H. Wunderlich, C. Braun, and S. Halder. [n.d.]. Efficacy and efficiency of algorithm-based fault-tolerance on GPUs. In IEEE 19th Int. On-Line Testing Symp. (IOLTS). 240–243.
[196]
Edward Wyrwas. 2018. Body of Knowledge for Graphics Processing Units (GPUs). Report. NASA.
[197]
G. Xie, Y. Li, Y. Han, Y. Xie, G. Zeng, and R. Li. 2020. Recent advances and future trends for automotive functional safety design methodologies. IEEE Trans. on Ind. Inform. 16, 9 (2020), 5629–5642.
[198]
Xilinx. 2020. Device Reliability Report (UG116) - Second Half 2020. Report. Xilinx.
[199]
Xin-Hai Xu, Xue-Jun Yang, Jing-Ling Xue, Yu-Fei Lin, and Yi-Song Lin. 2012. PartialRC: A partial recomputing method for efficient fault recovery on GPGPUs. J. of Comput. Sci. and Technol. 27, 2 (2012), 240–255.
[200]
M. Yang et al. 2018. Avoiding pitfalls when using NVIDIA GPUs for real-time tasks in autonomous systems. In 30th Euromicro Conf. on Real-Time Systems (ECRTS), Vol. 106. 20:1–20:21.
[201]
Ming Yang et al. 2018. Making OpenVX really “Real Time”. In IEEE Real-Time Syst. Symp. RTSS. 80–93.
[202]
K. S. Yim, C. Pham, M. Saleheen, Z. Kalbarczyk, and R. Iyer. 2011. Hauberk: Lightweight silent data corruption error detector for GPGPU. In IEEE Int. Parallel & Distrib. Processing Symp.287–300.
[203]
Junko Yoshida. 2020. Unveiled: BMW’s Scalable AV Architecture. TechOnline, IEEE.
[204]
Jin Zhang and Jingyue Li. 2020. Testing and verification of neural-network-based safety-critical control software: A systematic literature review. Inf. and Softw. Technol. 123 (2020), 106296.

Cited By

View all
  • (2024)Quantitative Performance Analysis of BLAS Libraries on GPU ArchitecturesBLAS Kütüphanelerinin GPU Mimarilerindeki Nicel Performans AnaliziDeu Muhendislik Fakultesi Fen ve Muhendislik10.21205/deufmd.202426760626:76(40-48)Online publication date: 23-Jan-2024
  • (2024)Artificial Intelligence for Safety-Critical Systems in Industrial and Transportation Domains: A SurveyACM Computing Surveys10.1145/362631456:7(1-40)Online publication date: 9-Apr-2024
  • (2024)Artificial Neural Networks for Space and Safety-Critical Applications: Reliability Issues and Potential SolutionsIEEE Transactions on Nuclear Science10.1109/TNS.2024.334995671:4(377-404)Online publication date: Apr-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Computing Surveys
ACM Computing Surveys  Volume 55, Issue 7
July 2023
813 pages
ISSN:0360-0300
EISSN:1557-7341
DOI:10.1145/3567472
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 December 2022
Online AM: 19 July 2022
Accepted: 03 June 2022
Revised: 24 May 2022
Received: 23 May 2021
Published in CSUR Volume 55, Issue 7

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Diagnostic coverage
  2. time independence
  3. spatial independence

Qualifiers

  • Survey
  • Refereed

Funding Sources

  • European Research Council with Horizon 2020
  • Spanish Ministry of Science and Innovation SP02
  • HiPEAC Network of Excellence
  • Basque Government
  • Spanish Ministry of Economy and Competitiveness
  • Juan de la Cierva Incorporación postdoctoral fellowship

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)556
  • Downloads (Last 6 weeks)44
Reflects downloads up to 24 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Quantitative Performance Analysis of BLAS Libraries on GPU ArchitecturesBLAS Kütüphanelerinin GPU Mimarilerindeki Nicel Performans AnaliziDeu Muhendislik Fakultesi Fen ve Muhendislik10.21205/deufmd.202426760626:76(40-48)Online publication date: 23-Jan-2024
  • (2024)Artificial Intelligence for Safety-Critical Systems in Industrial and Transportation Domains: A SurveyACM Computing Surveys10.1145/362631456:7(1-40)Online publication date: 9-Apr-2024
  • (2024)Artificial Neural Networks for Space and Safety-Critical Applications: Reliability Issues and Potential SolutionsIEEE Transactions on Nuclear Science10.1109/TNS.2024.334995671:4(377-404)Online publication date: Apr-2024
  • (2024)Demystifying NVIDIA GPU Internals to Enable Reliable GPU Management2024 IEEE 30th Real-Time and Embedded Technology and Applications Symposium (RTAS)10.1109/RTAS61025.2024.00031(294-305)Online publication date: 13-May-2024
  • (2024)DAW-DMR: Divergence-Aware Warped DMR with Full Error Detection for GPGPU s2024 IEEE Computer Society Annual Symposium on VLSI (ISVLSI)10.1109/ISVLSI61997.2024.00039(161-166)Online publication date: 1-Jul-2024
  • (2024)Utilizing Machine Learning Techniques for Worst-Case Execution Time Estimation on GPU ArchitecturesIEEE Access10.1109/ACCESS.2024.337901812(41464-41478)Online publication date: 2024
  • (2024)Real-time design patterns for the verification of safety-critical embedded systems in model-based approachThe Journal of Supercomputing10.1007/s11227-023-05866-080:8(11431-11473)Online publication date: 27-Jan-2024
  • (2023)Uso de GPUs en aplicaciones de tiempo real: Una revisión de técnicas para el análisis y optimización de parámetros temporalesRevista Iberoamericana de Automática e Informática industrial10.4995/riai.2023.2032121:1(1-16)Online publication date: 7-Nov-2023
  • (2023)A Novel Method for Fast Generation of 3D Objects from Multiple Depth SensorsJournal of Artificial Intelligence and Soft Computing Research10.2478/jaiscr-2023-000913:2(95-105)Online publication date: 11-Mar-2023
  • (2023)Cluster-based Object Detection System with Scalable Performance for Autonomous Driving2023 23rd International Conference on Control, Automation and Systems (ICCAS)10.23919/ICCAS59377.2023.10316963(605-609)Online publication date: 17-Oct-2023
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Full Text

View this article in Full Text.

Full Text

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media