dcslin commented on pull request #733:
URL: https://github.com/apache/singa/pull/733#issuecomment-643872776


   > I took a look at your cudnn rnn function:
   > https://github.com/apache/singa/blob/dev/python/singa/layer.py#L1506
   > you transpose the input so that "inputs has shape of {sequence length, 
batch size, feature size}"
   > 
   > Meanwhile, when I read the cudnn API `cudnnRNNForwardInference()`
   > 
https://docs.nvidia.com/deeplearning/sdk/cudnn-api/index.html#cudnnRNNForwardInference
   > the description of x is:
   > 
   > _xDesc Input. An array of seqLength fully packed tensor descriptors. Each 
descriptor in the array should have three dimensions that describe the input 
data format to one recurrent iteration (one descriptor per RNN time-step). 
**The first dimension (batch size)** of the tensors may decrease from iteration 
n to iteration n+1 but may not increase. Each tensor descriptor must have the 
same second dimension (RNN input vector length, inputSize). The third dimension 
of each tensor should be 1. Input data are expected to be arranged in the 
column-major order so strides in xDesc should be set as follows:_
   > 
   > See the highlighted text in the above description. The first dimension is 
batch size?
   > 
   > It is a bit confusing for me, so I am not sure what should be the input 
shape. I suggest checking all those input output format if you don't have 
further idea for debug.
   
   thank you for the review, this part is indeed confusing.
   
   ### in the general case of cudnn api
   so we need to pass a list of xDesc into cudnn
   which means xDesc0, xDesc1, xDesc2, xDesc3, ... xDescn
   each xDesc has shape of {bs, input}
   means xDesc0{bs1, input}, xDesc2{bs2, input}, xDesc3{bs3, input} ... 
xDescn{bsn, input}
   and the total length of these xDesc0, xDesc1, xDesc2, xDesc3, xDescn is seq 
length
   
   ### in the special case assuming all the `bs` are the same
   for data pointer, singa tensor x, we will have shape {seq_length, bs, input}


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to