A library and framework for developing CPU-CUDA compatible applications under one unified code.
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.
 
 
 

2.5 KiB

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;.

CudaTools::Types::real32

CudaTools::Types::real64

CudaTools::Types::complex64

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.

CudaTools::Types::real16

CudaTools::Types::realb16

Macro Definitions

Device Indicators

CUDACC

DEVICE

Host-Device Automation

HD

DEVICE_FUNC

SHARED

Compilation Options

CUDATOOLS_ARRAY_MAX_AXES

CUDATOOLS_USE_EIGEN

CUDATOOLS_USE_PYTHON

Macro Functions

KERNEL

Device Helpers

BASIC_LOOP

Device Copy

DEVICE_COPY

Memory Functions

CudaTools::malloc

CudaTools::free

CudaTools::copy

CudaTools::memset

CudaTools::pin

Streams and Handles

CudaTools::StreamID

CudaTools::StreamID

CudaTools::Manager

CudaTools::Manager

Kernels

CudaTools::Kernel::launch

CudaTools::Kernel::basic

CudaTools::Kernel::Settings

CudaTools::Kernel::Settings

Graphs

CudaTools::Graph

CudaTools::Graph

CudaTools::GraphManager

CudaTools::GraphManager