Maximum number of dimensions in tensor fields.
Maximum number of dimensions in tensor fields.
Maximum supported tensor order for tensors in field.
Maximum supported tensor order for tensors in field.
The actual memory for the field.
The actual memory for the field.
Allocates a direct ByteBuffer with native ordering.
Allocates a direct ByteBuffer with native ordering.
Number of bytes in the buffer
A direct byte buffer.
Allocates an indirect ByteBuffer with native ordering.
Allocates an indirect ByteBuffer with native ordering.
Number of bytes in the buffer
An indirect byte buffer.
Allocates a pinned, direct ByteBuffer with native (?) ordering.
Allocates a pinned, direct ByteBuffer with native (?) ordering.
There is no way in OpenCL to create a pinned buffer, but the "NVIDIA OpenCL Best Practices Guide" suggests that this has the highest probability of success.
Number of bytes in the buffer
Command queue needed for mapping allocated buffer to a direct buffer.
A pinned, direct byte buffer.
Test for approximate equality between this
and that
using L-infinity norm.
Test for approximate equality between this
and that
using L-infinity norm.
AbstractFieldMemory to compare to this
Maximum L-infinity error value to consider equal
true if L_inf(this, that) <= maxError
Number of bytes in each "number" of the element.
Number of bytes in each "number" of the element.
"Columns" in the field.
"Columns" in the field. See class description for meaning of columns.
Compute the L-infinity norm on the difference of this
and that
.
Compute the L-infinity norm on the difference of this
and that
.
AbstractFieldMemory to compare to this
L-infinity error
Copy the data in this
to another field memory.
Copy the data in this
to another field memory.
Field memory to receive a copy of the data in this.
Dimensions of the field.
Dimensions of the field.
The direct buffer for this memory.
The direct buffer for this memory. This is always a view of _byteBuffer, but upcast to the appropriate subclass of Buffer using, for example, ByteBuffer.asFloatBuffer. The view calls are somewhat dangerous because they create a view with proper endianness for Java (which uses the native endianness internally) but they can also change the endianness of _byteBuffer. This is subtle, so read the Java documentation carefully if you need to change this.
The type of scalar that populates the tensor.
The type of scalar that populates the tensor.
Test for exact equality between this
and that
.
Test for exact equality between this
and that
.
AbstractFieldMemory to compare to this
true if every value in this
and that
is exactly equal
Stride from beginning of one row to the next.
Stride from beginning of one row to the next.
Shape of the field.
Shape of the field.
Type of the field.
Type of the field.
"Layers" in the field.
"Layers" in the field. See class description for meaning of layers.
Number of "numbers" in each tensor in the field.
Number of "numbers" in each tensor in the field.
Columns rounded up for memory alignment when necessary.
Columns rounded up for memory alignment when necessary. Note that images do not have alignment requirements.
Update: Padding of columns has been removed! Motivation:
1. With caches now common in GPUs, this had no measurable performance benefit. 2. The native runtime exposes the layout to the user apps, and no notion of padding was described. 3. The padding introduced corner-cases where the footprint of certain fields grows dramatically, which affects buffer transfer times between GPUs and makes the GPU caches less effective.
Number of elements required to represent a single tensor element in a field, including whatever padding is needed for I/O efficiency.
Number of elements required to represent a single tensor element in a field, including whatever padding is needed for I/O efficiency.
Stride from beginning of one part of a multi-component tensor element (e.g.
Stride from beginning of one part of a multi-component tensor element (e.g. a complex) to the next part.
Print out the field for debugging.
Print out the field for debugging.
Read the value at (layer
, row
, col
) in a 3D vector field into out
.
Read the value at (layer
, row
, col
) in a 3D vector field into out
.
Read the value at (row
, col
) in a 2D vector field into out
.
Read the value at (row
, col
) in a 2D vector field into out
.
Read the value at (col
) in a 1D vector field into out
.
Read the value at (col
) in a 1D vector field into out
.
Read the single value in a 0D vector field into out
.
Read the single value in a 0D vector field into out
.
"Rows" in the field.
"Rows" in the field. See class description for meaning of rows.
Set the shape of the complex field for writing.
Set the shape of the complex field for writing.
Rows in the complex field.
Columns in the complex field.
Set the shape of the complex field for writing.
Set the shape of the complex field for writing.
If the field already has a defined shape, this does nothing. Subclasses that allow field shape to be defined must override this method.
The desired shape of the complex field for writing
Order of the tensors in the field.
Order of the tensors in the field.
Shape of the tensors in the field.
Shape of the tensors in the field.
Stride from beginning of one tensor element to the next.
Stride from beginning of one tensor element to the next.
Write out
to a 3D vector field at (row
, col
).
Write out
to a 3D vector field at (row
, col
).
Write out
to a 2D vector field at (row
, col
).
Write out
to a 2D vector field at (row
, col
).
Write out
to a 1D vector field at (col
).
Write out
to a 1D vector field at (col
).
Write out
to a 0D vector field.
Write out
to a 0D vector field.
CPU memory for a complex scalar field.