/// <summary> /// </summary> public RNNDescriptor(CudaDNNContext context) { _handle = context.Handle; _desc = new cudnnRNNDescriptor(); res = CudaDNNNativeMethods.cudnnCreateRNNDescriptor(ref _desc); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cudnnCreateRNNDescriptor", res)); if (res != cudnnStatus.Success) throw new CudaDNNException(res); }
public static extern cudnnStatus cudnnSetRNNDescriptor(cudnnRNNDescriptor rnnDesc, int hiddenSize, int seqLength, int numLayers, cudnnDropoutDescriptor dropoutDesc, // Between layers, not between recurrent steps. cudnnRNNInputMode inputMode, cudnnDirectionMode direction, cudnnRNNMode mode, cudnnDataType dataType);
public static extern cudnnStatus cudnnCreateRNNDescriptor(ref cudnnRNNDescriptor rnnDesc);
public static extern cudnnStatus cudnnRNNBackwardWeights(cudnnHandle handle, cudnnRNNDescriptor rnnDesc, cudnnTensorDescriptor[] xDesc, CUdeviceptr x, cudnnTensorDescriptor hxDesc, CUdeviceptr hx, cudnnTensorDescriptor[] yDesc, CUdeviceptr y, CUdeviceptr workspace, SizeT workSpaceSizeInBytes, cudnnFilterDescriptor dwDesc, CUdeviceptr dw, CUdeviceptr reserveSpace, SizeT reserveSpaceSizeInBytes );
public static extern cudnnStatus cudnnRNNForwardTraining(cudnnHandle handle, cudnnRNNDescriptor rnnDesc, cudnnTensorDescriptor[] xDesc, CUdeviceptr x, cudnnTensorDescriptor hxDesc, CUdeviceptr hx, cudnnTensorDescriptor cxDesc, CUdeviceptr cx, cudnnFilterDescriptor wDesc, CUdeviceptr w, cudnnTensorDescriptor[] yDesc, CUdeviceptr y, cudnnTensorDescriptor hyDesc, CUdeviceptr hy, cudnnTensorDescriptor cyDesc, CUdeviceptr cy, CUdeviceptr workspace, SizeT workSpaceSizeInBytes, CUdeviceptr reserveSpace, SizeT reserveSpaceSizeInBytes);
public static extern cudnnStatus cudnnRNNBackwardData(cudnnHandle handle, cudnnRNNDescriptor rnnDesc, cudnnTensorDescriptor[] yDesc, CUdeviceptr y, cudnnTensorDescriptor[] dyDesc, CUdeviceptr dy, cudnnTensorDescriptor dhyDesc, CUdeviceptr dhy, cudnnTensorDescriptor dcyDesc, CUdeviceptr dcy, cudnnFilterDescriptor wDesc, CUdeviceptr w, cudnnTensorDescriptor hxDesc, CUdeviceptr hx, cudnnTensorDescriptor cxDesc, CUdeviceptr cx, cudnnTensorDescriptor[] dxDesc, CUdeviceptr dx, cudnnTensorDescriptor dhxDesc, CUdeviceptr dhx, cudnnTensorDescriptor dcxDesc, CUdeviceptr dcx, CUdeviceptr workspace, SizeT workSpaceSizeInBytes, CUdeviceptr reserveSpace, SizeT reserveSpaceSizeInBytes );
public static extern cudnnStatus cudnnGetRNNWorkspaceSize(cudnnHandle handle, cudnnRNNDescriptor rnnDesc, cudnnTensorDescriptor[] xDesc, ref SizeT sizeInBytes );
public static extern cudnnStatus cudnnGetRNNTrainingReserveSize(cudnnHandle handle, cudnnRNNDescriptor rnnDesc, cudnnTensorDescriptor[] xDesc, ref SizeT sizeInBytes );
public static extern cudnnStatus cudnnGetRNNLinLayerMatrixParams(cudnnHandle handle, cudnnRNNDescriptor rnnDesc, int layer, cudnnTensorDescriptor[] xDesc, cudnnFilterDescriptor wDesc, CUdeviceptr w, int linLayerID, cudnnFilterDescriptor linLayerMatDesc, CUdeviceptr linLayerMat // void ** );
public static extern cudnnStatus cudnnDestroyRNNDescriptor(cudnnRNNDescriptor rnnDesc);