diff --git a/.gitmodules b/.gitmodules index 4c0f0a395b7..b279deeb065 100644 --- a/.gitmodules +++ b/.gitmodules @@ -54,7 +54,7 @@ path = cmake/developer_package/ncc_naming_style/ncc url = https://github.com/nithinn/ncc.git [submodule "thirdparty/onednn_gpu"] - path = thirdparty/onednn_gpu + path = src/plugins/intel_gpu/thirdparty/onednn_gpu url = https://github.com/oneapi-src/oneDNN.git [submodule "tools/pot/thirdparty/open_model_zoo"] path = thirdparty/open_model_zoo diff --git a/CODEOWNERS b/CODEOWNERS index da0b7e9b25f..1453cb29df3 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -45,8 +45,7 @@ Jenkinsfile @openvinotoolkit/openvino-admins # IE GPU: /src/inference/include/ie/gpu/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers /src/inference/include/ie/cldnn/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers -/src/inference/include/openvino/runtime/gpu/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers -/inference-engine/thirdparty/clDNN/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers +/src/inference/include/openvino/runtime/intel_gpu/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers /src/plugins/intel_gpu/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers # IE VPU: diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 28a0ac4dbde..f42d82bd9bd 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -11,6 +11,7 @@ ie_shellcheck_process(DIRECTORY "${OpenVINO_SOURCE_DIR}" "${OpenVINO_SOURCE_DIR}/build" "${OpenVINO_SOURCE_DIR}/thirdparty" "${OpenVINO_SOURCE_DIR}/src/plugins/intel_cpu/thirdparty" + "${OpenVINO_SOURCE_DIR}/src/plugins/intel_gpu/thirdparty" "${OpenVINO_SOURCE_DIR}/src/bindings/python/thirdparty/pybind11" "${IE_MAIN_SOURCE_DIR}/thirdparty" "${OpenVINO_SOURCE_DIR}/tools/pot/thirdparty" diff --git a/src/plugins/intel_gpu/CMakeLists.txt b/src/plugins/intel_gpu/CMakeLists.txt index 97d913c9573..dec82574254 100644 --- a/src/plugins/intel_gpu/CMakeLists.txt +++ b/src/plugins/intel_gpu/CMakeLists.txt @@ -19,10 +19,10 @@ endif() set(MAIN_DIR "${CMAKE_CURRENT_SOURCE_DIR}") set(INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") +add_subdirectory(thirdparty) add_subdirectory(src/runtime) add_subdirectory(src/kernel_selector) add_subdirectory(src/graph) -add_subdirectory(thirdparty) file(GLOB_RECURSE PLUGIN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/plugin/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/include/intel_gpu/plugin/*.hpp) diff --git a/src/plugins/intel_gpu/thirdparty/CMakeLists.txt b/src/plugins/intel_gpu/thirdparty/CMakeLists.txt index fc973d83056..864177b417d 100644 --- a/src/plugins/intel_gpu/thirdparty/CMakeLists.txt +++ b/src/plugins/intel_gpu/thirdparty/CMakeLists.txt @@ -9,3 +9,63 @@ set_target_properties(rapidjson PROPERTIES ) ov_install_static_lib(rapidjson gpu) + +# +# oneDNN for GPU plugin +# + +if(ENABLE_ONEDNN_FOR_GPU) + function(build_onednn_gpu) + include(ExternalProject) + set(ONEDNN_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/onednn_gpu_build/") + set(ONEDNN_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/onednn_gpu_install/") + set(ONEDNN_PREFIX_DIR "${CMAKE_CURRENT_BINARY_DIR}/onednn_gpu_root") + if(CMAKE_COMPILER_IS_GNUCXX) + ie_add_compiler_flags(-Wno-undef -Wno-suggest-override) + endif() + ExternalProject_Add(onednn_gpu_build + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/onednn_gpu" + BINARY_DIR "${ONEDNN_BUILD_DIR}" + INSTALL_DIR "${ONEDNN_INSTALL_DIR}" + PREFIX "${ONEDNN_PREFIX_DIR}" + EXCLUDE_FROM_ALL ON + CMAKE_ARGS + "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" + "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" + "-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}" + "-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}" + "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}" + "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}" + "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=${ENABLE_LTO}" + "-DCMAKE_POLICY_DEFAULT_CMP0069=NEW" + "-DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY}" + "-DDNNL_CPU_RUNTIME=NONE" + "-DDNNL_GPU_RUNTIME=OCL" + "-DDNNL_LIBRARY_NAME=onednn_gpu" + "-DCMAKE_INSTALL_PREFIX=${ONEDNN_INSTALL_DIR}" + "-DCMAKE_INSTALL_LIBDIR=lib/$" + "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" + "-DDNNL_ENABLE_CONCURRENT_EXEC=ON" + "-DDNNL_ENABLE_PRIMITIVE_CACHE=OFF" + "-DDNNL_ENABLE_JIT_PROFILING=${BUILD_SHARED_LIBS}" + "-DDNNL_ENABLE_ITT_TASKS=${BUILD_SHARED_LIBS}" + "-DDNNL_BUILD_TESTS=OFF" + "-DDNNL_BUILD_EXAMPLES=OFF" + "-DDNNL_BLAS_VENDOR=NONE" + "-DDNNL_LIBRARY_TYPE=STATIC" + "-DOpenCL_LIBRARY=${OpenCL_LIBRARY}" + "-DOpenCL_INCLUDE_DIR=${OpenCL_INCLUDE_DIR}" + "-DOPENCL_VERSION_2_2=${OPENCL_VERSION_2_2}" + ) + add_library(onednn_gpu_tgt INTERFACE) + set_target_properties(onednn_gpu_tgt PROPERTIES + INTERFACE_LINK_DIRECTORIES "${ONEDNN_INSTALL_DIR}/lib/$" + INTERFACE_LINK_LIBRARIES "onednn_gpu" + INTERFACE_INCLUDE_DIRECTORIES "${ONEDNN_INSTALL_DIR}/include" + INTERFACE_COMPILE_DEFINITIONS ENABLE_ONEDNN_FOR_GPU + ) + add_dependencies(onednn_gpu_tgt onednn_gpu_build) + # TODO: install onednn_gpu in static builds + endfunction() + build_onednn_gpu() +endif() diff --git a/thirdparty/onednn_gpu b/src/plugins/intel_gpu/thirdparty/onednn_gpu similarity index 100% rename from thirdparty/onednn_gpu rename to src/plugins/intel_gpu/thirdparty/onednn_gpu diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 84c10f8b044..bc4d8caa93e 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -128,66 +128,6 @@ if(ENABLE_OV_ONNX_FRONTEND) add_subdirectory(onnx) endif() -# -# oneDNN for GPU plugin -# - -if(ENABLE_ONEDNN_FOR_GPU) - function(build_onednn_gpu) - include(ExternalProject) - set(ONEDNN_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/onednn_gpu_build/") - set(ONEDNN_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/onednn_gpu_install/") - set(ONEDNN_PREFIX_DIR "${CMAKE_CURRENT_BINARY_DIR}/onednn_gpu_root") - if(CMAKE_COMPILER_IS_GNUCXX) - ie_add_compiler_flags(-Wno-undef) - endif() - ExternalProject_Add(onednn_gpu_build - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/onednn_gpu" - BINARY_DIR "${ONEDNN_BUILD_DIR}" - INSTALL_DIR "${ONEDNN_INSTALL_DIR}" - PREFIX "${ONEDNN_PREFIX_DIR}" - EXCLUDE_FROM_ALL ON - CMAKE_ARGS - "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" - "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" - "-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}" - "-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}" - "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}" - "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}" - "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=${ENABLE_LTO}" - "-DCMAKE_POLICY_DEFAULT_CMP0069=NEW" - "-DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY}" - "-DDNNL_CPU_RUNTIME=NONE" - "-DDNNL_GPU_RUNTIME=OCL" - "-DDNNL_LIBRARY_NAME=onednn_gpu" - "-DCMAKE_INSTALL_PREFIX=${ONEDNN_INSTALL_DIR}" - "-DCMAKE_INSTALL_LIBDIR=lib/$" - "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" - "-DDNNL_ENABLE_CONCURRENT_EXEC=ON" - "-DDNNL_ENABLE_PRIMITIVE_CACHE=OFF" - "-DDNNL_ENABLE_JIT_PROFILING=${BUILD_SHARED_LIBS}" - "-DDNNL_ENABLE_ITT_TASKS=${BUILD_SHARED_LIBS}" - "-DDNNL_BUILD_TESTS=OFF" - "-DDNNL_BUILD_EXAMPLES=OFF" - "-DDNNL_BLAS_VENDOR=NONE" - "-DDNNL_LIBRARY_TYPE=STATIC" - "-DOpenCL_LIBRARY=${OpenCL_LIBRARY}" - "-DOpenCL_INCLUDE_DIR=${OpenCL_INCLUDE_DIR}" - "-DOPENCL_VERSION_2_2=${OPENCL_VERSION_2_2}" - ) - add_library(onednn_gpu_tgt INTERFACE) - set_target_properties(onednn_gpu_tgt PROPERTIES - INTERFACE_LINK_DIRECTORIES "${ONEDNN_INSTALL_DIR}/lib/$" - INTERFACE_LINK_LIBRARIES "onednn_gpu" - INTERFACE_INCLUDE_DIRECTORIES "${ONEDNN_INSTALL_DIR}/include" - INTERFACE_COMPILE_DEFINITIONS ENABLE_ONEDNN_FOR_GPU - ) - add_dependencies(onednn_gpu_tgt onednn_gpu_build) - # TODO: install onednn_gpu in static builds - endfunction() - build_onednn_gpu() -endif() - # # nlohmann json #