-
Notifications
You must be signed in to change notification settings - Fork 218
MIOpen Logger to Driver Decoder for Recurrent
miopenStatus_t miopenRNNForwardTraining(miopenHandle_t, miopenRNNDescriptor_t, int, miopenTensorDescriptor**, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor**, void*, miopenTensorDescriptor_t, void*, miopenTensorDescriptor_t, void*, void*, size_t, void*, size_t){
rnnDesc = 512, 3, 4, 6, 2, 0, 0, 0, 0,
sequenceLen = 10
xDesc = 0xe0d1c0
x = 0xe05a80
hxDesc = 3, 4, 512
hx = 0xdff280
cxDesc = 3, 4, 512
cx = 0xdff470
wDesc = 3584, 2048
w = 0xdfa690
yDesc = 0xdd2630
y = 0xdfac40
hyDesc = 3, 4, 512
hy = 0xdff660
cyDesc = 3, 4, 512
cy = 0xdff850
}
The lines of interest are:
-
xDesc
is an array of tensor descriptors -
rnnDesc = 512, 3, 4, 6, 2, 0, 0, 0, 0,
== < hiddenSize, nlayers, nHiddenTensorsPerLayer, workspaceScale, rnnMode, dirMode, algoMode, inputMode, biasMode > (Link to a description of the modes.) -
hxDesc = 3, 4, 512
== < nlayersTensor, xDescMaxFirstDim, hiddenSize > -
cxDesc = 3, 4, 512
== < nlayersTensor, xDescMaxFirstDim, hiddenSize > -
wDesc
is a weights tensor descriptor, which is calculated by MIOpen -
hyDesc = 3, 4, 512
== < nlayersTensor, xDescMaxFirstDim, hiddenSize > -
cyDesc = 3, 4, 512
== < nlayersTensor, xDescMaxFirstDim, hiddenSize >
xDescMaxFirstDim
must equal the largest first dimension of the xDesc
tensor descriptor array.
nlayersTensor
equals to nlayers
if the dirMode
is unidirectional and twice to nlayers
if the dirMode
is bidirectional.
miopenStatus_t miopenRNNBackwardData(miopenHandle_t, miopenRNNDescriptor_t, int, miopenTensorDescriptor**, const void*, miopenTensorDescriptor**, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor**, void*, miopenTensorDescriptor_t, void*, miopenTensorDescriptor_t, void*, void*, size_t, void*, size_t){
rnnDesc = 512, 3, 4, 6, 2, 0, 0, 0, 0,
sequenceLen = 10
yDesc = 0xdd2630
y = 0xdfac40
dyDesc = 0xdd2630
dy = 0xdfaa50
dhyDesc = 3, 4, 512
dhy = 0xd3a340
dcyDesc = 3, 4, 512
dcy = 0xd3a530
wDesc = 3584, 2048
w = 0xdfa690
hxDesc = 3, 4, 512
hx = 0xdff280
cxDesc = 3, 4, 512
cx = 0xdff470
}
The lines of interest are:
-
rnnDesc = 512, 3, 4, 6, 2, 1, 0, 0, 0,
== < hiddenSize, nlayers, nHiddenTensorsPerLayer, workspaceScale, rnnMode, dirMode, algoMode, inputMode, biasMode > (Link to a description of the modes.) -
yDesc
is an array of tensor descriptors -
dyDesc
is an array of fully packed tensor descriptors associated with the output from each time step -
dhyDesc = 3, 4, 512
== < nlayersTensor , xDescMaxFirstDim, hiddenSize > -
dcyDesc = 3, 4, 512
== < nlayersTensor , xDescMaxFirstDim, hiddenSize > -
wDesc
is a weights tensor descriptor -
hxDesc = 3, 4, 512
== < nlayersTensor , xDescMaxFirstDim, hiddenSize > -
cxDesc = 3, 4, 512
== < nlayersTensor , xDescMaxFirstDim, hiddenSize >
xDescMaxFirstDim
must equal the largest first dimension of the xDesc
tensor descriptor array.
nlayersTensor
equals to nlayers
if the dirMode
is unidirectional and twice to nlayers
if the dirMode
is bidirectional.
miopenStatus_t miopenRNNBackwardWeights(miopenHandle_t, miopenRNNDescriptor_t, int, miopenTensorDescriptor**, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor**, const void*, miopenTensorDescriptor_t, void*, void*, size_t, const void*, size_t){
rnnDesc = 512, 3, 4, 6, 2, 0, 0, 0, 0,
sequenceLen = 10
xDesc = 0xe0d1c0
x = 0xe05a80
hxDesc = 3, 4, 512
hx = 0xdff280
yDesc = 0xdd2630
y = 0xdfaa50
dwDesc = 3584, 2048
dw = 0xdfa860
workSpace = 0xde13e0
workSpaceNumBytes = 1032192
reserveSpace = 0xde15d0
reserveSpaceNumBytes = 2064384
}
The lines of interest are:
-
rnnDesc = 512, 3, 4, 6, 2, 1, 0, 0, 0,
== < hiddenSize, nlayers, nHiddenTensorsPerLayer, workspaceScale, rnnMode, dirMode, algoMode, inputMode, biasMode > (Link to a description of the modes.) -
xDesc
is an array of tensor descriptors -
hxDesc = 3, 4, 512
== < nlayersTensor , xDescMaxFirstDim, hiddenSize > -
dwDesc
is a weights tensor descriptor
xDescMaxFirstDim
must equal the largest first dimension of the xDesc
tensor descriptor array.
nlayersTensor
equals to nlayers
if the dirMode
is unidirectional and twice to nlayers
if the dirMode
is bidirectional.
Currently, 16-bit floating point is not available for MIOpen's RNN.