Skip to content

Commit 5119b56

Browse files
author
wangziyang
committed
init sycl support from rel-0.10
1 parent da7b48f commit 5119b56

File tree

19 files changed

+2657
-5
lines changed

19 files changed

+2657
-5
lines changed

3rdparty/vta-hw

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 36a91576edf633479c78649e050f18dd2ddc8103

CMakeLists.txt

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ include(cmake/utils/FindVulkan.cmake)
1111
include(cmake/utils/FindLLVM.cmake)
1212
include(cmake/utils/FindROCM.cmake)
1313
include(cmake/utils/FindEthosN.cmake)
14+
include(cmake/utils/FindSYCL.cmake)
1415

1516
if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/config.cmake)
1617
include(${CMAKE_CURRENT_BINARY_DIR}/config.cmake)
@@ -28,6 +29,8 @@ tvm_option(USE_CUDA "Build with CUDA" OFF)
2829
tvm_option(USE_OPENCL "Build with OpenCL" OFF)
2930
tvm_option(USE_OPENCL_GTEST "Path to OpenCL specific gtest version for runtime cpp tests." /path/to/opencl/gtest)
3031
tvm_option(USE_VULKAN "Build with Vulkan" OFF)
32+
tvm_option(USE_SYCL "Build with SYCL" OFF)
33+
# tvm_option(USE_SYCL_GTEST "Path to SYCL specific gtest version for runtime cpp tests." "/home/wzy/app/googletest-build-release-1.10")
3134

3235

3336
# Whether to use spirv-tools.and SPIRV-Headers from Khronos github or gitlab.
@@ -474,6 +477,7 @@ include(cmake/modules/Metal.cmake)
474477
include(cmake/modules/ROCM.cmake)
475478
include(cmake/modules/LLVM.cmake)
476479
include(cmake/modules/Micro.cmake)
480+
include(cmake/modules/SYCL.cmake)
477481
include(cmake/modules/contrib/EthosN.cmake)
478482
include(cmake/modules/contrib/CMSISNN.cmake)
479483
include(cmake/modules/contrib/EthosU.cmake)
@@ -524,7 +528,20 @@ add_library(tvm_objs OBJECT ${COMPILER_SRCS})
524528
add_library(tvm_runtime_objs OBJECT ${RUNTIME_SRCS})
525529
add_library(tvm_libinfo_objs OBJECT ${LIBINFO_FILE})
526530

527-
add_library(tvm SHARED $<TARGET_OBJECTS:tvm_objs> $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
531+
# add_library(tvm SHARED $<TARGET_OBJECTS:tvm_objs> $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
532+
533+
if(USE_SYCL)
534+
if(USE_SYCL_CUDA)
535+
set(CMAKE_CXX_FLAGS "-fsycl -fsycl-targets=nvptx64-nvidia-cuda ${CMAKE_CXX_FLAGS}")
536+
elseif(USE_SYCL_HIP)
537+
set(CMAKE_CXX_FLAGS "-fsycl -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx908 ${CMAKE_CXX_FLAGS}")
538+
endif()
539+
add_library(tvm_sycl_runtime_objs OBJECT ${SYCL_RUNTIME_SRCS})
540+
add_library(tvm SHARED $<TARGET_OBJECTS:tvm_objs> $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_sycl_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
541+
else()
542+
add_library(tvm SHARED $<TARGET_OBJECTS:tvm_objs> $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
543+
endif()
544+
528545
target_include_directories(tvm PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
529546
set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS}")
530547
set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}")
@@ -537,7 +554,11 @@ if(BUILD_STATIC_RUNTIME)
537554
add_custom_command(TARGET tvm_runtime POST_BUILD
538555
COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --yellow --bold ${NOTICE})
539556
else()
540-
add_library(tvm_runtime SHARED $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
557+
if(USE_SYCL)
558+
add_library(tvm_runtime SHARED $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_sycl_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
559+
else()
560+
add_library(tvm_runtime SHARED $<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
561+
endif()
541562
set_property(TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS "${TVM_NO_UNDEFINED_SYMBOLS}")
542563
endif()
543564
target_include_directories(tvm_runtime PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
@@ -630,6 +651,20 @@ if(USE_OPENCL AND DEFINED USE_OPENCL_GTEST AND EXISTS ${USE_OPENCL_GTEST})
630651
message(STATUS "Found OpenCL gtest at ${USE_OPENCL_GTEST}")
631652
endif()
632653

654+
if(USE_SYCL AND DEFINED USE_SYCL_GTEST AND EXISTS ${USE_SYCL_GTEST})
655+
include(FetchContent)
656+
FetchContent_Declare(googletest SOURCE_DIR "${USE_SYCL_GTEST}")
657+
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
658+
FetchContent_MakeAvailable(googletest)
659+
target_include_directories(tvm_runtime PRIVATE "${USE_SYCL_GTEST}/lib")
660+
target_include_directories(tvm PRIVATE "${GTEST_LIBS}/lib")
661+
target_link_libraries(tvm_runtime PUBLIC gtest gtest_main)
662+
target_link_libraries(tvm PUBLIC gtest gtest_main)
663+
include_directories("${USE_SYCL_GTEST}/include")
664+
message(STATUS "Using SYCL gtest include at ${USE_SYCL_GTEST}/include")
665+
message(STATUS "Using SYCL gtest library at ${USE_SYCL_GTEST}/lib")
666+
endif()
667+
633668
# Set flags for clang
634669
include(cmake/modules/ClangFlags.cmake)
635670
set(CRC16_INCLUDE_PATH "3rdparty/libcrc/include")

0 commit comments

Comments
 (0)