@@ -418,38 +418,34 @@ list(APPEND NVFUSER_SRCS
418418 ${NVFUSER_SRCS_DIR} /validator_utils.cpp
419419)
420420
421- cmake_dependent_option(NVFUSER_HOST_IR_JIT "Build nvFuser with LLVM" ON "USE_HOST_IR_JIT" OFF )
422-
423-
424- message (STATUS "Setting NVFUSER_HOST_IR_JIT=${NVFUSER_HOST_IR_JIT} " )
425-
426- if (NVFUSER_HOST_IR_JIT)
427- add_compile_definitions (NVFUSER_HOST_IR_JIT)
428- # Add LLVM JIT related dependencies
429- find_package (LLVM 18.1 REQUIRED CONFIG)
430- llvm_map_components_to_libnames(LLVM_LIBS
431- support
432- core
433- orcjit
434- executionengine
435- irreader
436- nativecodegen
437- Target
438- Analysis
439- JITLink
440- Demangle
441- )
421+ # Add LLVM JIT related dependencies
422+ set (LLVM_MINIMUM_VERSION "18.1" )
423+ find_package (LLVM REQUIRED CONFIG)
424+ if (${LLVM_VERSION} VERSION_LESS ${LLVM_MINIMUM_VERSION} )
425+ message (FATAL_ERROR "LLVM ${LLVM_VERSION} does not meet the minimum version required: ${LLVM_MINIMUM_VERSION} " )
426+ endif ()
427+ llvm_map_components_to_libnames(LLVM_LIBS
428+ support
429+ core
430+ orcjit
431+ executionengine
432+ irreader
433+ nativecodegen
434+ Target
435+ Analysis
436+ JITLink
437+ Demangle
438+ )
442439
443- add_library (LLVM_JIT INTERFACE )
444- target_include_directories (LLVM_JIT INTERFACE ${LLVM_INCLUDE_DIRS} )
445- target_compile_definitions (LLVM_JIT INTERFACE ${LLVM_DEFINITIONS} )
446- target_link_libraries (LLVM_JIT INTERFACE ${LLVM_LIBS} )
440+ add_library (LLVM_JIT INTERFACE )
441+ target_include_directories (LLVM_JIT SYSTEM INTERFACE ${LLVM_INCLUDE_DIRS} )
442+ target_compile_definitions (LLVM_JIT INTERFACE ${LLVM_DEFINITIONS} )
443+ target_link_libraries (LLVM_JIT INTERFACE ${LLVM_LIBS} )
447444
448- # Add LLVM JIT related sources
449- list (APPEND NVFUSER_SRCS
450- ${NVFUSER_SRCS_DIR} /host_ir/jit.cpp
451- )
452- endif ()
445+ # Add LLVM JIT related sources
446+ list (APPEND NVFUSER_SRCS
447+ ${NVFUSER_SRCS_DIR} /host_ir/jit.cpp
448+ )
453449
454450# We don't link CUPTI for MSVC
455451if (NOT MSVC )
@@ -545,9 +541,7 @@ if (BUILD_CUTLASS AND CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 12.8)
545541 target_compile_definitions (codegen_internal PRIVATE "-DNVFUSER_CUTLASS_KERNEL_ENABLED" )
546542endif ()
547543
548- if (NVFUSER_HOST_IR_JIT)
549- target_link_libraries (codegen_internal PUBLIC LLVM_JIT)
550- endif ()
544+ target_link_libraries (codegen_internal PUBLIC LLVM_JIT)
551545
552546add_library (nvfuser_codegen SHARED $<TARGET_OBJECTS:codegen_internal>)
553547
@@ -582,8 +576,7 @@ target_include_directories(nvfuser_codegen SYSTEM PUBLIC
582576)
583577target_link_libraries (nvfuser_codegen
584578 PUBLIC ${TORCH_LIBRARIES}
585- PRIVATE dynamic_type flatbuffers ${CUDA_NVRTC_LIB} CUDA::cupti dl
586- $<$<BOOL :${NVFUSER_HOST_IR_JIT} >:LLVM_JIT>
579+ PRIVATE dynamic_type flatbuffers ${CUDA_NVRTC_LIB} CUDA::cupti dl LLVM_JIT
587580)
588581set_target_properties (nvfuser_codegen PROPERTIES
589582 C_STANDARD ${NVFUSER_C_STANDARD}
@@ -1240,15 +1233,13 @@ if(BUILD_TEST)
12401233 add_test (test_host_ir "${HOSTIR_TEST_SRCS} " "" )
12411234 list (APPEND TEST_BINARIES test_host_ir)
12421235
1243- if (NVFUSER_HOST_IR_JIT)
1244- set (LLVM_COMPILE_TEST_SRCS)
1245- list (APPEND LLVM_COMPILE_TEST_SRCS
1246- ${NVFUSER_ROOT} /tests/cpp/test_host_ir_jit.cpp
1247- )
1248- add_test (test_host_ir_jit "${LLVM_COMPILE_TEST_SRCS} " "" )
1249- target_link_libraries (test_host_ir_jit PUBLIC LLVM_JIT)
1250- list (APPEND TEST_BINARIES test_host_ir_jit)
1251- endif ()
1236+ set (LLVM_COMPILE_TEST_SRCS)
1237+ list (APPEND LLVM_COMPILE_TEST_SRCS
1238+ ${NVFUSER_ROOT} /tests/cpp/test_host_ir_jit.cpp
1239+ )
1240+ add_test (test_host_ir_jit "${LLVM_COMPILE_TEST_SRCS} " "" )
1241+ target_link_libraries (test_host_ir_jit PUBLIC LLVM_JIT)
1242+ list (APPEND TEST_BINARIES test_host_ir_jit)
12521243
12531244
12541245 # We don't link CUPTI for MSVC
@@ -1493,7 +1484,6 @@ endif()
14931484message (STATUS " NVFUSER_STANDALONE_BUILD_WITH_UCC : ${NVFUSER_STANDALONE_BUILD_WITH_UCC} " )
14941485message (STATUS " NVFUSER_BUILD_WITH_ASAN : ${NVFUSER_BUILD_WITH_ASAN} " )
14951486message (STATUS " NVFUSER_DISTRIBUTED : ${NVFUSER_DISTRIBUTED} " )
1496- message (STATUS " NVFUSER_HOST_IR_JIT : ${NVFUSER_HOST_IR_JIT} " )
14971487message (STATUS " NVFUSER_CPP_STANDARD : ${NVFUSER_CPP_STANDARD} " )
14981488message (STATUS " NVMMH_INCLUDE_DIR : ${NVMMH_INCLUDE_DIR} " )
14991489message (STATUS "******** End of Nvfuser configuration summary ********" )
0 commit comments