GPU Computing

GPU computing has become ubiquitous in many areas, ranging from scientific computing and machine learning to games and many more. GPUs provide a parallel processing model that makes it possible to accelerate computations significantly and to handle large datasets efficiently, leading to faster and more powerful processing capabilities. With its GPU-aware array framework, high-level functions and powerful compiler, the Wolfram Language offers state-of-the-art functionality designed to leverage the capabilities of GPUs. Immediately access and manipulate data directly on GPUs and boost productivity using high-level linear algebra, statistics and mathematical functions without sacrificing performance.

GPUArray store data in memory for GPU

Normal retrieve data from GPU

Arrays

GPUArrayQ test whether an object is a valid GPU array

ArrayQ  ▪ VectorQ  ▪ MatrixQ  ▪ ArrayDepth  ▪ Dimensions  ▪ Length  ▪ Part  ▪ First  ▪ Last  ▪ ByteCount

Linear Algebra »

Dot matrix operations

Transpose  ▪ ConjugateTranspose  ▪ Diagonal  ▪ Tr

LinearSolve solve linear systems

Inverse  ▪ PseudoInverse  ▪ SingularValueDecomposition

LeastSquares solve linear least-squares problems

Discrete Fourier Analysis »

Fourier find the discrete Fourier transform

InverseFourier find the discrete inverse Fourier transform

Random Number Generation »

SeedRandom use "GPU" method for pseudorandom number generation

RandomInteger  ▪ RandomReal  ▪ RandomComplex

Statistics »

Mean descriptive statistics

GeometricMean  ▪ Variance  ▪ Skewness  ▪ StandardDeviation  ▪ RootMeanSquare  ▪ Kurtosis

Sort order statistics

Min  ▪ Max  ▪ MinMax  ▪ Ordering

Mathematical Functions »

Plus, Times arithmetic functions

Subtract  ▪ Divide  ▪ Total  ▪ Mean  ▪ Accumulate  ▪ Differences  ▪ Ratios

Sin, Cos trigonometric functions

Tan  ▪ ArcSin  ▪ ArcCos  ▪ ArcTan

Exp, Log transcendental functions

Log2  ▪ Log10  ▪ Power  ▪ Sqrt  ▪ CubeRoot

Sinh, Cosh hyperbolic functions

Tanh  ▪ ArcSinh  ▪ ArcCosh  ▪ ArcTanh

Ceiling, Floor integer functions

Round  ▪ IntegerPart  ▪ FractionalPart

Abs, Sign absolute values and signs

RealAbs  ▪ RealSign  ▪ Re  ▪ Im  ▪ Arg  ▪ Conjugate

Visualization »

ArrayPlot, MatrixPlot plot values of an array

ListPlot data visualization

ListLinePlot  ▪ ListDensityPlot  ▪ ListContourPlot  ▪ ListLogPlot  ▪ ListPolarPlot  ▪ ParallelAxisPlot  ▪ RadialAxisPlot

Code Compilation & Generation »

FunctionCompileExport export code suitable for GPU architecture

FunctionCompile  ▪ FunctionCompileExportLibrary

Apple GPUs »

Fourier  ▪ Mean  ▪ RandomReal  ▪ Min  ▪ Max  ▪ Plus  ▪ Exp  ▪ Cos  ▪ ...

NVIDIA GPUs »

Dot  ▪ LinearSolve  ▪ Fourier  ▪ Mean  ▪ RandomReal  ▪ MinMax  ▪ Cos  ▪ ...

GPU Programming »

CUDALink collection of low-level CUDA functions

OpenCLLink collection of low-level OpenCL functions