| 1754 | } |
| 1755 | |
| 1756 | port::Status CheckRNNParameterSize( |
| 1757 | const CudnnHandle& cudnn, const CudnnRnnDescriptor& rnn_desc, |
| 1758 | const CudnnRnnSequenceTensorDescriptor& input_desc) { |
| 1759 | size_t params_size_in_bytes = 0; |
| 1760 | RETURN_IF_CUDNN_ERROR(cudnnGetRNNParamsSize( |
| 1761 | /*handle=*/cudnn.handle(), /*rnnDesc=*/rnn_desc.handle(), |
| 1762 | /*xDesc=*/input_desc.handles()[0], /*sizeInBytes=*/¶ms_size_in_bytes, |
| 1763 | /*dataType=*/rnn_desc.data_type())); |
| 1764 | if (static_cast<int64>(params_size_in_bytes) != |
| 1765 | rnn_desc.ParamsSizeInBytes()) { |
| 1766 | return port::Status(port::error::INVALID_ARGUMENT, |
| 1767 | "Mismatching RNN parameter size"); |
| 1768 | } |
| 1769 | return port::Status::OK(); |
| 1770 | } |
| 1771 | |
| 1772 | port::StatusOr<DeviceMemory<uint8>> CreateRnnWorkspace( |
| 1773 | Stream* stream, const CudnnHandle& cudnn, |
no test coverage detected