[CI] Various improvements to CI (#137)
Add clean-up before CI runs. Now using static LLVM-11 libraries from system rather than recompilation. Still no run-time LLVM dependencies
This commit is contained in:
committed by
Philippe Tillet
parent
298aead378
commit
8eb63bcb01
@@ -22,48 +22,24 @@ endif()
|
||||
|
||||
# Compiler flags
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_FORMAT_MACROS -fvisibility=default -std=gnu++17")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_FORMAT_MACROS -std=gnu++17")
|
||||
|
||||
|
||||
# if(APPLE)
|
||||
# set(CMAKE_OSX_SYSROOT "/")
|
||||
# set(CMAKE_OSX_DEPLOYMENT_TARGET "")
|
||||
# endif()
|
||||
|
||||
|
||||
##########
|
||||
# LLVM
|
||||
##########
|
||||
get_cmake_property(_variableNames VARIABLES)
|
||||
set(__variableNames ${_variableNames})
|
||||
|
||||
configure_file(cmake/DownloadLLVM.in ${TRITON_LLVM_BUILD_DIR}/llvm-download/CMakeLists.txt)
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
||||
WORKING_DIRECTORY "${TRITON_LLVM_BUILD_DIR}/llvm-download"
|
||||
)
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
|
||||
WORKING_DIRECTORY "${TRITON_LLVM_BUILD_DIR}/llvm-download"
|
||||
)
|
||||
set(LLVM_TARGETS_TO_BUILD "NVPTX" CACHE INTERNAL "")
|
||||
set(LLVM_BUILD_RUNTIME "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_BUILD_RUNTIMES "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_BUILD_TOOLS "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_BUILD_UTILS "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_INCLUDE_BENCHMARKS "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_INCLUDE_DOCS "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_INCLUDE_EXAMPLES "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_INCLUDE_GO_TESTS "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_INCLUDE_RUNTIME "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_INCLUDE_TESTS "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_INCLUDE_TOOLS "OFF" CACHE INTERNAL "")
|
||||
set(LLVM_INCLUDE_UTILS "OFF" CACHE INTERNAL "")
|
||||
add_subdirectory(${TRITON_LLVM_BUILD_DIR}/llvm-src
|
||||
${TRITON_LLVM_BUILD_DIR}/llvm-build)
|
||||
get_property(LLVM_LIBRARIES GLOBAL PROPERTY LLVM_COMPONENT_LIBS)
|
||||
# remove LLVM-specific variables so we don't pollute GUI
|
||||
get_cmake_property(_variableNames VARIABLES)
|
||||
list(REMOVE_ITEM _variableNames ${__variableNames})
|
||||
list(REMOVE_ITEM _variableNames ${LLVM_LIBRARIES})
|
||||
foreach (_variableName ${_variableNames})
|
||||
unset(${_variableName} CACHE)
|
||||
endforeach()
|
||||
include_directories("${TRITON_LLVM_BUILD_DIR}/llvm-build/include/"
|
||||
"${TRITON_LLVM_BUILD_DIR}/llvm-src/include/")
|
||||
find_package(LLVM 11 REQUIRED COMPONENTS "nvptx")
|
||||
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
|
||||
include_directories("${LLVM_INCLUDE_DIRS}")
|
||||
if(APPLE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
|
||||
endif()
|
||||
|
||||
# Python module
|
||||
if(BUILD_PYTHON_MODULE)
|
||||
@@ -87,8 +63,15 @@ endif()
|
||||
# Triton
|
||||
file(GLOB_RECURSE LIBTRITON_SRC lib/*.cc)
|
||||
add_library(triton SHARED ${LIBTRITON_SRC} ${PYTHON_SRC})
|
||||
target_link_libraries(triton ${LLVM_LIBRARIES})
|
||||
target_link_options(triton PRIVATE ${LLVM_LDFLAGS})
|
||||
target_link_libraries(triton ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
|
||||
message(STATUS ${LLVM_LDFLAGS})
|
||||
|
||||
if(BUILD_PYTHON_MODULE)
|
||||
target_link_libraries(triton ${TORCH_LIBRARIES} ${CUTLASS_LIBRARIES})
|
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
|
||||
# Check if the platform is MacOS
|
||||
if(APPLE)
|
||||
set(PYTHON_LDFLAGS "-undefined dynamic_lookup -flto")
|
||||
endif()
|
||||
target_link_libraries(triton ${CUTLASS_LIBRARIES} ${PYTHON_LDFLAGS})
|
||||
endif()
|
||||
|
Reference in New Issue
Block a user