Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
70 changes: 18 additions & 52 deletions projects/miopen/cmake/EnableCompilerWarnings.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,64 +24,29 @@
#
################################################################################

set(__default_cxx_compile_options
set(__cxx_compile_options
-Werror
-Wall
-Wextra
-Wcomment
-Wendif-labels
-Wformat
-Winit-self
-Wreturn-type
-Wsequence-point
-Wswitch
-Wtrigraphs
# Additional warnings not included in -Wall/-Wextra
-Wundef
-Wuninitialized
-Wunreachable-code
-Wno-ignored-qualifiers
-Wno-sign-compare
-Wmissing-noreturn
-Wshadow
-Wsuggest-override
-Wold-style-cast
# TODO: Working to enable these warnings. Each requires code cleanup first.
# -Wconversion # ~1000+ implicit narrowing/sign conversions to fix
# -Wdouble-promotion # implicit float-to-double promotions
# Suppress specific warnings -- working to remove these by fixing the code
-Wno-c++11-narrowing # ~40 instances: narrowing in brace init (batchnorm, ck_impl, addkernels)
-Wno-sign-compare # ~1000+ instances: signed/unsigned comparisons throughout codebase
-Wno-deprecated-declarations # 2 deprecated MIOpen APIs still have callers
)

set(__clang_cxx_compile_options
-Weverything
-Wno-c++98-compat
-Wno-c++98-compat-pedantic
-Wno-conversion
-Wno-double-promotion
-Wno-exit-time-destructors
-Wno-extra-semi
-Wno-extra-semi-stmt
-Wno-missing-prototypes
-Wno-padded
-Wno-unused-command-line-argument
-Wno-weak-vtables
-Wno-covered-switch-default
-Wno-unsafe-buffer-usage
-Wno-deprecated-declarations
-Wno-global-constructors
-Wno-reserved-identifier
-Wno-deprecated
-Wno-old-style-cast
-Wno-c++11-narrowing
-Wno-switch-enum
-Wno-suggest-override
-Wno-nonportable-system-include-path
-Wno-documentation
-Wmissing-noreturn)

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19")
list(APPEND __clang_cxx_compile_options
-Wno-unique-object-duplication
-Wno-switch-default)
endif()

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "23")
list(APPEND __clang_cxx_compile_options
-Wno-lifetime-safety
-Wno-lifetime-safety-suggestions
-Wno-lifetime-safety-intra-tu-suggestions
-Wno-lifetime-safety-cross-tu-suggestions)
endif()
)

if(WIN32)
list(APPEND __clang_cxx_compile_options
Expand All @@ -90,8 +55,9 @@ if(WIN32)
endif()

add_compile_options(
"$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Clang>>:${__default_cxx_compile_options};${__clang_cxx_compile_options}>"
"$<$<COMPILE_LANGUAGE:CXX>:${__cxx_compile_options}>"
"$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Clang>>:${__clang_cxx_compile_options}>"
)

unset(__default_cxx_compile_options)
unset(__cxx_compile_options)
unset(__clang_cxx_compile_options)
2 changes: 1 addition & 1 deletion projects/miopen/driver/kthvalue_driver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ int KthvalueDriver<TIO>::RunForwardGPU()
outputDesc,
output_dev->GetMem(),
indicesDesc,
(size_t*)indices_dev->GetMem(),
static_cast<size_t*>(indices_dev->GetMem()),
k,
dim,
keepDim);
Expand Down
7 changes: 7 additions & 0 deletions projects/miopen/driver/rocrand_wrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,14 @@

#include "rocrand_wrapper.hpp"

// Suppress warnings from rocrand's own headers: in TheRock builds rocrand/stage/include
// is injected globally as -I (not -isystem), so rocrand headers are not treated as system
// includes and their internal issues trigger our warnings.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wold-style-cast"
#pragma clang diagnostic ignored "-Wundef"
#include <rocrand/rocrand.hpp>
#pragma clang diagnostic pop

