OpenCLLink allows the Wolfram Language to use the OpenCL parallel computing language. It contains functions that facilitate loading user-defined OpenCL functions into the Wolfram Language. OpenCLLink also integrates OpenCL with existing Wolfram Language development tools, allowing a high degree of automation and control.

OpenCL Platform and Device

$OpenCLPlatform platform used in OpenCLLink computation

$OpenCLDevice device used in OpenCLLink computation


OpenCLQ check whether the system is compatible with OpenCLLink

OpenCLInformation enumerate OpenCL system information

$OpenCLLinkPath path to the OpenCLLink application


OpenCLFunction handle to OpenCL function loaded using OpenCLFunctionLoad

OpenCLFunctionLoad load OpenCLFunction into the Wolfram Language

OpenCLFunctionInformation get OpenCLFunction information


OpenCLMemory handle to OpenCL memory registered using OpenCLMemoryLoad or OpenCLMemoryAllocate

OpenCLMemoryLoad load Wolfram Language memory into OpenCLLink returning OpenCLMemory

OpenCLMemoryAllocate allocate memory for OpenCLLink returning OpenCLMemory

OpenCLMemoryGet copy OpenCLMemory to the Wolfram Language

OpenCLMemoryUnload unload/delete OpenCLMemory handle

OpenCLMemoryInformation get OpenCLMemory handle information

OpenCLMemoryCopyToHost copy OpenCLMemory from GPU to CPU

OpenCLMemoryCopyToDevice copy OpenCLMemory from CPU to GPU

Symbolic OpenCL

SymbolicOpenCLFunction symbolic representation of an OpenCL function

SymbolicOpenCLBlockIndex symbolic representation of a block index OpenCL call

SymbolicOpenCLThreadIndex symbolic representation of a thread index OpenCL call

SymbolicOpenCLBlockDimension symbolic representation of a block dimension OpenCL call

SymbolicOpenCLCalculateKernelIndex symbolic representation of an OpenCL index calculation

SymbolicOpenCLDeclareIndexBlock symbolic representation of an OpenCL index declaration