====== 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 ===== .. doxygentypedef:: real32 .. doxygentypedef:: real64 .. doxygentypedef:: complex64 .. doxygentypedef:: complex128 Macro Definitions ================= Device Indicators ----------------- .. doxygendefine:: CUDACC .. doxygendefine:: DEVICE Host-Device Automation ---------------------- .. doxygendefine:: HD .. doxygendefine:: SHARED Compilation Options ------------------- .. doxygendefine:: CUDATOOLS_ARRAY_MAX_AXES Macro Functions =============== .. doxygendefine:: KERNEL Device Helpers -------------- .. doxygendefine:: BASIC_LOOP Device Class ------------ .. doxygendefine:: DEVICE_CLASS 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: