Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NFC] Replace miopen::ProblemDescription with conv::ProblemDescription, part 4 #2410

Merged
Show file tree
Hide file tree
Changes from 55 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
8dff5be
Use direction from conv::ProblemDescription
averinevg Aug 30, 2023
5927d80
Fix clang-tidy, remove src/problem_description.cpp
averinevg Aug 31, 2023
8ae0b3b
Fix formatting
averinevg Aug 31, 2023
29c32ff
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Aug 31, 2023
75c3d7f
Replace miopen::ProblemDescription with conv::ProblemDescription
averinevg Sep 7, 2023
b286108
Fix formatting
averinevg Sep 7, 2023
e548a7a
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Sep 7, 2023
530912f
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Sep 18, 2023
cf33bf3
Post merge fix
averinevg Sep 18, 2023
f5b7a12
Fix formatting
averinevg Sep 18, 2023
321783c
Fix tidy
averinevg Sep 19, 2023
3de2bae
Fix direction
averinevg Sep 19, 2023
19430a4
Fix formatting
averinevg Sep 19, 2023
12886a0
Removed ConvolutionContext
DrizztDoUrden Sep 20, 2023
a559636
format
DrizztDoUrden Sep 20, 2023
e603a8d
Merge remote-tracking branch 'origin/develop' into ddu/remove-conv-ctx
DrizztDoUrden Sep 20, 2023
525a049
Fix Fin
averinevg Sep 20, 2023
328ea29
Fixed build after merge
DrizztDoUrden Sep 20, 2023
bc0bc47
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Sep 20, 2023
d604297
Fix formatting
averinevg Sep 20, 2023
e9d3bf9
Fixed unrelated tidy error
DrizztDoUrden Sep 20, 2023
f572897
Fixed several test source files
DrizztDoUrden Sep 20, 2023
c6c0e5f
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Sep 21, 2023
611b1da
tidy
DrizztDoUrden Sep 21, 2023
32ff5cf
Merge branch 'ddu/remove-conv-ctx' into ea_replace_problem_descriptio…
averinevg Sep 21, 2023
c83729a
fixed test build
DrizztDoUrden Sep 21, 2023
8d5bf29
Post-merge fix
averinevg Sep 21, 2023
f68907b
Fix formatting
averinevg Sep 21, 2023
0801331
Replace headers
averinevg Sep 21, 2023
2dc725e
Resolved some PR comments
DrizztDoUrden Sep 21, 2023
47adab5
Added a temporary deprecated struct for fin compatibility
DrizztDoUrden Sep 21, 2023
38e1b9f
Merge remote-tracking branch 'origin/develop' into ddu/remove-conv-ctx
DrizztDoUrden Sep 21, 2023
25e0aec
format
DrizztDoUrden Sep 21, 2023
f19cc51
Removed redundant comment referencing non-existent code
DrizztDoUrden Sep 21, 2023
c0377d9
Use miopen::conv::ProblemDescription
averinevg Sep 21, 2023
df1b4f5
Fix formatting
averinevg Sep 21, 2023
1f4ddbb
Merge branch 'ddu/remove-conv-ctx' into ea_replace_problem_descriptio…
averinevg Sep 21, 2023
8e23fe7
Fix formatting
averinevg Sep 21, 2023
97285cc
Removed another mention of conv/context.hpp
DrizztDoUrden Sep 22, 2023
9bc31dc
Added a temporary header for fin compatibility
DrizztDoUrden Sep 22, 2023
7fd5aa6
Merge branch 'ddu/remove-conv-ctx' into ea_replace_problem_descriptio…
averinevg Sep 22, 2023
56009b1
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Sep 26, 2023
bc19f8c
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Sep 28, 2023
824168e
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Oct 11, 2023
ad9637f
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Oct 13, 2023
dd5b18e
Post-merge fix
averinevg Oct 13, 2023
d7a0d5b
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Oct 23, 2023
9961d0c
Fix formatting
averinevg Oct 23, 2023
2273440
Post-merge fix
averinevg Oct 24, 2023
d049e06
Fix formatting
averinevg Oct 24, 2023
9a6f05b
Resolve review comments
averinevg Oct 24, 2023
4241dfc
Fix formatting
averinevg Oct 24, 2023
1963cac
Fix clang-tidy
averinevg Oct 25, 2023
8445959
Fix formatting
averinevg Oct 25, 2023
fa60609
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Oct 25, 2023
9373235
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Oct 27, 2023
da21aee
Fix ai_heuristics
averinevg Oct 27, 2023
7157d9b
Merge branch 'develop' into ea_replace_problem_description_with_conv_…
averinevg Oct 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion driver/conv_driver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
#include <miopen/convolution.hpp>
#include <miopen/solver.hpp>
#include <miopen/find_controls.hpp>
#include <miopen/problem_description.hpp>
#include "random.hpp"
#include <numeric>
#include <sstream>
Expand Down
1 change: 0 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,6 @@ set( MIOpen_Source
performance_config.cpp
pooling/problem_description.cpp
pooling_api.cpp
problem_description.cpp
problem.cpp
ramdb.cpp
readonlyramdb.cpp
Expand Down
16 changes: 8 additions & 8 deletions src/conv/heuristics/ai_heuristics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,9 @@ class Model
{
}
virtual ~Model() = default;
virtual bool IsProblemSupported(const ProblemDescription& problem,
virtual bool IsProblemSupported(const conv::ProblemDescription& problem,
const ExecutionContext& ctx) const = 0;
std::vector<float> Forward(const ProblemDescription& problem) const
std::vector<float> Forward(const conv::ProblemDescription& problem) const
{
std::vector<float> features = ToFeatures(problem);
std::vector<fdeep::tensor> output = model.predict({fdeep::tensor(input_shape, features)});
Expand All @@ -142,14 +142,14 @@ class Model
MIOPEN_THROW(miopenStatusInternalError, "Unable to load AI model file:" + file_path);
return file_path;
}
virtual std::vector<float> ToFeatures(const ProblemDescription& problem) const = 0;
virtual std::vector<float> ToFeatures(const conv::ProblemDescription& problem) const = 0;
};

class Gfx908Model final : public Model
{
public:
Gfx908Model() : Model("gfx908") {}
bool IsProblemSupported(const ProblemDescription& problem,
bool IsProblemSupported(const conv::ProblemDescription& problem,
const ExecutionContext& ctx) const override
{
// check if problem is of the kind TunaNet was trained to handle
Expand Down Expand Up @@ -216,7 +216,7 @@ class Gfx908Model final : public Model
}

protected:
std::vector<float> ToFeatures(const ProblemDescription& problem) const override
std::vector<float> ToFeatures(const conv::ProblemDescription& problem) const override
{
const bool isFwd = problem.GetDirection() == conv::Direction::Forward;
std::vector<float> features = {
Expand Down Expand Up @@ -356,7 +356,7 @@ std::unique_ptr<Model> GetModel(const std::string& device)
return std::make_unique<Gfx908Model>();
}

std::vector<uint64_t> PredictSolver(const ProblemDescription& problem,
std::vector<uint64_t> PredictSolver(const conv::ProblemDescription& problem,
const ExecutionContext& ctx,
const std::string& device)
{
Expand All @@ -366,7 +366,7 @@ std::vector<uint64_t> PredictSolver(const ProblemDescription& problem,

std::string est_name = ":memory:" + device;
auto& db = AnyRamDb::GetCached(est_name);
auto db_res = db.FindRecord(static_cast<const conv::ProblemDescription&>(problem));
auto db_res = db.FindRecord(problem);
if(db_res)
{
MIOPEN_LOG_I2("Cached heuristic (TunaNet) result found");
Expand Down Expand Up @@ -415,7 +415,7 @@ std::vector<uint64_t> PredictSolver(const ProblemDescription& problem,
sol.push_back(sol_id.Value());
any_sol.push_back(sol_id.Value());
}
db.StoreRecord(static_cast<const conv::ProblemDescription&>(problem), any_sol);
db.StoreRecord(problem, any_sol);
if(miopen::IsLogging(LoggingLevel::Info2))
{
std::stringstream ss;
Expand Down
6 changes: 3 additions & 3 deletions src/conv/invokers/impl_gemm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
namespace miopen {
namespace conv {

InvokerFactory MakeImplGemmDataInvokerFactory(const miopen::ProblemDescription& problem)
InvokerFactory MakeImplGemmDataInvokerFactory(const ProblemDescription& problem)
{
if(problem.direction.IsForward())
if(problem.IsDirectionForward())
{
return [](const std::vector<Kernel>& kernels) {
return [=](const Handle& handle, const AnyInvokeParams& primitive_parameters) {
Expand All @@ -24,7 +24,7 @@ InvokerFactory MakeImplGemmDataInvokerFactory(const miopen::ProblemDescription&
}
else
{
if(problem.direction.IsBackwardWrW())
if(problem.IsDirectionBackwardWrW())
MIOPEN_THROW("MakeImplGemmDataInvokerFactory shouldn't be used for WrW invokers.");

const auto& conv = problem.GetConv();
Expand Down
26 changes: 11 additions & 15 deletions src/conv/invokers/impl_gemm_dynamic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ static float CallImplGemmDynamicForward1x1(const miopen::Handle& handle,
return elapsed;
}

InvokerFactory
MakeImplGemmDynamicForward1x1InvokerFactory(const miopen::ProblemDescription& problem)
InvokerFactory MakeImplGemmDynamicForward1x1InvokerFactory(const ProblemDescription& problem)
{
return [problem](const std::vector<Kernel>& kernels) {
return [=](const Handle& handle, const AnyInvokeParams& primitive_parameters) {
Expand All @@ -112,10 +111,8 @@ MakeImplGemmDynamicForward1x1InvokerFactory(const miopen::ProblemDescription& pr
};
}

template <>
InvokerFactory
MakeImplGemmDynamicBackwardDataInvokerFactory<int>(const miopen::ProblemDescription& problem,
const int& cfg)
InvokerFactory MakeImplGemmDynamicBackwardDataInvokerFactory(const ProblemDescription& problem,
const int cfg)
{
int hi = problem.GetOutHeight_();
int wi = problem.GetOutWidth_();
Expand Down Expand Up @@ -249,10 +246,9 @@ MakeImplGemmDynamicBackwardDataInvokerFactory<int>(const miopen::ProblemDescript
};
}

template <>
InvokerFactory
MakeImplGemmDynamicBackwardDataInvokerFactory<solver::TunableImplicitGemmGTCDynamic_t>(
const miopen::ProblemDescription& problem, const solver::TunableImplicitGemmGTCDynamic_t& cfg)
MakeImplGemmDynamicBackwardDataInvokerFactory(const ProblemDescription& problem,
const solver::TunableImplicitGemmGTCDynamic_t& cfg)
{
int hi = problem.GetOutHeight_();
int wi = problem.GetOutWidth_();
Expand Down Expand Up @@ -439,8 +435,8 @@ MakeImplGemmDynamicBackwardDataInvokerFactory<solver::TunableImplicitGemmGTCDyna

InvokerFactory MakeImplGemmDynamicForwardXdlopsNHWCInvokerFactory(
const ExecutionContext& ctx,
const miopen::ProblemDescription& problem,
const solver::PerformanceConfigAsmImplicitGemmGTCFwdXdlopsNHWC& config)
const ProblemDescription& problem,
const solver::conv::PerformanceConfigAsmImplicitGemmGTCFwdXdlopsNHWC& config)
{
int hi = problem.GetInHeight_();
int wi = problem.GetInWidth_();
Expand Down Expand Up @@ -732,8 +728,8 @@ InvokerFactory MakeImplGemmDynamicForwardXdlopsNHWCInvokerFactory(

InvokerFactory MakeImplGemmDynamicBackwardDataXdlopsNHWCInvokerFactory(
const ExecutionContext& ctx,
const miopen::ProblemDescription& problem,
const solver::PerformanceConfigAsmImplicitGemmGTCBwdXdlopsNHWC& config)
const ProblemDescription& problem,
const solver::conv::PerformanceConfigAsmImplicitGemmGTCBwdXdlopsNHWC& config)
{
int hi = problem.GetOutHeight_();
int wi = problem.GetOutWidth_();
Expand Down Expand Up @@ -1047,8 +1043,8 @@ InvokerFactory MakeImplGemmDynamicBackwardDataXdlopsNHWCInvokerFactory(
}

InvokerFactory MakeImplGemmDynamicForwardDlopsNCHWCInvokerFactory(
const miopen::ProblemDescription& problem,
const solver::PerformanceConfigAsmImplicitGemmGTCFwdDlopsNCHWC& config)
const ProblemDescription& problem,
const solver::conv::PerformanceConfigAsmImplicitGemmGTCFwdDlopsNCHWC& config)
{
int hi = problem.GetInHeight_();
int wi = problem.GetInWidth_();
Expand Down
17 changes: 8 additions & 9 deletions src/conv/invokers/mlir_impl_gemm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ struct MlirConvArgs
#endif

#if MIIR_BARE_POINTER_ABI
void ComputeMlirDimsStrides(const conv::ProblemDescription& problem,
void ComputeMlirDimsStrides(const ProblemDescription& problem,
std::vector<size_t>& in_dims,
std::vector<size_t>& in_strides,
std::vector<size_t>& weights_dims,
Expand Down Expand Up @@ -156,7 +156,7 @@ void InsertGToDimsStrides(const std::string& layout,
strides.insert(strides.begin() + index, strides[index] * dims[index + 1]);
}

void ComputeMlirDimsStrides(const conv::ProblemDescription& problem,
void ComputeMlirDimsStrides(const ProblemDescription& problem,
std::vector<size_t>& in_dims,
std::vector<size_t>& in_strides,
std::vector<size_t>& weights_dims,
Expand Down Expand Up @@ -288,9 +288,9 @@ void SetMlirConvArgsPtr(
#endif // MIOPEN_BACKEND_HIP
} // Anonymous namespace

InvokerFactory MakeMlirFwdInvokerFactory(const miopen::ProblemDescription& problem)
InvokerFactory MakeMlirFwdInvokerFactory(const ProblemDescription& problem)
{
assert((problem.direction.IsForward()));
assert((problem.IsDirectionForward()));

std::vector<size_t> in_dims, in_strides;
std::vector<size_t> weights_dims, weights_strides;
Expand Down Expand Up @@ -354,9 +354,9 @@ InvokerFactory MakeMlirFwdInvokerFactory(const miopen::ProblemDescription& probl
};
}

InvokerFactory MakeMlirBwdInvokerFactory(const miopen::ProblemDescription& problem)
InvokerFactory MakeMlirBwdInvokerFactory(const ProblemDescription& problem)
{
assert(problem.direction.IsBackwardData());
assert(problem.IsDirectionBackwardData());

std::vector<size_t> in_dims, in_strides;
std::vector<size_t> weights_dims, weights_strides;
Expand Down Expand Up @@ -409,10 +409,9 @@ InvokerFactory MakeMlirBwdInvokerFactory(const miopen::ProblemDescription& probl
};
}

InvokerFactory MakeMlirWrWInvokerFactory(const miopen::ProblemDescription& problem,
size_t workspace_req)
InvokerFactory MakeMlirWrWInvokerFactory(const ProblemDescription& problem, size_t workspace_req)
{
assert((problem.direction.IsBackwardWrW()));
assert((problem.IsDirectionBackwardWrW()));

std::vector<size_t> in_dims, in_strides;
std::vector<size_t> weights_dims, weights_strides;
Expand Down
24 changes: 17 additions & 7 deletions src/conv/solver_finders.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
#include <miopen/config.h>
#include <miopen/mlo_internal.hpp>
#include <miopen/perf_field.hpp>
#include <miopen/problem_description.hpp>
#include <miopen/conv/problem_description.hpp>

namespace miopen {

Expand All @@ -42,6 +42,9 @@ MIOPEN_DECLARE_ENV_VAR(MIOPEN_DEBUG_CONV_WINOGRAD)
MIOPEN_DECLARE_ENV_VAR(MIOPEN_DEBUG_CONV_IMPLICIT_GEMM)
MIOPEN_DECLARE_ENV_VAR(MIOPEN_DEBUG_CONV_FFT)

namespace conv {
namespace {

class DirectSolverFinder : public SolversFinderMixin<ProblemDescription, ConvFindParameters>
{
protected:
Expand Down Expand Up @@ -178,6 +181,8 @@ class WinogradSolverFinder : public SolversFinderMixin<ProblemDescription, ConvF
}
};

} // namespace

const std::vector<std::unique_ptr<ISolversFinder>>& GetConvSolverFinders()
{
static const auto finders = []() {
Expand All @@ -193,14 +198,16 @@ const std::vector<std::unique_ptr<ISolversFinder>>& GetConvSolverFinders()
return finders;
}

} // namespace conv

/// Register invoker only for the best solution within algorithm.
/// Add all solutions to the find-db record.
void EvaluateInvokers(Handle& handle,
const std::vector<solver::ConvSolution>& solutions,
const AlgorithmName& algorithm_name,
const NetworkConfig& network_config,
const AnyInvokeParams& invoke_ctx,
DbRecord& record)
static void EvaluateInvokers(Handle& handle,
const std::vector<solver::ConvSolution>& solutions,
const AlgorithmName& algorithm_name,
const NetworkConfig& network_config,
const AnyInvokeParams& invoke_ctx,
DbRecord& record)
{
const char* const arch = miopen::GetStringEnv(MIOPEN_DEVICE_ARCH{});
if(arch != nullptr && strlen(arch) > 0)
Expand Down Expand Up @@ -309,6 +316,8 @@ void FindCore(const AnyInvokeParams& invoke_ctx,
EvaluateInvokers(handle, ss.second, ss.first, network_config, invoke_ctx, record);
}

namespace conv {

bool IsAlgorithmDisabled(miopenConvAlgorithm_t algo)
{
switch(algo)
Expand All @@ -328,4 +337,5 @@ bool IsAlgorithmDisabled(miopenConvAlgorithm_t algo)
} // clang-format on
}

} // namespace conv
} // namespace miopen
22 changes: 11 additions & 11 deletions src/convolution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ std::size_t GetMaxWorkSpaceSize(const std::vector<std::pair<std::string, std::si
}

std::size_t GetWorkSpaceSizeGEMM(const miopen::ExecutionContext& ctx,
const miopen::ProblemDescription& problem)
const conv::ProblemDescription& problem)
{
#if MIOPEN_USE_GEMM
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_GEMM{}) ||
Expand All @@ -92,55 +92,55 @@ std::size_t GetWorkSpaceSizeGEMM(const miopen::ExecutionContext& ctx,
}

std::size_t GetWorkSpaceSizeImplicitGemm(const miopen::ExecutionContext& ctx,
const miopen::ProblemDescription& problem)
const conv::ProblemDescription& problem)
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_IMPLICIT_GEMM{}))
return 0;
return GetMaxWorkSpaceSize(FindAllImplicitGemmWorkspaceSizes(ctx, problem));
}

std::size_t GetWorkSpaceSizeDirect(const miopen::ExecutionContext& ctx,
const miopen::ProblemDescription& problem)
const conv::ProblemDescription& problem)
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_DIRECT{}))
return 0;
return GetMaxWorkSpaceSize(AllDirectForwardBackwardDataWorkspaceSize(ctx, problem));
}

std::size_t GetWorkSpaceSizeFFT(const miopen::ExecutionContext& ctx,
const miopen::ProblemDescription& problem)
const conv::ProblemDescription& problem)
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_FFT{}))
return 0;
return GetMaxWorkSpaceSize(AllFFTForwardBackwardDataWorkspaceSize(ctx, problem));
}

std::size_t GetWorkSpaceSizeWinograd(const miopen::ExecutionContext& ctx,
const miopen::ProblemDescription& problem)
const conv::ProblemDescription& problem)
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_WINOGRAD{}))
return 0;
return GetMaxWorkSpaceSize(FindAllWinogradWorkspaceSizes(ctx, problem));
}

std::size_t GetWorkSpaceSizeDirectWrW(const miopen::ExecutionContext& ctx,
const miopen::ProblemDescription& problem)
const conv::ProblemDescription& problem)
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_DIRECT{}))
return 0;
return GetMaxWorkSpaceSize(AllDirectBwdWrW2DWorkspaceSize(ctx, problem));
}

std::size_t GetWorkSpaceSizeWinogradWrW(const miopen::ExecutionContext& ctx,
const miopen::ProblemDescription& problem)
const conv::ProblemDescription& problem)
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_WINOGRAD{}))
return 0;
return GetMaxWorkSpaceSize(FindWinogradWrWWorkspaceSizes(ctx, problem));
}

