Files
paddlepaddle--paddle/paddle/phi/backends/dynload/CMakeLists.txt
T
2026-07-13 12:40:42 +08:00

196 lines
4.1 KiB
CMake

set(DYNLOAD_COMMON_SRCS dynamic_loader.cc warpctc.cc warprnnt.cc lapack.cc)
if(WITH_ASCEND_CL)
list(REMOVE_ITEM DYNLOAD_COMMON_SRCS warprnnt.cc)
endif()
if(WIN32)
list(
APPEND
CUDA_SRCS
cublasLt.cc
curand.cc
cusolver.cc
cusparse.cc
nvtx.cc
cufft.cc
cutlass_conv2d.cc
cutlass_gemm_epilogue.cc)
nv_library(
dynload_cudnn static
SRCS cudnn.cc
DEPS dynload_common)
nv_library(
dynload_cublas static
SRCS cublas.cc
DEPS dynload_common)
else()
list(
APPEND
CUDA_SRCS
cublas.cc
cublasLt.cc
cudnn.cc
curand.cc
cusolver.cc
cusparse.cc
nvtx.cc
cufft.cc
cutlass_conv2d.cc
cutlass_gemm_epilogue.cc)
endif()
if(NOT WITH_NV_JETSON)
list(APPEND CUDA_SRCS nvjpeg.cc)
endif()
if(WITH_ROCM)
list(
APPEND
HIP_SRCS
rocblas.cc
hipblasLt.cc
miopen.cc
hiprand.cc
hipfft.cc
rocsparse.cc
rocsolver.cc)
endif()
if(WITH_XPU_FFT)
list(APPEND XPU_SRCS xpufft.cc)
endif()
# There is no macOS version of NCCL.
# Disable nvrtc and cuda_driver api on macOS, and only do an early test on Linux and Windows.
if(NOT APPLE)
if(WIN32)
list(APPEND CUDA_SRCS nvrtc.cc)
if(WITH_GPU)
nv_library(
dynload_cuda static
SRCS cuda_driver.cc
DEPS dynload_common)
endif()
else()
list(APPEND CUDA_SRCS nvrtc.cc cuda_driver.cc)
endif()
if(WITH_NCCL)
list(APPEND CUDA_SRCS nccl.cc)
endif()
if(WITH_ROCM)
list(APPEND HIP_SRCS hiprtc.cc rocm_driver.cc)
if(WITH_RCCL)
list(APPEND HIP_SRCS rccl.cc)
endif()
if(CUPTI_FOUND)
list(APPEND HIP_SRCS cupti.cc)
endif()
endif()
endif()
if(TENSORRT_FOUND)
if(WIN32)
if(WITH_GPU)
nv_library(
dynload_tensorrt static
SRCS tensorrt.cc
DEPS)
endif()
else()
list(APPEND CUDA_SRCS tensorrt.cc)
endif()
endif()
if(CUSPARSELT_FOUND)
list(APPEND CUDA_SRCS cusparseLt.cc)
endif()
configure_file(cupti_lib_path.h.in ${CMAKE_CURRENT_BINARY_DIR}/cupti_lib_path.h)
if(CUPTI_FOUND)
list(APPEND CUDA_SRCS cupti.cc)
endif()
if(WITH_MKLML)
# Only deps libmklml.so, not link
add_library(dynload_mklml STATIC mklml.cc)
add_dependencies(dynload_mklml mklml)
if(WIN32)
target_link_libraries(dynload_mklml ${MKLML_IOMP_LIB})
else()
target_link_libraries(dynload_mklml
"-L${MKLML_LIB_DIR} -liomp5 -Wl,--as-needed")
endif()
endif()
if(WITH_HML)
# Only deps libhml_rt.so, not link
add_library(dynload_hml STATIC hml.cc)
add_dependencies(dynload_hml hml)
if(WIN32)
message(FATAL_ERROR "HML is not supported on Windows")
else()
target_link_libraries(dynload_hml "-L${HML_LIB_DIR} -lgomp -Wl,--as-needed")
endif()
endif()
if(WITH_XPU)
if(CUPTI_FOUND)
collect_srcs(backends_srcs SRCS xpti.cc nvtx.cc cupti.cc)
else()
collect_srcs(backends_srcs SRCS xpti.cc nvtx.cc)
endif()
endif()
if(WITH_FLAGCX)
collect_srcs(backends_srcs SRCS flagcx.cc)
endif()
if(WITH_FLASHATTN)
list(APPEND DYNLOAD_COMMON_SRCS flashattn.cc)
endif()
if(WITH_FLASHATTN_V3)
list(APPEND DYNLOAD_COMMON_SRCS flashattnv3.cc)
list(APPEND DYNLOAD_COMMON_SRCS flashmaskv2.cc)
endif()
if(MKL_FOUND AND WITH_ONEMKL)
message("ONEMKL INCLUDE directory is ${MKL_INCLUDE}")
list(APPEND DYNLOAD_COMMON_SRCS mklrt.cc)
endif()
if(WITH_MAGMA)
list(APPEND DYNLOAD_COMMON_SRCS magma.cc)
endif()
if(WITH_ROCM)
collect_srcs(backends_srcs SRCS ${DYNLOAD_COMMON_SRCS} ${HIP_SRCS})
elseif(WITH_GPU)
if(WIN32)
nv_library(
dynload_common static
SRCS ${DYNLOAD_COMMON_SRCS}
DEPS warpctc)
collect_srcs(backends_srcs SRCS ${CUDA_SRCS})
else()
collect_srcs(backends_srcs SRCS ${DYNLOAD_COMMON_SRCS} ${CUDA_SRCS})
endif()
elseif(WITH_XPU_FFT)
collect_srcs(backends_srcs SRCS ${DYNLOAD_COMMON_SRCS} ${XPU_SRCS})
else()
if(WIN32)
cc_library(
dynload_common static
SRCS ${DYNLOAD_COMMON_SRCS}
DEPS warpctc)
else()
collect_srcs(backends_srcs SRCS ${DYNLOAD_COMMON_SRCS})
endif()
endif()
if(WITH_CUDNN_FRONTEND)
nv_test(
cudnn_frontend_test
SRCS cudnn_frontend_test.cc
DEPS phi common cudnn-frontend)
endif()