Package org.apfloat.aparapi
Class ColumnTwoPassFNTStrategy
java.lang.Object
org.apfloat.internal.AbstractStepFNTStrategy
org.apfloat.internal.TwoPassFNTStrategy
org.apfloat.aparapi.ColumnTwoPassFNTStrategy
- All Implemented Interfaces:
Parallelizable
,NTTStrategy
Two-pass NTT implementation that processes the data in the columns of the matrix.
This transform only works together with an NTTStepStrategy
implementation
that processes the data in columns instead of rows.
Note that if the data size is too big compared to the maximum available memory then the data is read from disk in too thin slices and the level of parallelism may become too small for the GPU, ruining the performance. The GPU global size i.e. the number of columns read from the data matrix to memory at one time should be at least 1024.
- Since:
- 1.8.3
- Version:
- 1.8.3
- Author:
- Mikko Tommila
-
Field Summary
Fields inherited from class org.apfloat.internal.AbstractStepFNTStrategy
stepStrategy
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ArrayAccess
getColumns(DataStorage dataStorage, int startColumn, int columns, int rows)
protected ArrayAccess
getRows(DataStorage dataStorage, int startRow, int rows, int columns)
protected void
multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)
Methods inherited from class org.apfloat.internal.TwoPassFNTStrategy
inverseTransform, transform, transformColumns, transformRows
Methods inherited from class org.apfloat.internal.AbstractStepFNTStrategy
getTransformLength, inverseTransform, transform
-
Constructor Details
-
ColumnTwoPassFNTStrategy
Basic constructor.- Parameters:
stepStrategy
- A step strategy that can process data in columns.
-
-
Method Details
-
getColumns
- Overrides:
getColumns
in classTwoPassFNTStrategy
-
getRows
- Overrides:
getRows
in classTwoPassFNTStrategy
-
multiplyElements
protected void multiplyElements(ArrayAccess arrayAccess, int startRow, int startColumn, int rows, int columns, long length, long totalTransformLength, boolean isInverse, int modulus)- Overrides:
multiplyElements
in classTwoPassFNTStrategy
-