std::size_t GetWorkSpaceSizeImplicitGemmWrW(const miopen::ExecutionContext& ctx,
const miopen::ProblemDescription& problem)
const conv::ProblemDescription& problem)
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_IMPLICIT_GEMM{}))
return 0;
Expand Down Expand Up @@ -382,8 +382,8 @@ TensorDescriptor ConvolutionDescriptor::GetForwardOutputTensor(const TensorDescr
/// for some related host-side optimizations.
///
/// These optimizations are kind of cutting corners, but advantages are quite high.
bool ConvolutionDescriptor::IsWinograd3x3SupportedAndFast(const miopen::ExecutionContext& ctx,
const ProblemDescription& problem) const
bool ConvolutionDescriptor::IsWinograd3x3SupportedAndFast(
const miopen::ExecutionContext& ctx, const conv::ProblemDescription& problem) const
{
if(miopen::IsDisabled(MIOPEN_DEBUG_CONV_WINOGRAD{}))
return false;
Expand All @@ -397,7 +397,7 @@ bool ConvolutionDescriptor::IsWinograd3x3SupportedAndFast(const miopen::Executio
if(!(problem.GetOutChannels_() >= 16 && problem.GetOutChannels_() % 2 == 0))
return false;

return solver::ConvBinWinograd3x3U{}.IsApplicable(ctx, problem);
return solver::conv::ConvBinWinograd3x3U{}.IsApplicable(ctx, problem);
}

std::size_t ConvolutionDescriptor::GetWorkSpaceSize(ExecutionContext ctx,
Expand Down
2 changes: 1 addition & 1 deletion src/convolution_api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <miopen/find_controls.hpp>
#include <miopen/handle.hpp>
#include <miopen/logger.hpp>
#include <miopen/problem_description.hpp>
#include <miopen/conv/problem_description.hpp>
#include <miopen/tensor_ops.hpp>
#include <miopen/driver_arguments.hpp>

Expand Down
Loading