Windows ARM64 support via LLVM (#15585)
This commit is contained in:
parent
92788b1838
commit
84ecacda26
|
@ -192,7 +192,10 @@ macro(ie_arm_neon_optimization_flags flags)
|
|||
endif()
|
||||
else()
|
||||
if(AARCH64)
|
||||
set(${flags} -O2 -ftree-vectorize)
|
||||
set(${flags} -O2)
|
||||
if(NOT CMAKE_CL_64)
|
||||
list(APPEND ${flags} -ftree-vectorize)
|
||||
endif()
|
||||
elseif(ARM)
|
||||
set(${flags} -mfpu=neon -Wno-unused-command-line-argument)
|
||||
endif()
|
||||
|
@ -217,7 +220,9 @@ function(ov_disable_all_warnings)
|
|||
if(target_type STREQUAL "SHARED_LIBRARY" OR target_type STREQUAL "EXECUTABLE")
|
||||
set(link_interface LINK_OPTIONS)
|
||||
endif()
|
||||
set_target_properties(${target} PROPERTIES ${link_interface} "-Wno-error=maybe-uninitialized;-Wno-maybe-uninitialized")
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
set_target_properties(${target} PROPERTIES ${link_interface} "-Wno-error=maybe-uninitialized;-Wno-maybe-uninitialized")
|
||||
endif()
|
||||
elseif(UNIX AND CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||
# 193: zero used for undefined preprocessing identifier "XXX"
|
||||
# 1011: missing return statement at end of non-void function "XXX"
|
||||
|
@ -407,11 +412,6 @@ else()
|
|||
# Warn if an undefined identifier is evaluated in an #if directive. Such identifiers are replaced with zero.
|
||||
ie_add_compiler_flags(-Wundef)
|
||||
|
||||
# TODO
|
||||
if(OV_COMPILER_IS_CLANG)
|
||||
ie_add_compiler_flags(-Wno-delete-non-abstract-non-virtual-dtor)
|
||||
endif()
|
||||
|
||||
check_cxx_compiler_flag("-Wsuggest-override" SUGGEST_OVERRIDE_SUPPORTED)
|
||||
if(SUGGEST_OVERRIDE_SUPPORTED)
|
||||
set(CMAKE_CXX_FLAGS "-Wsuggest-override ${CMAKE_CXX_FLAGS}")
|
||||
|
@ -463,6 +463,10 @@ endif()
|
|||
# if(OV_COMPILER_IS_CLANG)
|
||||
# ie_add_compiler_flags(-Wshorten-64-to-32)
|
||||
# endif()
|
||||
# TODO
|
||||
if(OV_COMPILER_IS_CLANG)
|
||||
ie_add_compiler_flags(-Wno-delete-non-abstract-non-virtual-dtor)
|
||||
endif()
|
||||
|
||||
#
|
||||
# link_system_libraries(target <PUBLIC | PRIVATE | INTERFACE> <lib1 [lib2 lib3 ...]>)
|
||||
|
|
|
@ -19,16 +19,14 @@ else()
|
|||
endif()
|
||||
|
||||
if(CI_BUILD_NUMBER)
|
||||
set(TREAT_WARNING_AS_ERROR_DEFAULT ON)
|
||||
set(CMAKE_COMPILE_WARNING_AS_ERROR_DEFAULT ON)
|
||||
else()
|
||||
set(TREAT_WARNING_AS_ERROR_DEFAULT OFF)
|
||||
set(CMAKE_COMPILE_WARNING_AS_ERROR_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
ie_dependent_option (TREAT_WARNING_AS_ERROR "WILL BE REMOVED SOON, NEED TO FIX PRIVATE COMPONENTS" ON "X86_64 OR X86" OFF)
|
||||
|
||||
if(NOT DEFINED CMAKE_COMPILE_WARNING_AS_ERROR)
|
||||
set(CMAKE_COMPILE_WARNING_AS_ERROR ${TREAT_WARNING_AS_ERROR_DEFAULT})
|
||||
endif()
|
||||
ie_option (CMAKE_COMPILE_WARNING_AS_ERROR "Enable warnings as errors" ${CMAKE_COMPILE_WARNING_AS_ERROR_DEFAULT})
|
||||
|
||||
ie_dependent_option (ENABLE_INTEGRITYCHECK "build DLLs with /INTEGRITYCHECK flag" OFF "CMAKE_CXX_COMPILER_ID STREQUAL MSVC" OFF)
|
||||
|
||||
|
|
|
@ -16,7 +16,21 @@ if(WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|||
endif()
|
||||
endif()
|
||||
|
||||
macro(_ie_process_msvc_generator_platform flag_name)
|
||||
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
|
||||
set(arch_flag X86_64)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*")
|
||||
set(arch_flag X86)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(arm64.*|aarch64.*|AARCH64.*)")
|
||||
set(arch_flag AARCH64)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
|
||||
set(arch_flag ARM)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^riscv64$")
|
||||
set(arch_flag RISCV64)
|
||||
endif()
|
||||
|
||||
set(HOST_${arch_flag} ON)
|
||||
|
||||
macro(_ie_process_msvc_generator_platform arch_flag)
|
||||
# if cmake -A <ARM|ARM64> is passed
|
||||
if(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
|
||||
set(AARCH64 ON)
|
||||
|
@ -27,14 +41,14 @@ macro(_ie_process_msvc_generator_platform flag_name)
|
|||
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "Win32")
|
||||
set(X86 ON)
|
||||
else()
|
||||
set(${flag_name} ON)
|
||||
set(${arch_flag} ON)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
if(MSVC OR MINGW64)
|
||||
_ie_process_msvc_generator_platform(X86_64)
|
||||
if(MSVC64 OR MINGW64)
|
||||
_ie_process_msvc_generator_platform(${arch_flag})
|
||||
elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING))
|
||||
_ie_process_msvc_generator_platform(X86)
|
||||
_ie_process_msvc_generator_platform(${arch_flag})
|
||||
elseif(CMAKE_OSX_ARCHITECTURES AND APPLE)
|
||||
if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
|
||||
set(AARCH64 ON)
|
||||
|
@ -57,18 +71,6 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64$")
|
|||
set(RISCV64 ON)
|
||||
endif()
|
||||
|
||||
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
|
||||
set(HOST_X86_64 ON)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*")
|
||||
set(HOST_X86 ON)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(arm64.*|aarch64.*|AARCH64.*)")
|
||||
set(HOST_AARCH64 ON)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
|
||||
set(HOST_ARM ON)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^riscv64$")
|
||||
set(HOST_RISCV64 ON)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
|
||||
set(EMSCRIPTEN ON)
|
||||
endif()
|
||||
|
|
|
@ -21,6 +21,8 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
|||
# 'argument': conversion from 'size_t' to 'int', possible loss of data
|
||||
ie_add_compiler_flags(/wd4267)
|
||||
ie_add_compiler_flags(/wd4244)
|
||||
elseif(CMAKE_COMPILER_IS_GNUCXX)
|
||||
ie_add_compiler_flags(-Wno-unused-but-set-variable)
|
||||
endif()
|
||||
|
||||
# create target
|
||||
|
|
|
@ -17,6 +17,10 @@ template void regclass_graph_Output<const ov::Node>(py::module m, std::string ty
|
|||
template <typename T>
|
||||
void def_type_dependent_functions(py::class_<ov::Output<T>, std::shared_ptr<ov::Output<T>>>& output) {}
|
||||
|
||||
template <>
|
||||
void def_type_dependent_functions<const ov::Node>(
|
||||
py::class_<ov::Output<const ov::Node>, std::shared_ptr<ov::Output<const ov::Node>>>& output) {}
|
||||
|
||||
template <>
|
||||
void def_type_dependent_functions<ov::Node>(
|
||||
py::class_<ov::Output<ov::Node>, std::shared_ptr<ov::Output<ov::Node>>>& output) {
|
||||
|
|
|
@ -28,6 +28,10 @@ template<>
|
|||
void def_type_dependent_functions<ov::Node>(py::class_<ov::Output<ov::Node>,
|
||||
std::shared_ptr<ov::Output<ov::Node>>>& output);
|
||||
|
||||
template<>
|
||||
void def_type_dependent_functions<const ov::Node>(py::class_<ov::Output<const ov::Node>,
|
||||
std::shared_ptr<ov::Output<const ov::Node>>>& output);
|
||||
|
||||
template <typename VT>
|
||||
void regclass_graph_Output(py::module m, std::string typestring)
|
||||
{
|
||||
|
|
|
@ -31,9 +31,11 @@ elseif(SELECTIVE_BUILD STREQUAL "ON")
|
|||
target_compile_options(${TARGET_NAME} INTERFACE
|
||||
-Wno-unused-function
|
||||
-Wno-unused-variable
|
||||
-Wno-unused-but-set-variable
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-local-typedefs)
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
target_compile_options(${TARGET_NAME} INTERFACE -Wno-unused-but-set-variable)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(GENERATED_HEADER ${CMAKE_CURRENT_BINARY_DIR}/conditional_compilation_gen.h CACHE FILEPATH "")
|
||||
|
|
|
@ -35,7 +35,6 @@ bool ngraph::pass::GenerateMappingFile::run_on_model(const std::shared_ptr<ngrap
|
|||
|
||||
for (auto&& node : f->get_ordered_ops()) {
|
||||
uint64_t ie_port_index{node->inputs().size()};
|
||||
uint64_t ng_port_index{0};
|
||||
if (std::dynamic_pointer_cast<ov::op::v0::Result>(node))
|
||||
continue;
|
||||
for (auto&& output : node->outputs()) {
|
||||
|
@ -52,7 +51,6 @@ bool ngraph::pass::GenerateMappingFile::run_on_model(const std::shared_ptr<ngrap
|
|||
}
|
||||
}
|
||||
++ie_port_index;
|
||||
++ng_port_index;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -416,7 +416,12 @@ std::basic_string<C> get_path_name(const std::basic_string<C>& s) {
|
|||
return {};
|
||||
}
|
||||
|
||||
static std::string get_ov_library_path_a() {
|
||||
#if defined __GNUC__ || defined __clang__
|
||||
# pragma GCC diagnostic push
|
||||
# pragma GCC diagnostic ignored "-Wunused-function"
|
||||
#endif
|
||||
|
||||
std::string get_ov_library_path_a() {
|
||||
#ifdef _WIN32
|
||||
CHAR ov_library_path[MAX_PATH];
|
||||
HMODULE hm = NULL;
|
||||
|
@ -438,6 +443,10 @@ static std::string get_ov_library_path_a() {
|
|||
#endif // _WIN32
|
||||
}
|
||||
|
||||
#if defined __GNUC__ || defined __clang__
|
||||
# pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
} // namespace
|
||||
|
||||
std::string ov::util::get_ov_lib_path() {
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace ngraph;
|
||||
|
||||
TEST(aligned_buffer, alignment) {
|
||||
|
@ -18,7 +17,7 @@ TEST(aligned_buffer, alignment) {
|
|||
TEST(aligned_buffer, move) {
|
||||
{
|
||||
runtime::AlignedBuffer buffer1(100, 64);
|
||||
runtime::AlignedBuffer buffer2(move(buffer1));
|
||||
runtime::AlignedBuffer buffer2(std::move(buffer1));
|
||||
EXPECT_EQ(buffer1.size(), 0);
|
||||
EXPECT_EQ(buffer1.get_ptr(), nullptr);
|
||||
EXPECT_EQ(buffer2.size(), 100);
|
||||
|
@ -27,7 +26,7 @@ TEST(aligned_buffer, move) {
|
|||
{
|
||||
runtime::AlignedBuffer buffer1(100, 64);
|
||||
runtime::AlignedBuffer buffer2;
|
||||
buffer2 = move(buffer1);
|
||||
buffer2 = std::move(buffer1);
|
||||
EXPECT_EQ(buffer1.size(), 0);
|
||||
EXPECT_EQ(buffer1.get_ptr(), nullptr);
|
||||
EXPECT_EQ(buffer2.size(), 100);
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
namespace ov {
|
||||
namespace frontend {
|
||||
class FrontEnd;
|
||||
/// \brief InputModel class represents an original, not yet converted model graph in a
|
||||
/// framework format given services to find places of interest in a graph or specialize/edit
|
||||
/// the model before conversion.
|
||||
|
@ -38,7 +39,7 @@ namespace frontend {
|
|||
class FRONTEND_API InputModel {
|
||||
std::shared_ptr<void> m_shared_object;
|
||||
std::shared_ptr<InputModel> m_actual;
|
||||
friend class FrontEnd;
|
||||
friend class ::ov::frontend::FrontEnd;
|
||||
|
||||
public:
|
||||
using Ptr = std::shared_ptr<InputModel>;
|
||||
|
|
|
@ -16,7 +16,6 @@ namespace frontend {
|
|||
namespace ir {
|
||||
|
||||
class InputModel : public ov::frontend::InputModel {
|
||||
friend class FrontEnd;
|
||||
class InputModelIRImpl;
|
||||
std::shared_ptr<InputModelIRImpl> _impl;
|
||||
|
||||
|
|
|
@ -85,9 +85,7 @@ private:
|
|||
m_handle = HandleHolder(h);
|
||||
SYSTEM_INFO SystemInfo;
|
||||
GetSystemInfo(&SystemInfo);
|
||||
const int64_t page_size = SystemInfo.dwAllocationGranularity;
|
||||
|
||||
DWORD file_mode = GENERIC_READ;
|
||||
DWORD map_mode = FILE_MAP_READ;
|
||||
DWORD access = PAGE_READONLY;
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace frontend {
|
|||
namespace pytorch {
|
||||
|
||||
class InputModel : public ov::frontend::InputModel {
|
||||
friend class FrontEnd;
|
||||
friend class ::ov::frontend::pytorch::FrontEnd;
|
||||
std::shared_ptr<TorchDecoder> m_model;
|
||||
|
||||
public:
|
||||
|
|
|
@ -65,9 +65,12 @@ std::basic_string<C> getPathName(const std::basic_string<C>& s) {
|
|||
return {};
|
||||
}
|
||||
|
||||
} // namespace
|
||||
#if defined __GNUC__ || defined __clang__
|
||||
# pragma GCC diagnostic push
|
||||
# pragma GCC diagnostic ignored "-Wunused-function"
|
||||
#endif
|
||||
|
||||
static std::string getIELibraryPathA() {
|
||||
std::string getIELibraryPathA() {
|
||||
#ifdef _WIN32
|
||||
CHAR ie_library_path[MAX_PATH];
|
||||
HMODULE hm = NULL;
|
||||
|
@ -101,6 +104,12 @@ static std::string getIELibraryPathA() {
|
|||
#endif // _WIN32
|
||||
}
|
||||
|
||||
#if defined __GNUC__ || defined __clang__
|
||||
# pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
} // namespace
|
||||
|
||||
#ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT
|
||||
|
||||
std::wstring getIELibraryPathW() {
|
||||
|
|
|
@ -60,7 +60,6 @@ void parse_processor_info_win(const char* base_ptr,
|
|||
int list_len = 0;
|
||||
int base_proc = 0;
|
||||
int proc_count = 0;
|
||||
int mask_len = 0;
|
||||
int group = 0;
|
||||
_sockets = -1;
|
||||
|
||||
|
@ -91,7 +90,6 @@ void parse_processor_info_win(const char* base_ptr,
|
|||
if (info->Relationship == RelationProcessorPackage) {
|
||||
_sockets++;
|
||||
MaskToList(info->Processor.GroupMask->Mask);
|
||||
mask_len = list_len;
|
||||
if (0 == _sockets) {
|
||||
_proc_type_table.push_back(line_value_0);
|
||||
} else {
|
||||
|
|
5
thirdparty/CMakeLists.txt
vendored
5
thirdparty/CMakeLists.txt
vendored
|
@ -251,9 +251,12 @@ if(ENABLE_GAPI_PREPROCESSING)
|
|||
add_subdirectory(ade EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(fluid/modules/gapi EXCLUDE_FROM_ALL)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 11 AND NOT OV_COMPILER_IS_CLANG)
|
||||
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 11)
|
||||
target_compile_options(fluid PRIVATE "-Wno-maybe-uninitialized")
|
||||
endif()
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
target_compile_options(fluid PRIVATE "-Wno-unused-but-set-variable")
|
||||
endif()
|
||||
|
||||
set_target_properties(ade fluid PROPERTIES FOLDER thirdparty)
|
||||
openvino_developer_export_targets(COMPONENT openvino_common TARGETS ade fluid)
|
||||
|
|
4
thirdparty/gflags/CMakeLists.txt
vendored
4
thirdparty/gflags/CMakeLists.txt
vendored
|
@ -9,5 +9,9 @@ set(INTTYPES_FORMAT C99)
|
|||
set(BUILD_TESTING OFF)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable")
|
||||
endif()
|
||||
|
||||
add_subdirectory(gflags EXCLUDE_FROM_ALL)
|
||||
set_target_properties(gflags_nothreads_static PROPERTIES FOLDER thirdparty)
|
||||
|
|
5
thirdparty/zlib/CMakeLists.txt
vendored
5
thirdparty/zlib/CMakeLists.txt
vendored
|
@ -13,6 +13,11 @@ else()
|
|||
#266: function "XXX" declared implicitly
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -diag-disable=266")
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-non-prototype")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(TARGET_NAME "zlib")
|
||||
|
|
Loading…
Reference in New Issue
Block a user