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.

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

cusy

(cusy n source options)(cusy n arg)(cusy arg)

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

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

set-engine!

(set-engine! factory hstream)(set-engine! factory)(set-engine!)

Creates an CUDA factory using the provided factory constructor function. The created factory will work using the provided stream and the current context, and will be bound to the root of *cuda-factory*. Enables the use of cuv, cuge, cutr, etc. globally.

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 hstream & 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.