You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
2.5 KiB
118 lines
2.5 KiB
8 months ago
|
======
|
||
|
Core.h
|
||
|
======
|
||
|
|
||
|
The ``Core.h`` header file defines some useful types and some macros functions
|
||
|
to faciliate the dual CPU-CUDA compilation targets. Additionally, it introduces
|
||
|
several classes to enable the usage of CUDA streams, kernels, and graphs.
|
||
|
|
||
|
Types
|
||
|
=====
|
||
|
|
||
|
These numeric types are defined to faciliate the special types used for CUDA,
|
||
|
and is *necessary* to use them for functions to work properly. It is recommended
|
||
|
to bring them into the global namespace if possible, by writing ``using namespace CudaTools::Types;``.
|
||
|
|
||
|
.. doxygentypedef:: CudaTools::Types::real32
|
||
|
.. doxygentypedef:: CudaTools::Types::real64
|
||
|
.. doxygentypedef:: CudaTools::Types::complex64
|
||
|
.. doxygentypedef:: CudaTools::Types::complex128
|
||
|
|
||
|
These are types provided by the CUDA Math API, which cannot be easily used as computational
|
||
|
types on host code. Take care when transferring these back to host functions, as further
|
||
|
processing may require a type conversion.
|
||
|
|
||
|
.. doxygentypedef:: CudaTools::Types::real16
|
||
|
.. doxygentypedef:: CudaTools::Types::realb16
|
||
|
|
||
|
Macro Definitions
|
||
|
=================
|
||
|
|
||
|
Device Indicators
|
||
|
-----------------
|
||
|
.. doxygendefine:: CUDACC
|
||
|
.. doxygendefine:: DEVICE
|
||
|
|
||
|
Host-Device Automation
|
||
|
----------------------
|
||
|
.. doxygendefine:: HD
|
||
|
.. doxygendefine:: DEVICE_FUNC
|
||
|
.. doxygendefine:: SHARED
|
||
|
|
||
|
Compilation Options
|
||
|
-------------------
|
||
|
.. doxygendefine:: CUDATOOLS_ARRAY_MAX_AXES
|
||
|
.. doxygendefine:: CUDATOOLS_USE_EIGEN
|
||
|
.. doxygendefine:: CUDATOOLS_USE_PYTHON
|
||
|
|
||
|
Macro Functions
|
||
|
===============
|
||
|
|
||
|
.. doxygendefine:: KERNEL
|
||
|
|
||
|
Device Helpers
|
||
|
--------------
|
||
|
|
||
|
.. doxygendefine:: BASIC_LOOP
|
||
|
|
||
|
Device Copy
|
||
|
------------
|
||
|
|
||
|
.. doxygendefine:: DEVICE_COPY
|
||
|
|
||
|
|
||
|
Memory Functions
|
||
|
================
|
||
|
|
||
|
.. doxygenfunction:: CudaTools::malloc
|
||
|
|
||
|
.. doxygenfunction:: CudaTools::free
|
||
|
|
||
|
.. doxygenfunction:: CudaTools::copy
|
||
|
|
||
|
.. doxygenfunction:: CudaTools::memset
|
||
|
|
||
|
.. doxygenfunction:: CudaTools::pin
|
||
|
|
||
|
|
||
|
Streams and Handles
|
||
|
===================
|
||
|
|
||
|
CudaTools::StreamID
|
||
|
-------------------
|
||
|
|
||
|
.. doxygenstruct:: CudaTools::StreamID
|
||
|
|
||
|
CudaTools::Manager
|
||
|
------------------
|
||
|
|
||
|
.. doxygenclass:: CudaTools::Manager
|
||
|
:members:
|
||
|
|
||
|
Kernels
|
||
|
=======
|
||
|
|
||
|
.. doxygenfunction:: CudaTools::Kernel::launch
|
||
|
|
||
|
.. doxygenfunction:: CudaTools::Kernel::basic
|
||
|
|
||
|
CudaTools::Kernel::Settings
|
||
|
---------------------------
|
||
|
|
||
|
.. doxygenstruct:: CudaTools::Kernel::Settings
|
||
|
:members:
|
||
|
|
||
|
|
||
|
Graphs
|
||
|
======
|
||
|
|
||
|
CudaTools::Graph
|
||
|
----------------
|
||
|
.. doxygenclass:: CudaTools::Graph
|
||
|
:members:
|
||
|
|
||
|
CudaTools::GraphManager
|
||
|
-----------------------
|
||
|
.. doxygenstruct:: CudaTools::GraphManager
|
||
|
:members:
|