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 #include "api/types.hpp"
12 #include "api/pci_id.hpp"
13 #include "api/constants.hpp"
14 #include "api/error.hpp"
15 #include "api/versions.hpp"
16 #include "api/miscellany.hpp"
17 #include "api/pointer.hpp"
19 #include "api/current_context.hpp"
20 #include "api/ipc.hpp"
21 #include "api/array.hpp"
22 #include "api/texture_view.hpp"
23 #include "api/copy_parameters.hpp"
24 #include "api/memory.hpp"
25 #if CUDA_VERSION >= 11020
26 #include "api/memory_pool.hpp"
27 #endif
28 #include "api/unique_region.hpp"
29 #include "cuda/api/detail/unique_span.hpp"
30 #include "api/link_options.hpp"
31 
32 #include "api/device.hpp"
33 #include "api/context.hpp"
34 #include "api/primary_context.hpp"
35 #include "api/stream.hpp"
36 #include "api/event.hpp"
37 #include "api/kernel.hpp"
38 #include "api/module.hpp"
39 #if CUDA_VERSION >= 11040
40 #if !defined(_WIN32) && !defined(WIN32)
41 #include "api/demangle.hpp"
42 #endif
43 #endif
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 
64 #if CUDA_VERSION >= 10000
65 #include "api/graph/node.hpp"
66 #include "api/graph/typed_node.hpp"
67 #include "api/graph/template.hpp"
68 #include "api/graph/instance.hpp"
69 #endif // CUDA_VERSION >= 10000
70 
88 #if CUDA_VERSION >= 10000
91 #endif // CUDA_VERSION >= 10000
92 #endif // CUDA_API_WRAPPERS_HPP_
wrappers for CUDA's facilities for sharing on-device memory addresses and CUDA events between host pr...
Implementations of make_unique_region() functions in different memory spaces.
Convenience classes for construction execution graph nodes.
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 ...
Functions related to mangling & demangling identifiers.
Implementations requiring the definitions of multiple CUDA entity proxy classes, which regard CUDA (e...
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...
A smart pointer for CUDA device- and host-side memory, similar to the standard library's ::std::uniqu...
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...
Implementations requiring the definitions of multiple CUDA entity proxy classes, and which regard ker...
The cuda::memory::copy_parameters_t 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...
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's choice of which device is 'current'.
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 cuda::launch_configuration_t and some supporting code.
A wrapper class for host and/or device pointers, allowing easy access to CUDA'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...
A CUDA execution graph instance wrapper class and some associated definitions.
Contains the cuda::launch_config_builder_t class definition and related definitions.
Fundamental CUDA-related constants and enumerations, not dependent on any more complex abstractions...
Graph template node proxy (base-)class base-class node_t and supporting code.
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...
Implementations of utility functions related to the cuda::unique_span class.
The cuda::library::kernel_t class and related code.
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'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 representing specific and overall properties of CUDA devices.
Definition of a wrapper class for CUDA PCI device ID information.
An implementation of a subclass of kernel_t for kernels compiled together with the host-side program...