public abstract class DefaultOpExecutioner extends Object implements OpExecutioner
OpExecutioner.ExecutionerType, OpExecutioner.ProfilingMode
Modifier and Type | Field and Description |
---|---|
protected AtomicBoolean |
debug |
protected OpExecutioner.ProfilingMode |
profilingMode |
protected AtomicBoolean |
verbose |
Constructor and Description |
---|
DefaultOpExecutioner() |
Modifier and Type | Method and Description |
---|---|
INDArray[] |
allocateOutputArrays(CustomOp op)
Equivalent to calli
|
static List<String> |
allOpenWorkspaces() |
String |
arrayInfo(INDArray arr) |
INDArray |
bitmapDecode(INDArray encoded,
INDArray target) |
INDArray |
bitmapEncode(INDArray indArray,
double threshold) |
long |
bitmapEncode(INDArray indArray,
INDArray target,
double threshold)
This method returns number of elements affected by encoder
|
OpContext |
buildContext()
This method returns OpContext which can be used (and reused) to execute custom ops
|
List<LongShapeDescriptor> |
calculateOutputShape(CustomOp op) |
List<LongShapeDescriptor> |
calculateOutputShape(CustomOp op,
OpContext opContext) |
protected void |
checkForCompression(Op op) |
protected void |
checkForWorkspaces(CustomOp op,
OpContext oc) |
protected void |
checkForWorkspaces(Op op,
OpContext oc) |
protected void |
checkWorkspace(String opName,
INDArray array) |
void |
commit()
This method ensures all operations that supposed to be executed at this moment, are executed and finished.
|
DataBuffer |
createConstantBuffer(double[] values,
DataType desiredType) |
DataBuffer |
createConstantBuffer(float[] values,
DataType desiredType) |
DataBuffer |
createConstantBuffer(int[] values,
DataType desiredType) |
DataBuffer |
createConstantBuffer(long[] values,
DataType desiredType)
This method returns constant buffer for the given jvm array
|
DataBuffer |
createShapeInfo(long[] shape,
long[] stride,
long elementWiseStride,
char order,
DataType dtype,
boolean empty)
This method returns shapeInfo DataBuffer
|
DataBuffer |
createShapeInfo(long[] shape,
long[] stride,
long elementWiseStride,
char order,
DataType dtype,
long extras) |
void |
enableDebugMode(boolean reallyEnable) |
void |
enableVerboseMode(boolean reallyEnable) |
void |
exec(Aggregate op) |
<T extends Aggregate> |
exec(Batch<T> batch)
This method executes previously built batch
|
abstract INDArray |
exec(BroadcastOp broadcast)
Execute a broadcast op, possibly along one or more dimensions
|
INDArray[] |
exec(CustomOp op) |
INDArray[] |
exec(CustomOp op,
OpContext context)
This method executes op with given context
|
void |
exec(GridOp op)
Execute GridOp
|
abstract INDArray |
exec(IndexAccumulation op)
Execute an index accumulation along one or more dimensions
|
void |
exec(List<Aggregate> batch)
This method takes arbitrary sized list of aggregates,
and packs them into batches
|
void |
exec(MetaOp op)
Execute MetaOp
|
abstract INDArray |
exec(Op op)
Execute the operation
|
abstract INDArray |
exec(Op op,
OpContext opContext)
Execute the operation
|
INDArray |
exec(RandomOp op)
This method executes specified RandomOp using default RNG available via Nd4j.getRandom()
|
abstract INDArray |
exec(RandomOp op,
Random rng)
This method executes specific RandomOp against specified RNG
|
abstract INDArray |
exec(ReduceOp op)
Execute a reduceOp, possibly along one or more dimensions
|
abstract INDArray |
exec(ScalarOp op)
Execute ScalarOp
|
abstract INDArray |
exec(Variance accumulation)
Execute an variance accumulation op, possibly along one or more dimensions
|
BroadcastOp |
execAndReturn(BroadcastOp op)
Execute and return the result from a vector op
|
CustomOp |
execAndReturn(CustomOp op)
This method executes given CustomOp
PLEASE NOTE: You're responsible for input/output validation
|
IndexAccumulation |
execAndReturn(IndexAccumulation op)
Execute and return the result from an index accumulation
|
Op |
execAndReturn(Op op)
Execute and return a result
ndarray from the given op
|
ReduceOp |
execAndReturn(ReduceOp op)
Execute and return the result from an accumulation
|
ScalarOp |
execAndReturn(ScalarOp op)
Execute and return the result from a scalar op
|
TransformOp |
execAndReturn(TransformOp op)
Execute a TransformOp and return the result
|
Variance |
execAndReturn(Variance op)
Execute and return the result from an accumulation
|
Map<String,INDArray> |
executeGraph(long id,
Map<String,INDArray> map,
Map<String,Integer> reverseMap) |
protected static String |
firstX(INDArray array,
int x) |
void |
forgetGraph(long id) |
Map<String,CustomOpDescriptor> |
getCustomOperations()
This method returns names of all custom operations available in current backend, and their number of input/output arguments
|
Properties |
getEnvironmentInformation()
This method return set of key/value and key/key/value objects, describing current environment
|
String |
getLastOp()
This method returns opName of the last invoked op
|
OpExecutioner.ProfilingMode |
getProfilingMode()
Deprecated.
|
String |
getString(DataBuffer buffer,
long index)
This method extracts String from Utf8Buffer
|
TADManager |
getTADManager()
This method returns TADManager instance used for this OpExecutioner
|
INDArray |
getX(Op op,
OpContext oc) |
INDArray |
getY(Op op,
OpContext oc) |
INDArray |
getZ(Op op,
OpContext oc) |
INDArrayStatistics |
inspectArray(INDArray array) |
protected void |
interceptIntDataType(Op op)
This method checks if any Op operand has data opType of INT, and throws exception if any.
|
boolean |
isDebug()
This method returns true if debug mode is enabled, false otherwise
|
boolean |
isExperimentalMode() |
boolean |
isVerbose()
This method returns true if verbose mode is enabled, false otherwise
|
String |
opInfoString(Op op,
Optional<int[]> dimensions)
Get the information about the op in a String representation, for throwing more useful exceptions (mainly for debugging)
|
void |
printEnvironmentInformation()
This method prints out environmental information returned by getEnvironmentInformation() method
|
long |
profilingConfigurableHookIn(CustomOp op,
OpContext oc) |
long |
profilingConfigurableHookIn(Op op,
DataBuffer... tadBuffers) |
void |
profilingConfigurableHookOut(CustomOp op,
OpContext oc,
long timeStart) |
void |
profilingConfigurableHookOut(Op op,
OpContext oc,
long timeStart) |
long |
profilingHookIn(CustomOp op,
OpContext oc)
Deprecated.
|
long |
profilingHookIn(Op op,
DataBuffer... tadBuffers)
Deprecated.
|
void |
profilingHookOut(CustomOp op,
OpContext oc,
long timeStart)
Deprecated.
|
void |
profilingHookOut(Op op,
OpContext oc,
long timeStart)
Deprecated.
|
void |
push()
This method ensures all operations that supposed to be executed at this moment, are executed.
|
void |
registerGraph(long id,
org.bytedeco.javacpp.Pointer graph) |
String |
runFullBenchmarkSuit(boolean printOut) |
String |
runLightBenchmarkSuit(boolean printOut) |
void |
scatterUpdate(ScatterUpdate.UpdateOp op,
INDArray array,
INDArray indices,
INDArray updates,
int[] axis)
Temporary hook
|
void |
setElementsThreshold(int threshold)
This method allows to set desired number of elements per thread, for performance optimization purposes.
|
void |
setProfilingConfig(ProfilerConfig config)
This method stores specified configuration.
|
void |
setProfilingMode(OpExecutioner.ProfilingMode mode)
Deprecated.
|
void |
setTadThreshold(int threshold)
This method allows to set desired number of sub-arrays per thread, for performance optimization purposes.
|
void |
setX(INDArray x,
Op op,
OpContext oc) |
void |
setY(INDArray y,
Op op,
OpContext oc) |
void |
setZ(INDArray z,
Op op,
OpContext oc) |
TadPack |
tadShapeInfoAndOffsets(INDArray array,
int[] dimension)
This method returns host/device tad buffers
|
INDArray |
thresholdDecode(INDArray encoded,
INDArray target)
This method decodes thresholds array, and puts it into target array
|
INDArray |
thresholdEncode(INDArray input,
double threshold)
This method encodes array as thresholds, updating input array at the same time
|
INDArray |
thresholdEncode(INDArray input,
double threshold,
Integer boundary)
This method encodes array as thresholds, updating input array at the same time
|
OpExecutioner.ExecutionerType |
type()
This method returns type for this executioner instance
|
static void |
validateDataType(DataType expectedType,
Object op,
INDArray... operands) |
static void |
validateDataType(DataType expectedType,
Op op)
Validate the data types
for the given operation
|
protected OpExecutioner.ProfilingMode profilingMode
protected AtomicBoolean verbose
protected AtomicBoolean debug
protected void checkForCompression(Op op)
public String getLastOp()
OpExecutioner
getLastOp
in interface OpExecutioner
protected void interceptIntDataType(Op op)
op
- public abstract INDArray exec(Op op)
OpExecutioner
exec
in interface OpExecutioner
op
- the operation to executepublic abstract INDArray exec(Op op, OpContext opContext)
OpExecutioner
exec
in interface OpExecutioner
op
- the operation to executepublic Op execAndReturn(Op op)
OpExecutioner
execAndReturn
in interface OpExecutioner
op
- the operation to executepublic TransformOp execAndReturn(TransformOp op)
OpExecutioner
execAndReturn
in interface OpExecutioner
op
- the operation to executepublic ReduceOp execAndReturn(ReduceOp op)
OpExecutioner
execAndReturn
in interface OpExecutioner
op
- the operation to executepublic Variance execAndReturn(Variance op)
OpExecutioner
execAndReturn
in interface OpExecutioner
op
- the operation to executepublic ScalarOp execAndReturn(ScalarOp op)
OpExecutioner
execAndReturn
in interface OpExecutioner
op
- the operation to executepublic IndexAccumulation execAndReturn(IndexAccumulation op)
OpExecutioner
execAndReturn
in interface OpExecutioner
op
- the index accumulation operation to executepublic BroadcastOp execAndReturn(BroadcastOp op)
OpExecutioner
execAndReturn
in interface OpExecutioner
public INDArray[] exec(CustomOp op)
exec
in interface OpExecutioner
public abstract INDArray exec(ReduceOp op)
OpExecutioner
exec
in interface OpExecutioner
op
- the reduceOppublic abstract INDArray exec(Variance accumulation)
OpExecutioner
exec
in interface OpExecutioner
accumulation
- the accumulationpublic abstract INDArray exec(IndexAccumulation op)
OpExecutioner
exec
in interface OpExecutioner
op
- the index accumulation operationpublic abstract INDArray exec(BroadcastOp broadcast)
OpExecutioner
exec
in interface OpExecutioner
broadcast
- the accumulationpublic void exec(MetaOp op)
OpExecutioner
exec
in interface OpExecutioner
public void exec(GridOp op)
OpExecutioner
exec
in interface OpExecutioner
public <T extends Aggregate> void exec(Batch<T> batch)
OpExecutioner
exec
in interface OpExecutioner
public void exec(Aggregate op)
exec
in interface OpExecutioner
public abstract INDArray exec(ScalarOp op)
OpExecutioner
exec
in interface OpExecutioner
public void exec(List<Aggregate> batch)
OpExecutioner
exec
in interface OpExecutioner
public INDArray exec(RandomOp op)
exec
in interface OpExecutioner
op
- public abstract INDArray exec(RandomOp op, Random rng)
exec
in interface OpExecutioner
op
- rng
- @Deprecated public void setProfilingMode(OpExecutioner.ProfilingMode mode)
OpExecutioner
setProfilingMode
in interface OpExecutioner
public void setProfilingConfig(ProfilerConfig config)
OpExecutioner
setProfilingConfig
in interface OpExecutioner
@Deprecated public OpExecutioner.ProfilingMode getProfilingMode()
OpExecutioner
getProfilingMode
in interface OpExecutioner
@Deprecated public long profilingHookIn(Op op, DataBuffer... tadBuffers)
@Deprecated public long profilingHookIn(CustomOp op, OpContext oc)
@Deprecated public void profilingHookOut(Op op, OpContext oc, long timeStart)
@Deprecated public void profilingHookOut(CustomOp op, OpContext oc, long timeStart)
public long profilingConfigurableHookIn(Op op, DataBuffer... tadBuffers)
public void profilingConfigurableHookOut(Op op, OpContext oc, long timeStart)
public void profilingConfigurableHookOut(CustomOp op, OpContext oc, long timeStart)
public static void validateDataType(DataType expectedType, Op op)
expectedType
- op
- public static void validateDataType(DataType expectedType, Object op, INDArray... operands)
public TADManager getTADManager()
OpExecutioner
getTADManager
in interface OpExecutioner
public Properties getEnvironmentInformation()
getEnvironmentInformation
in interface OpExecutioner
public void printEnvironmentInformation()
OpExecutioner
printEnvironmentInformation
in interface OpExecutioner
public void push()
OpExecutioner
push
in interface OpExecutioner
public void commit()
OpExecutioner
commit
in interface OpExecutioner
public INDArray thresholdEncode(INDArray input, double threshold)
OpExecutioner
thresholdEncode
in interface OpExecutioner
public INDArray thresholdEncode(INDArray input, double threshold, Integer boundary)
OpExecutioner
thresholdEncode
in interface OpExecutioner
public INDArray thresholdDecode(INDArray encoded, INDArray target)
OpExecutioner
thresholdDecode
in interface OpExecutioner
public long bitmapEncode(INDArray indArray, INDArray target, double threshold)
OpExecutioner
bitmapEncode
in interface OpExecutioner
public INDArray bitmapEncode(INDArray indArray, double threshold)
bitmapEncode
in interface OpExecutioner
public INDArray bitmapDecode(INDArray encoded, INDArray target)
bitmapDecode
in interface OpExecutioner
public Map<String,CustomOpDescriptor> getCustomOperations()
OpExecutioner
getCustomOperations
in interface OpExecutioner
public CustomOp execAndReturn(CustomOp op)
OpExecutioner
execAndReturn
in interface OpExecutioner
public List<LongShapeDescriptor> calculateOutputShape(CustomOp op)
calculateOutputShape
in interface OpExecutioner
public List<LongShapeDescriptor> calculateOutputShape(CustomOp op, OpContext opContext)
calculateOutputShape
in interface OpExecutioner
public INDArray[] allocateOutputArrays(CustomOp op)
OpExecutioner
allocateOutputArrays
in interface OpExecutioner
public void enableDebugMode(boolean reallyEnable)
enableDebugMode
in interface OpExecutioner
public void enableVerboseMode(boolean reallyEnable)
enableVerboseMode
in interface OpExecutioner
public void registerGraph(long id, org.bytedeco.javacpp.Pointer graph)
registerGraph
in interface OpExecutioner
public Map<String,INDArray> executeGraph(long id, Map<String,INDArray> map, Map<String,Integer> reverseMap)
executeGraph
in interface OpExecutioner
public void forgetGraph(long id)
forgetGraph
in interface OpExecutioner
public void setElementsThreshold(int threshold)
Default value: 1024
setElementsThreshold
in interface OpExecutioner
threshold
- public void setTadThreshold(int threshold)
Default value: 8
setTadThreshold
in interface OpExecutioner
threshold
- public boolean isVerbose()
OpExecutioner
isVerbose
in interface OpExecutioner
public boolean isDebug()
OpExecutioner
isDebug
in interface OpExecutioner
public OpExecutioner.ExecutionerType type()
OpExecutioner
type
in interface OpExecutioner
public String getString(DataBuffer buffer, long index)
OpExecutioner
getString
in interface OpExecutioner
public void scatterUpdate(ScatterUpdate.UpdateOp op, INDArray array, INDArray indices, INDArray updates, int[] axis)
OpExecutioner
scatterUpdate
in interface OpExecutioner
public String opInfoString(Op op, Optional<int[]> dimensions)
op
- dimensions
- Use optional here for 3 states: null = "not an exec(Op, int... dim) call". empty = "exec(Op, null)".
Otherwise present = "exec(Op,int[])" callpublic boolean isExperimentalMode()
isExperimentalMode
in interface OpExecutioner
public OpContext buildContext()
OpExecutioner
buildContext
in interface OpExecutioner
public INDArray[] exec(CustomOp op, OpContext context)
OpExecutioner
exec
in interface OpExecutioner
public INDArrayStatistics inspectArray(INDArray array)
inspectArray
in interface OpExecutioner
public DataBuffer createShapeInfo(long[] shape, long[] stride, long elementWiseStride, char order, DataType dtype, boolean empty)
OpExecutioner
createShapeInfo
in interface OpExecutioner
public DataBuffer createShapeInfo(long[] shape, long[] stride, long elementWiseStride, char order, DataType dtype, long extras)
createShapeInfo
in interface OpExecutioner
public TadPack tadShapeInfoAndOffsets(INDArray array, int[] dimension)
OpExecutioner
tadShapeInfoAndOffsets
in interface OpExecutioner
public DataBuffer createConstantBuffer(long[] values, DataType desiredType)
OpExecutioner
createConstantBuffer
in interface OpExecutioner
public DataBuffer createConstantBuffer(int[] values, DataType desiredType)
createConstantBuffer
in interface OpExecutioner
public DataBuffer createConstantBuffer(float[] values, DataType desiredType)
createConstantBuffer
in interface OpExecutioner
public DataBuffer createConstantBuffer(double[] values, DataType desiredType)
createConstantBuffer
in interface OpExecutioner
public String runLightBenchmarkSuit(boolean printOut)
runLightBenchmarkSuit
in interface OpExecutioner
public String runFullBenchmarkSuit(boolean printOut)
runFullBenchmarkSuit
in interface OpExecutioner
Copyright © 2021. All rights reserved.