.. SPDX-FileCopyrightText: 2021 Intel Corporation .. .. SPDX-License-Identifier: CC-BY-4.0 .. _oneipl_architecture: oneIPL Architecture ==================== The oneIPL element of oneAPI has several general assumptions, requirements and recommendations addressed in this architecture section. In particular, DPC++ allows for a great control over the execution of kernels on the various devices. See the discussion on the supported execution models of oneIPL APIs in :ref:`oneipl_execution_model`. The discussion of how data is stored and passed in and out of the APIs is addressed in :ref:`oneipl_memory_model`. The general structure and design of oneIPL APIs including namespaces and common data types are expressed in :ref:`oneipl_api_design`. The exceptions and error handling are described in :ref:`oneipl_error_handling`. The other necessary aspects related to oneIPL architecture can be found in :ref:`oneipl_arch_other`, including versioning and discussion of pre and post conditions. .. toctree:: :maxdepth: 4 api-design memory-model execution-model error-handling/error-handling other-architecture