CUDALink

CUDALink allows Mathematica to use the CUDA parallel computing architecture on Graphical Processing Units (GPUs). It contains functions that use CUDA-enabled GPUs to boost performance in a number of areas, such as linear algebra, financial simulation, and image processing. CUDALink also integrates CUDA with existing Mathematica development tools, allowing a high degree of automation and control.

ReferenceReference

Query

CUDAQ determine whether CUDALink is supported

CUDAInformation enumerate all device information

CUDADriverVersion give video driver version

$CUDADeviceCount number of devices on system

$CUDALinkPath path to the CUDALink application

$CUDADevice device used in CUDALink computation

Resource Installation

CUDAResourcesInstall install the CUDA resources

CUDAResourcesInformation give information on installed CUDA resources

CUDAResourcesUninstall uninstall the CUDA resources

Image Processing

Filtering

CUDAImageConvolve convolve images with specified kernel

CUDABoxFilter apply the box filter on images

Morphology

CUDADilation apply morphological dilation on images

CUDAErosion apply morphological erosion on images

CUDAOpening apply morphological opening on images

CUDAClosing apply morphological closing on images

Binary Operations

CUDAImageAdd add two images

CUDAImageSubtract subtract two images

CUDAImageMultiply multiply two images

CUDAImageDivide divide two images

CUDAClamp clamp values of an image between a specified range

CUDAColorNegate invert an image

Fourier Transform

CUDAFourier find the Fourier transform

CUDAInverseFourier find the inverse Fourier transform

Linear Algebra

CUDADot give the product of vectors and matrices

CUDATranspose transpose input matrix

CUDAArgMaxList give the index with maximum absolute element

CUDAArgMinList give the index with minimum absolute element

CUDATotal give the total of the absolute values of a vector

Memory

CUDAMemory handle to CUDA memory registered using CUDAMemoryLoad or CUDAMemoryAllocate

CUDAMemoryLoad load Mathematica memory into CUDALink returning CUDAMemory

CUDAMemoryAllocate allocate memory for CUDALink returning CUDAMemory

CUDAMemoryGet copy CUDAMemory to Mathematica

CUDAMemoryUnload unload and delete a CUDAMemory handle

CUDAMemoryInformation get CUDAMemory handle information

CUDAMemoryCopyToHost copy CUDAMemory from GPU to CPU

CUDAMemoryCopyToDevice copy CUDAMemory from CPU to GPU

Executing Code

CUDAFunction handle to CUDA function loaded using CUDAFunctionLoad

CUDAFunctionLoad load CUDAFunction into Mathematica

CUDAFunctionInformation get CUDAFunction information

Compiling

NVCCCompiler compile code using the NVIDIA CUDA compiler

CUDACCompilers give a list of supported C compilers installed on the system

Symbolic CUDA

SymbolicCUDAFunction symbolic representation of a CUDA function

SymbolicCUDABlockIndex symbolic representation of a block index CUDA call

SymbolicCUDAThreadIndex symbolic representation of a thread index CUDA call

SymbolicCUDABlockDimension symbolic representation of a block dimensions CUDA call

SymbolicCUDACalculateKernelIndex symbolic representation of a CUDA index calculation

SymbolicCUDADeclareIndexBlock symbolic representation of a CUDA index declaration

Examples

CUDAFinancialDerivative financial option valuation

CUDAMap apply a function to each element on an input list

CUDASort sort input elements

CUDAFold fold input elements

CUDAFoldList fold input elements into a list

CUDAVolumetricDataRead read raw volumetric data to be rendered

CUDAVolumetricRender render volumetric data read

CUDAFluidDynamics compute and render a fluid dynamics simulation

New to Mathematica? Find your learning path »
Have a question? Ask support »