dopt.cuda

This is the main interface for the dopt CUDA backend.

The APIs in this module allow users to evaluate operation graphs on GPUs through the use of CUDA. There is also functionality to register CUDA implementations of custom operations.

In future, this module will also have an interface allowing the user to register their own optimisation passes to be called when constructing a plan.

Modules

basic
module dopt.cuda.basic
Undocumented in source.
math
module dopt.cuda.math
Undocumented in source.
nnet
module dopt.cuda.nnet
Undocumented in source.
nvrtc
module dopt.cuda.nvrtc
Undocumented in source.
random
module dopt.cuda.random
Undocumented in source.

Members

Aliases

CUDAKernelCtr
alias CUDAKernelCtr = CUDAKernel delegate(Operation op)
Undocumented in source.

Classes

CUDABuffer
class CUDABuffer

A class that encapsulates the CUDA memory allocation/deallocation process.

CUDAPlan
class CUDAPlan

A Plan stores all the resources (preallocated buffers, custom CUDA kernels) required to evaluate nodes from the Operation graph.

Functions

cudaType
string cudaType(DataType t)
Undocumented in source. Be warned that the author may not have intended to support it.
deregisterCUDAKernel
void deregisterCUDAKernel(string opType)

Deregisters a kernel constructor associated with the given operation type.

evaluateCUDA
DeviceBuffer[] evaluateCUDA(Operation[] ops, DeviceBuffer[Operation] args)

Used for performing a one-off evaluation of a set of operations.

evaluateCUDA
DeviceBuffer evaluateCUDA(Operation op, DeviceBuffer[Operation] args)

A convenience overload that evaluates a single operation and returns a single DeviceBuffer.

listCUDAOperations
string[] listCUDAOperations()

Provides a list of all operation types supported by the CUDA backend.

registerCUDAKernel
void registerCUDAKernel(string opName, CUDAKernelCtr kernelCtr)

Registers a CUDA kernel constructor for a given operation type.

Interfaces

CUDAKernel
interface CUDAKernel

Provides a common interface for CUDA kernels.

Meta

Authors

Henry Gouk