Skip to content

Commit

Permalink
Uinfy cpu&xpu oneDNN cmake
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhiweiYan-96 committed Dec 22, 2023
1 parent 2d01186 commit 871ac78
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 41 deletions.
5 changes: 0 additions & 5 deletions cmake/Dependencies.cmake
Expand Up @@ -1765,11 +1765,6 @@ if(NOT INTERN_BUILD_MOBILE)
message(WARNING "MKLDNN could not be found.")
caffe2_update_option(USE_MKLDNN OFF)
endif()

# Build mkldnn for Intel GPU
if(USE_XPU)
include(${CMAKE_CURRENT_LIST_DIR}/External/XPUMKLDNN.cmake)
endif()
else()
message("disabling MKLDNN because USE_MKLDNN is not set")
endif()
Expand Down
36 changes: 0 additions & 36 deletions cmake/External/XPUMKLDNN.cmake

This file was deleted.

41 changes: 41 additions & 0 deletions cmake/Modules/FindMKLDNN.cmake
Expand Up @@ -18,6 +18,47 @@ IF(NOT MKLDNN_FOUND)

SET(IDEEP_ROOT "${PROJECT_SOURCE_DIR}/third_party/ideep")
SET(MKLDNN_ROOT "${PROJECT_SOURCE_DIR}/third_party/ideep/mkl-dnn")

if(USE_XPU) # Build oneDNN GPU library
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(DNNL_HOST_COMPILER "g++")
# g++ is soft linked to /usr/bin/cxx, oneDNN woule not treat it as an absolute path
else()
set(DNNL_HOST_COMPILER DEFAULT)
endif()

set(MAKE_COMMAND "cmake" "--build" ".")
ExternalProject_Add(xpu_mkldnn_proj
SOURCE_DIR ${MKLDNN_ROOT}
BUILD_IN_SOURCE 0
CMAKE_ARGS -DCMAKE_C_COMPILER=icx
-DCMAKE_CXX_COMPILER=icpx
-DCMAKE_CXX_COMPILER_ID=IntelLLVM
-DDNNL_GPU_RUNTIME=SYCL
-DDNNL_CPU_RUNTIME=THREADPOOL
-DDNNL_BUILD_TESTS=OFF
-DDNNL_BUILD_EXAMPLES=OFF
-DDNNL_LIBRARY_TYPE=STATIC
-DDNNL_DPCPP_HOST_COMPILER=${DNNL_HOST_COMPILER} # Use global cxx compiler as host compiler
-G ${CMAKE_GENERATOR} # Align Generator to Torch
BUILD_COMMAND ${MAKE_COMMAND}
INSTALL_COMMAND ""
)

ExternalProject_Get_Property(xpu_mkldnn_proj BINARY_DIR)
set(__XPU__MKLDNN_BUILD_DIR ${BINARY_DIR})
set(XPU_MKLDNN_LIBRARIES ${__XPU_MKLDNN_BUILD_DIR}/src/libdnnl.a)
set(XPU_MKLDNN_INCLUDE ${__XPU_MKLDNN_BUILD_DIR}/src/include)
set(xpu_mkldnn_dep xpu_mkldnn_proj)
# This target would be further linked to libtorch_xpu.so.
# The libtorch_xpu.so would contain Conv&GEMM operators that depend on
# oneDNN primitive implementations inside libdnnl.a.
add_library(xpu_mkldnn INTERFACE)
add_dependencies(xpu_mkldnn xpu_mkldnn_dep)
target_link_libraries(xpu_mkldnn INTERFACE ${__XPU_MKLDNN_BUILD_DIR}/src/libdnnl.a)
target_include_directories(xpu_mkldnn INTERFACE ${XPU_MKLDNN_INCLUDE})
endif()

IF(NOT APPLE AND NOT WIN32 AND NOT BUILD_LITE_INTERPRETER)
MESSAGE("-- Will build oneDNN Graph")
SET(LLGA_ROOT "${PROJECT_SOURCE_DIR}/third_party/ideep/mkl-dnn")
Expand Down

0 comments on commit 871ac78

Please sign in to comment.