[MLIR] Split out GPU ops library from Transforms

Split out GPU ops library from GPU transforms. This allows libraries to
depend on GPU Ops without needing/building its transforms.

Differential Revision: https://reviews.llvm.org/D105472
This commit is contained in:
Uday Bondhugula 2021-06-23 10:17:46 +05:30
parent 593bf9b4de
commit 4acf3807e3
15 changed files with 41 additions and 27 deletions

View file

@ -23,7 +23,7 @@ add_mlir_public_c_api_library(MLIRCAPIGPU
LINK_LIBS PUBLIC
MLIRCAPIIR
MLIRGPU
MLIRGPUTransforms
MLIRPass
)

View file

@ -30,7 +30,7 @@ add_mlir_conversion_library(MLIRGPUToGPURuntimeTransforms
LINK_LIBS PUBLIC
MLIRAsyncToLLVM
MLIRGPU
MLIRGPUTransforms
MLIRIR
MLIRLLVMIR
MLIRPass

View file

@ -11,7 +11,7 @@ add_mlir_conversion_library(MLIRGPUToNVVMTransforms
MLIRGPUToNVVMIncGen
LINK_LIBS PUBLIC
MLIRGPU
MLIRGPUOps
MLIRGPUToGPURuntimeTransforms
MLIRLLVMIR
MLIRMemRef

View file

@ -10,7 +10,7 @@ add_mlir_conversion_library(MLIRGPUToROCDLTransforms
MLIRGPUToROCDLIncGen
LINK_LIBS PUBLIC
MLIRGPU
MLIRGPUOps
MLIRGPUToGPURuntimeTransforms
MLIRLLVMIR
MLIRROCDLIR

View file

@ -6,7 +6,7 @@ add_mlir_conversion_library(MLIRGPUToSPIRV
MLIRConversionPassIncGen
LINK_LIBS PUBLIC
MLIRGPU
MLIRGPUOps
MLIRIR
MLIRPass
MLIRSCFToSPIRV

View file

@ -6,7 +6,7 @@ add_mlir_conversion_library(MLIRGPUToVulkanTransforms
MLIRConversionPassIncGen
LINK_LIBS PUBLIC
MLIRGPU
MLIRGPUOps
MLIRIR
MLIRLLVMIR
MLIRPass

View file

@ -12,7 +12,7 @@ add_mlir_conversion_library(MLIRSCFToGPU
MLIRAffine
MLIRAffineToStandard
MLIRComplex
MLIRGPU
MLIRGPUTransforms
MLIRIR
MLIRLinalg
MLIRMemRef

View file

@ -11,7 +11,7 @@ add_mlir_conversion_library(MLIRSPIRVToLLVM
intrinsics_gen
LINK_LIBS PUBLIC
MLIRGPU
MLIRGPUOps
MLIRSPIRV
MLIRSPIRVUtils
MLIRLLVMIR

View file

@ -8,7 +8,7 @@ add_mlir_conversion_library(MLIRVectorToGPU
Core
LINK_LIBS PUBLIC
MLIRGPU
MLIRGPUOps
MLIRLLVMIR
MLIRMemRef
MLIRTransforms

View file

@ -16,8 +16,25 @@ if (MLIR_ENABLE_ROCM_CONVERSIONS)
)
endif()
add_mlir_dialect_library(MLIRGPU
add_mlir_dialect_library(MLIRGPUOps
IR/GPUDialect.cpp
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/GPU
DEPENDS
MLIRGPUOpsIncGen
MLIRGPUOpInterfacesIncGen
LINK_LIBS PUBLIC
MLIRDLTI
MLIRIR
MLIRMemRef
MLIRSideEffectInterfaces
MLIRSupport
)
add_mlir_dialect_library(MLIRGPUTransforms
Transforms/AllReduceLowering.cpp
Transforms/AsyncRegionRewriter.cpp
Transforms/KernelOutlining.cpp
@ -37,8 +54,6 @@ add_mlir_dialect_library(MLIRGPU
${AMDGPU_LIBS}
DEPENDS
MLIRGPUOpsIncGen
MLIRGPUOpInterfacesIncGen
MLIRGPUPassIncGen
MLIRParallelLoopMapperAttrGen
MLIRParallelLoopMapperEnumsGen
@ -46,14 +61,13 @@ add_mlir_dialect_library(MLIRGPU
LINK_LIBS PUBLIC
MLIRAsync
MLIRDataLayoutInterfaces
MLIRDLTI
MLIRGPUOps
MLIRIR
MLIRMemRef
MLIRLLVMIR
MLIRLLVMToLLVMIRTranslation
MLIRSCF
MLIRMemRef
MLIRPass
MLIRSideEffectInterfaces
MLIRSCF
MLIRStandard
MLIRSupport
MLIRTransformUtils
@ -77,20 +91,20 @@ if(MLIR_ENABLE_CUDA_RUNNER)
endif()
# Enable gpu-to-cubin pass.
target_compile_definitions(obj.MLIRGPU
target_compile_definitions(obj.MLIRGPUTransforms
PRIVATE
MLIR_GPU_TO_CUBIN_PASS_ENABLE=1
)
# Add CUDA headers includes and the libcuda.so library.
target_include_directories(obj.MLIRGPU
target_include_directories(obj.MLIRGPUTransforms
PRIVATE
${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
)
find_library(CUDA_DRIVER_LIBRARY cuda)
target_link_libraries(MLIRGPU
target_link_libraries(MLIRGPUTransforms
PRIVATE
MLIRNVVMToLLVMIRTranslation
${CUDA_DRIVER_LIBRARY}
@ -126,21 +140,21 @@ if(MLIR_ENABLE_ROCM_RUNNER)
message(STATUS "ROCm HIP version: ${HIP_VERSION}")
endif()
target_compile_definitions(obj.MLIRGPU
target_compile_definitions(obj.MLIRGPUOps
PRIVATE
__HIP_PLATFORM_HCC__
__ROCM_PATH__="${ROCM_PATH}"
MLIR_GPU_TO_HSACO_PASS_ENABLE=1
)
target_include_directories(obj.MLIRGPU
target_include_directories(obj.MLIRGPUOps
PRIVATE
${MLIR_SOURCE_DIR}/../lld/include
${HIP_PATH}/include
${ROCM_PATH}/include
)
target_link_libraries(MLIRGPU
target_link_libraries(MLIRGPUOps
PRIVATE
lldELF
MLIRROCDLToLLVMIRTranslation

View file

@ -10,7 +10,7 @@ add_mlir_library(MLIRGPUTestPasses
LINK_LIBS PUBLIC
MLIRAffine
MLIRGPU
MLIRGPUOps
MLIRGPUToGPURuntimeTransforms
MLIRLLVMToLLVMIRTranslation
MLIRNVVMIR

View file

@ -12,7 +12,7 @@ add_mlir_library(MLIRLinalgTestPasses
LINK_LIBS PUBLIC
MLIRAffine
MLIRGPU
MLIRGPUTransforms
MLIRLinalg
MLIRLinalgTransforms
MLIRLLVMToLLVMIRTranslation

View file

@ -12,7 +12,7 @@ add_mlir_library(MLIRSPIRVTestPasses
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
LINK_LIBS PUBLIC
MLIRGPU
MLIRGPUOps
MLIRIR
MLIRPass
MLIRSPIRV

View file

@ -17,7 +17,7 @@ if (MLIR_SPIRV_CPU_RUNNER_ENABLED)
${conversion_libs}
MLIRAnalysis
MLIRExecutionEngine
MLIRGPU
MLIRGPUOps
MLIRIR
MLIRJitRunner
MLIRLLVMIR

View file

@ -57,7 +57,7 @@ if (MLIR_ENABLE_VULKAN_RUNNER)
${conversion_libs}
MLIRAnalysis
MLIRExecutionEngine
MLIRGPU
MLIRGPUOps
MLIRIR
MLIRJitRunner
MLIRLLVMIR