MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / DeriveOutputBatchDescriptor

Method DeriveOutputBatchDescriptor

tensorflow/stream_executor/rocm/rocm_dnn.cc:4074–4104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4072}
4073
4074bool MIOpenSupport::DeriveOutputBatchDescriptor(
4075 const BatchDescriptor& batch_descriptor,
4076 const FilterDescriptor& filter_descriptor,
4077 const dnn::ConvolutionDescriptor& convolution_descriptor,
4078 dnn::BatchDescriptor* output_batch_descriptor) {
4079 ScopedTensorDescriptor input_nd{batch_descriptor, miopenFloat};
4080 ScopedFilterDescriptor filter{filter_descriptor, batch_descriptor,
4081 miopenFloat};
4082 ScopedConvolutionDescriptor conv{convolution_descriptor, miopenFloat};
4083
4084 int dn = batch_descriptor.ndims() + 2;
4085 std::vector<int> dims(dn); // in BDYX
4086 auto status = wrap::miopenGetConvolutionNdForwardOutputDim(
4087 conv.handle(), input_nd.handle(), filter.handle(), &dn, dims.data());
4088 if (status != miopenStatusSuccess) {
4089 LOG(ERROR) << "could not get output tensor for convolution: "
4090 << ToString(status);
4091 return false;
4092 }
4093
4094 output_batch_descriptor->set_count(dims[0])
4095 .set_feature_map_count(dims[1])
4096 .set_layout(batch_descriptor.layout());
4097
4098 for (int i = 0; i < batch_descriptor.ndims(); i++) {
4099 output_batch_descriptor->set_spatial_dim(static_cast<dnn::DimIndex>(i),
4100 dims.rbegin()[i]);
4101 }
4102
4103 return true;
4104}
4105
4106template <typename T>
4107bool MIOpenSupport::DoFusedConvolutionBiasActivationImpl(

Callers

nothing calls this directly

Calls 6

rbeginMethod · 0.80
ToStringFunction · 0.70
ndimsMethod · 0.45
handleMethod · 0.45
dataMethod · 0.45
layoutMethod · 0.45

Tested by

no test coverage detected