cuda-api-wrappers
Thin C++-flavored wrappers for the CUDA Runtime API
api.hpp
Go to the documentation of this file.
1 
7 #pragma once
8 #ifndef CUDA_API_WRAPPERS_HPP_
9 #define CUDA_API_WRAPPERS_HPP_
10 
11 #if (__cplusplus < 201103L && (!defined(_MSVC_LANG) || _MSVC_LANG < 201103L))
12 #error "The CUDA API headers can only be compiled with C++11 or a later version of the C++ language standard"
13 #endif
14 
15 #include "api/types.hpp"
16 #include "cuda/api/region.hpp"
17 
18 #include "api/pci_id.hpp"
19 #include "api/constants.hpp"
20 #include "api/error.hpp"
21 #include "api/versions.hpp"
22 #include "api/miscellany.hpp"
23 #include "api/pointer.hpp"
25 #include "api/current_context.hpp"
26 #include "api/ipc.hpp"
27 #include "api/array.hpp"
28 #include "api/texture_view.hpp"
29 #include "api/copy_parameters.hpp"
30 #include "api/memory.hpp"
31 #if CUDA_VERSION >= 11020
32 #include "api/memory_pool.hpp"
33 #endif
34 #include "api/unique_ptr.hpp"
35 #include "api/link_options.hpp"
36 
37 #include "api/device.hpp"
38 #include "api/context.hpp"
39 #include "api/primary_context.hpp"
40 #include "api/stream.hpp"
41 #include "api/event.hpp"
42 #include "api/kernel.hpp"
43 #include "api/module.hpp"
44 #if CUDA_VERSION >= 12000
45 #include "api/library.hpp"
47 #endif
48 #include "api/link.hpp"
49 
50 #include "api/current_device.hpp"
51 
52 #include "api/peer_to_peer.hpp"
53 #include "api/devices.hpp"
54 
55 #include "api/detail/pci_id.hpp"
58 #include "api/kernel_launch.hpp"
59 #include "api/virtual_memory.hpp"
60 #if CUDA_VERSION >= 10000
61 #include "api/external.hpp"
62 #endif // CUDA_VERSION >= 10000
63 
78 
80 
81 #endif // CUDA_API_WRAPPERS_HPP_
wrappers for CUDA&#39;s facilities for sharing on-device memory addresses and CUDA events between host pr...
A proxy class for CUDA devices, providing access to all Runtime API calls involving their use and man...
Wrappers for working with modules of compiled CUDA code.
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard apr...
The cuda::memory::pool_t proxy class for memory pools, and related code for creating, manipulating and allocating using memory pools.
Code regarding the entirety of CUDA devices available on a system.
CUDA wrappers for "CUDA-external resources": memory and semaphores.
Implementations of cuda::memory::pointer_t methods requiring the definitions of multiple CUDA entity ...
Wrappers for working with "libraries" of compiled CUDA code (which are similar to modules...
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard mod...
Implementations of inter-processing-communications related functions and classes requiring the defini...
Contains a proxy class for CUDA execution contexts.
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard str...
Wrappers for Runtime API functions involving versions - of the CUDA runtime and of the CUDA driver...
Implementations requiring the definitions of multiple CUDA entity proxy classes, of kernel-launch-rel...
A memory region class (cuda::memory::region) and related functinality.
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard ker...
The copy_parameters class template and related definitions.
Settings and actions related to the interaction of multiple devices (adding on those already in devic...
A proxy class for CUDA streams, providing access to all Runtime API calls involving their use and man...
A smart pointer for CUDA device- and host-side memory, similar to the standard library&#39;s ::std::uniqu...
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard con...
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard lau...
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard eve...
Contains a proxy class for CUDA arrays - GPU memory with 2-D or 3-D locality and hardware support for...
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard dev...
Variadic, chevron-less wrappers for the CUDA kernel launch mechanism.
Wrappers for getting and setting CUDA&#39;s choice of which device is &#39;current&#39;.
Implementations requiring the definitions of multiple CUDA entity proxy classes, in the cuda::memory ...
Facilities for exception-based handling of Runtime and Driver API errors, including a basic exception...
Miscellaneous functionality which does not fit in another file, and does not depend on the main proxy...
Contains the class launch_configuration_t, an enhanced child class of the CUlaunchConfig struct of CU...
A wrapper class for host and/or device pointers, allowing easy access to CUDA&#39;s pointer attributes...
Contains a "texture view" class, for hardware-accelerated access to CUDA arrays, and some related sta...
Contains a base wrapper class for CUDA kernels - both statically and dynamically compiled; and some r...
Contains the cuda::launch_config_builder_t class definition.
Fundamental CUDA-related constants and enumerations, not dependent on any more complex abstractions...
A CUDA event wrapper class and some associated free-standing functions.
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard eve...
iostream-related freestanding operator functions for cuda::device::pci_location_t instances and iostr...
A A wrapper class for compiled kernels in a loaded library, which are unassociated with a device and ...
An implementation of a subclass of kernel_t for kernels compiled together with the host-side program...
Fundamental CUDA-related type definitions.
freestanding wrapper functions for working with CUDA&#39;s various kinds of memory spaces, arranged into a relevant namespace hierarchy.
Implementations requiring the definitions of multiple CUDA entity proxy classes, in the cuda::memory:...
Classes for holding CUDA device properties and CUDA compute capability values.
Definition of a wrapper class for CUDA PCI device ID information.