此为 Mathematica 8 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

OpenCLMemoryLoad

OpenCLMemoryLoad[list]
loads list into OpenCLMemory manager, returning an OpenCLMemory.

loads list with specified type into OpenCLMemory manager, returning an OpenCLMemory.
  • The OpenCLLink application must be loaded using Needs.
  • Valid 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""Float"
"UnsignedByte[2]""UnsignedBit16[2]""Float[2]"
"UnsignedByte[4]""UnsignedBit16[4]""Float[4]"
"UnsignedByte[8]""UnsignedBit16[8]""Float[8]"
"UnsignedByte[16]""UnsignedBit16[16]""Float[16]"
"Double""Double[2]""Double[4]"
"Double[8]""Double[16]"
  • 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
First, load the OpenCLLink application:
This registers the list ConstantArray into the OpenCLLink memory manager:
Vector types can be loaded, but they must obey the width requirement of the type ( has a width of 16, for example):
An error is returned otherwise:
Images can be loaded as OpenCLMemory:
By default, images are represented as a list of integers; different types can be used, however:
When adding graphics objects, the object is rasterized:
When getting the memory, an image is returned:
When using the type , whether it is a or is based on the OpenCL device:
In this case, the system supports double precision. This can be overridden using the option:
First, load the OpenCLLink application:
In[1]:=
Click for copyable input
This registers the list ConstantArray into the OpenCLLink memory manager:
In[2]:=
Click for copyable input
Out[2]=
 
Vector types can be loaded, but they must obey the width requirement of the type ( has a width of 16, for example):
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
An error is returned otherwise:
In[3]:=
Click for copyable input
Out[3]=
 
Images can be loaded as OpenCLMemory:
In[1]:=
Click for copyable input
Out[1]=
By default, images are represented as a list of integers; different types can be used, however:
In[2]:=
Click for copyable input
Out[2]=
 
When adding graphics objects, the object is rasterized:
In[1]:=
Click for copyable input
Out[1]=
When getting the memory, an image is returned:
In[2]:=
Click for copyable input
Out[2]=
 
When using the type , whether it is a or is based on the OpenCL device:
In[1]:=
Click for copyable input
Out[1]=
In this case, the system supports double precision. This can be overridden using the option:
In[2]:=
Click for copyable input
Out[2]=
The devices used in computation can be chosen, but cannot be changed once set by any other OpenCL call:
The platform used in computation can be chosen, but cannot be changed once set by any other OpenCL call:
The target precision can be used to tell OpenCLLink how to interpret the type. By default, it is determined by detecting whether the system has double-precision support:
This system has double-precision support:
The type is interpreted as a . To force the use of , one sets the to :
This adds two to an input list:
This loads the function using OpenCLFunctionLoad:
This runs OpenCLFunction:
This gets the memory using OpenCLMemoryGet:
This unloads the memory using OpenCLMemoryUnload:
Internally, is used to load memory behind the scenes. This color negates an input image:
This loads the function using OpenCLFunctionLoad:
This defines input parameters:
This runs OpenCLFunction: