WOLFRAM

OpenCLMemoryLoad[list]

loads list into OpenCLMemory manager, returning an OpenCLMemory.

OpenCLMemoryLoad[list,type]

loads list with specified type into OpenCLMemory manager, returning an OpenCLMemory.

Details and Options

  • The OpenCLLink application must be loaded using Needs["OpenCLLink`"].
  • Valid OpenCLMemoryLoad types are:
  • IntegerRealComplex
    "Byte""Bit16""Integer"
    "Byte[2]""Bit16[2]""Integer32[2]"
    "Byte[4]""Bit16[4]""Integer32[4]"
    "Byte[8]""Bit16[8]""Integer32[8]"
    "Byte[16]""Bit16[16]""Integer32[16]"
    "UnsignedByte""UnsignedBit16""UnsignedInteger"
    "UnsignedByte[2]""UnsignedBit16[2]""UnsignedInteger[2]"
    "UnsignedByte[4]""UnsignedBit16[4]""UnsignedInteger[4]"
    "UnsignedByte[8]""UnsignedBit16[8]""UnsignedInteger[8]"
    "UnsignedByte[16]""UnsignedBit16[16]""UnsignedInteger[16]"
    "Double""Float""Integer64"
    "Double[2]""Float[2]""Integer64[2]"
    "Double[4]""Float[4]""Integer64[4]"
    "Double[8]""Float[8]""Integer64[8]"
    "Double[16]""Float[16]""Integer64[16]"
  • OpenCLMemory can be queried using OpenCLMemoryInformation.
  • OpenCLMemory is retrieved using OpenCLMemoryGet.
  • OpenCLMemory is unloaded using OpenCLMemoryUnload.
  • OpenCLMemoryAllocate is used when memory needs to be allocated to be written to, such as output memory.
  • The following options can be given:
  • "Device" AutomaticOpenCL device used in computation
    "Platform" AutomaticOpenCL platform used in computation
    "TargetPrecision" Automaticprecision used in computation

Examples

open allclose all

Basic Examples  (5)Summary of the most common use cases

First, load the OpenCLLink application:

This registers the list ConstantArray[0,10] into the OpenCLLink memory manager:

Out[2]=2

Vector types can be loaded, but they must obey the width requirement of the type ("Byte[16]" has a width of 16, for example):

Out[1]=1
Out[2]=2

An error is returned otherwise:

Out[3]=3

Images can be loaded as OpenCLMemory:

Out[1]=1

By default, images are represented as a list of integers; different types can be used, however:

Out[2]=2

When adding graphics objects, the object is rasterized:

Out[1]=1

When getting the memory, an image is returned:

Out[2]=2

When using the type Real, whether it is a "Float" or "Double" is based on the OpenCL device:

Out[1]=1

In this case, the system supports double precision. This can be overridden using the "TargetPrecision" option:

Out[2]=2

Options  (3)Common values & functionality for each option

"Device"  (1)

The devices used in computation can be chosen, but cannot be changed once set by any other OpenCL call:

Out[13]=13

"Platform"  (1)

The platform used in computation can be chosen, but cannot be changed once set by any other OpenCL call:

Out[14]=14

"TargetPrecision"  (1)

The target precision can be used to tell OpenCLLink how to interpret the Real type. By default, it is determined by detecting whether the system has double-precision support:

Out[15]=15

This system has double-precision support:

Out[16]=16

The Real type is interpreted as a "Double". To force the use of "Float", one sets the "TargetPrecision" to "Single":

Out[17]=17

Applications  (2)Sample problems that can be solved with this function

This adds two to an input list:

Out[15]=15

This loads the function using OpenCLFunctionLoad:

Out[19]=19

This runs OpenCLFunction:

Out[20]=20

This gets the memory using OpenCLMemoryGet:

Out[21]=21

This unloads the memory using OpenCLMemoryUnload:

Internally, OpenCLMemoryLoad is used to load memory behind the scenes. This color negates an input image:

This loads the function using OpenCLFunctionLoad:

Out[2]=2

This defines input parameters:

This runs OpenCLFunction:

Out[4]=4
Wolfram Research (2010), OpenCLMemoryLoad, Wolfram Language function, https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html.
Wolfram Research (2010), OpenCLMemoryLoad, Wolfram Language function, https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html.

Text

Wolfram Research (2010), OpenCLMemoryLoad, Wolfram Language function, https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html.

Wolfram Research (2010), OpenCLMemoryLoad, Wolfram Language function, https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html.

CMS

Wolfram Language. 2010. "OpenCLMemoryLoad." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html.

Wolfram Language. 2010. "OpenCLMemoryLoad." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html.

APA

Wolfram Language. (2010). OpenCLMemoryLoad. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html

Wolfram Language. (2010). OpenCLMemoryLoad. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html

BibTeX

@misc{reference.wolfram_2025_openclmemoryload, author="Wolfram Research", title="{OpenCLMemoryLoad}", year="2010", howpublished="\url{https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html}", note=[Accessed: 23-May-2025 ]}

@misc{reference.wolfram_2025_openclmemoryload, author="Wolfram Research", title="{OpenCLMemoryLoad}", year="2010", howpublished="\url{https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html}", note=[Accessed: 23-May-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_openclmemoryload, organization={Wolfram Research}, title={OpenCLMemoryLoad}, year={2010}, url={https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html}, note=[Accessed: 23-May-2025 ]}

@online{reference.wolfram_2025_openclmemoryload, organization={Wolfram Research}, title={OpenCLMemoryLoad}, year={2010}, url={https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLMemoryLoad.html}, note=[Accessed: 23-May-2025 ]}