uncomplicate.neanderthal.cuda

Specialized constructors that use CUDA engine by default, and convenient macros for creating and maintaining engines in appropriate CUDA and cuBLAS context. A convenience over agnostic uncomplicate.neanderthal.core functions.

*cuda-factory*

dynamic

Dynamically bound CUDA factory that is used in vector and matrix constructors.

cuda-double

Constructor of a double-precision floating point CUDA factory.

cuda-float

Constructor of a single precision floating point CUDA factory.

cuda-handle

Creates the context handler for the cuda BLAS engine.

cuge

(cuge m n source options)(cuge m n arg)(cuge m n)(cuge a)

Creates a GE matrix using CUDA GPU engine provided to the bound *cuda-factory* (see uncomplicate.neanderthal.core/ge).

cutr

(cutr n source options)(cutr n arg)(cutr arg)

Creates a TR matrix using CUDA GPU engine provided to the bound *cuda-factory* (see uncomplicate.neanderthal.core/tr).

cuv

(cuv source)(cuv x & xs)

Creates a vector using CUDA GPU engine provided to the bound *cuda-factory* (see uncomplicate.neanderthal.core/vctr).

with-default-engine

macro

(with-default-engine & body)

Creates a CUDA factory using the default factory and a new implicit cuBLAS context handler. Enables the use of cuv, cuge, cutr, etc. in its body.

with-engine

macro

(with-engine factory handle & body)

Creates a CUDA factory using the provided factory constructor function and a handle cuBLAS context handler. The created factory will work using the provided cuBLAS handle and its context, and will be bound to *cuda-factory*. Enables the use of cuv, cuge, cutr, etc. in its body.