namespace gpumemrand {

Expand Down
4 changes: 2 additions & 2 deletions projects/miopen/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1010,10 +1010,10 @@ endif()

if(hipblaslt_FOUND)
target_link_libraries( MIOpen PRIVATE roc::hipblaslt )
target_include_directories( MIOpen INTERFACE $<BUILD_INTERFACE:${HIPBLAS-COMMON_INCLUDE_DIR}> )
target_include_directories( MIOpen SYSTEM INTERFACE $<BUILD_INTERFACE:${HIPBLAS-COMMON_INCLUDE_DIR}> )
endif()

target_include_directories( MIOpen PRIVATE ${ROCRAND_INCLUDE_DIR} )
target_include_directories( MIOpen SYSTEM PRIVATE ${ROCRAND_INCLUDE_DIR} )

# For backward compatibility with ROCm 5.3
# Build with library libMLIRMIOpen
Expand Down
27 changes: 14 additions & 13 deletions projects/miopen/src/ck_impl/implicitgemm_ck_util.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,8 @@ template <typename DeviceOpType,
typename CKArgsType,
typename ProblemDescriptionType = miopen::conv::ProblemDescription,
bool CheckSplitK = false>
bool IsCKArgsSupported(const ProblemDescriptionType& problem, const std::string& kernel_id)
bool IsCKArgsSupported([[maybe_unused]] const ProblemDescriptionType& problem,
[[maybe_unused]] const std::string& kernel_id)
{
#if MIOPEN_BACKEND_HIP && MIOPEN_USE_COMPOSABLEKERNEL
if(!kernel_id.empty())
Expand Down Expand Up @@ -687,7 +688,7 @@ ConvSolution InitAnyInvokerFactory(const ProblemDescriptionType& problem,
}

template <typename DataType, typename OutElemOp>
OutElemOp GetOutElementOp(const miopen::fusion::ActivationOpInvokeParam& activationOp)
OutElemOp GetOutElementOp([[maybe_unused]] const miopen::fusion::ActivationOpInvokeParam& activationOp)
{
#if MIOPEN_BACKEND_HIP && MIOPEN_USE_COMPOSABLEKERNEL
auto activationMode = activationOp.activMode;
Expand Down Expand Up @@ -893,12 +894,12 @@ template <bool ZeroOutputs,
typename Input1TposeOp,
typename Input2TposeOp,
typename OutputTposeOp>
ConvSolution InitInvokerFactoryNCHW(const ExecutionContext& ctx,
const miopen::conv::ProblemDescription& problem,
const std::string& kernel_id,
const Input1TposeOp& input1_op,
const Input2TposeOp& input2_op,
const OutputTposeOp& output_op)
ConvSolution InitInvokerFactoryNCHW([[maybe_unused]] const ExecutionContext& ctx,
[[maybe_unused]] const miopen::conv::ProblemDescription& problem,
[[maybe_unused]] const std::string& kernel_id,
[[maybe_unused]] const Input1TposeOp& input1_op,
[[maybe_unused]] const Input2TposeOp& input2_op,
[[maybe_unused]] const OutputTposeOp& output_op)
{
assert(problem.IsLayoutDefault());

Expand Down Expand Up @@ -1063,7 +1064,7 @@ template <bool ZeroOutputs,
typename CastType,
typename ProblemDescriptionType = miopen::conv::ProblemDescription>
ConvSolution InitInvokerFactoryNHWC(const ExecutionContext&,
const ProblemDescriptionType& problem,
[[maybe_unused]] const ProblemDescriptionType& problem,
const std::string& kernel_id)
{
ConvSolution result;
Expand Down Expand Up @@ -1270,10 +1271,10 @@ ConvSolution InitInvokerFactoryWrwNCHW(const ExecutionContext& ctx,

template <typename InvokerFactoryMakerNCHW, typename InvokerFactoryMakerNHWC>
ConvSolution
MakeSolutionGroupConvImplicitGemmXdlops(const miopen::conv::ProblemDescription& problem,
InvokerFactoryMakerNCHW&& invoker_factory_maker_ncdhw,
InvokerFactoryMakerNHWC&& invoker_factory_maker_ndhwc,
const bool use_tf32 = false)
MakeSolutionGroupConvImplicitGemmXdlops([[maybe_unused]] const miopen::conv::ProblemDescription& problem,
[[maybe_unused]] InvokerFactoryMakerNCHW&& invoker_factory_maker_ncdhw,
[[maybe_unused]] InvokerFactoryMakerNHWC&& invoker_factory_maker_ndhwc,
[[maybe_unused]] const bool use_tf32 = false)
{

#if MIOPEN_BACKEND_HIP && MIOPEN_USE_COMPOSABLEKERNEL
Expand Down
2 changes: 2 additions & 0 deletions projects/miopen/src/env.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@
#include <string_view>

#ifdef _WIN32
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <Windows.h>
#endif

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ inline int GetStashMethod(bool IsLayoutNHWC,
(in_cstride) % ylocalsize == 0 ? ylocalsize : (in_cstride) % ylocalsize;
unsigned int last_zlocalsize =
n % (zlocalsize * nelements) == 0 ? (zlocalsize * nelements) : n % (zlocalsize * nelements);
if(last_ylocalsize < stash_values && last_zlocalsize >= (size_t)stash_values)
if(last_ylocalsize < stash_values && last_zlocalsize >= static_cast<size_t>(stash_values))
{
stash_method = 1;
}
Expand Down Expand Up @@ -400,8 +400,8 @@ inline bool IsSpatialMultipleApplicable(const miopen::batchnorm::ProblemDescript
// be large enough
// - if C is not multiple of 2, intermediate results are stored in N dimension splitting
// float values in group of 2 bytes. N must be large enough
if((!bfp32parm && (c % 2 != 0 && last_zlocalsize < (size_t)stash_values)) ||
((last_ylocalsize < stash_values) && (last_zlocalsize < (size_t)stash_values)))
if((!bfp32parm && (c % 2 != 0 && last_zlocalsize < static_cast<size_t>(stash_values))) ||
((last_ylocalsize < stash_values) && (last_zlocalsize < static_cast<size_t>(stash_values))))
{
return false;
}
Expand All @@ -425,7 +425,7 @@ inline bool IsSpatialMultipleApplicable(const miopen::batchnorm::ProblemDescript
// - if last block doesn't fit, intermediate results are stored in N dimension which must
// be large enough
stash_values *= (problem.GetXDesc().GetType() == miopenFloat ? 1 : 2);
if(last_ylocalsize < stash_values && last_zlocalsize < (size_t)stash_values)
if(last_ylocalsize < stash_values && last_zlocalsize < static_cast<size_t>(stash_values))
{
return false;
}
Expand Down
16 changes: 8 additions & 8 deletions projects/miopen/src/include/miopen/conv/solvers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4829,18 +4829,18 @@ struct ConvWinogradNHWCTransposingTunableSolver

struct TransposedConvBinWinograd3x3U final : ConvWinogradNHWCTransposingSolver<ConvBinWinograd3x3U>
{
const std::string& SolverDbId() const { return GetSolverDbId<TransposedConvBinWinograd3x3U>(); }
const std::string& SolverDbId() const override { return GetSolverDbId<TransposedConvBinWinograd3x3U>(); }
};

struct TransposedConvBinWinogradRxS final : ConvWinogradNHWCTransposingSolver<ConvBinWinogradRxS>
{
const std::string& SolverDbId() const { return GetSolverDbId<TransposedConvBinWinogradRxS>(); }
const std::string& SolverDbId() const override { return GetSolverDbId<TransposedConvBinWinogradRxS>(); }
};

struct TransposedConvBinWinogradRxSf2x3g1 final
: ConvWinogradNHWCTransposingSolver<ConvBinWinogradRxSf2x3g1>
{
const std::string& SolverDbId() const
const std::string& SolverDbId() const override
{
return GetSolverDbId<TransposedConvBinWinogradRxSf2x3g1>();
}
Expand All @@ -4850,7 +4850,7 @@ struct TransposedConvMPBidirectWinograd final
: ConvWinogradNHWCTransposingSolver<
ConvMPBidirectWinograd<WinoDataH, WinoFilterH, WinoDataW, WinoFilterW>>
{
const std::string& SolverDbId() const
const std::string& SolverDbId() const override
{
return this->template GetSolverDbId<
TransposedConvMPBidirectWinograd<WinoDataH, WinoFilterH, WinoDataW, WinoFilterW>>();
Expand All @@ -4862,7 +4862,7 @@ struct TransposedConvWinograd3x3MultipassWrW final
: ConvWinogradNHWCTransposingSolver<
ConvWinograd3x3MultipassWrW<WinoDataH, WinoFilterH, WinoDataW, WinoFilterW>>
{
const std::string& SolverDbId() const
const std::string& SolverDbId() const override
{
return this->template GetSolverDbId<TransposedConvWinograd3x3MultipassWrW<WinoDataH,
WinoFilterH,
Expand All @@ -4875,7 +4875,7 @@ template <uint32_t Winodata, uint32_t Winofilter>
struct TransposedConvWinoFuryRxS final
: ConvWinogradNHWCTransposingSolver<ConvWinoFuryRxS<Winodata, Winofilter>>
{
const std::string& SolverDbId() const
const std::string& SolverDbId() const override
{
return this->template GetSolverDbId<TransposedConvWinoFuryRxS<Winodata, Winofilter>>();
}
Expand All @@ -4885,7 +4885,7 @@ template <uint32_t Winodata, uint32_t Winofilter>
struct TransposedConvWinoRageRxS final
: ConvWinogradNHWCTransposingSolver<ConvWinoRageRxS<Winodata, Winofilter>>
{
const std::string& SolverDbId() const
const std::string& SolverDbId() const override
{
return this->template GetSolverDbId<TransposedConvWinoRageRxS<Winodata, Winofilter>>();
}
Expand All @@ -4907,7 +4907,7 @@ struct TransposedConvMPBidirectWinograd_xdlops final
: ConvWinogradNHWCTransposingTunableSolver<
ConvMPBidirectWinograd_xdlops<WinoDataH, WinoFilterH, WinoDataW, WinoFilterW>>
{
const std::string& SolverDbId() const
const std::string& SolverDbId() const override
{
return this->template GetSolverDbId<TransposedConvMPBidirectWinograd_xdlops<WinoDataH,
WinoFilterH,
Expand Down
2 changes: 2 additions & 0 deletions projects/miopen/src/include/miopen/file_lock.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
#ifndef NOMINMAX
#define NOMINMAX
#endif
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#include <io.h>
#else
Expand Down
Loading
Loading