1. Add option WITH_AMD_GPU. 2. Add cmake/hip.cmake for HIP toolchain. 3. Some external module such as eigen may need HIP port. 4. Add macro hip_library/hip_binary/hip_test to cmake/generic.cmake. 5. Add one HIP source concat.hip.cu as an example. Each .cu may have its corresponding .hip.cu.helinwang-patch-1
parent
6d4a06f26b
commit
45c988d86a
@ -0,0 +1,46 @@
|
||||
if(NOT WITH_AMD_GPU)
|
||||
return()
|
||||
endif()
|
||||
|
||||
include_directories("/opt/rocm/include")
|
||||
include_directories("/opt/rocm/hipblas/include")
|
||||
include_directories("/opt/rocm/hiprand/include")
|
||||
include_directories("/opt/rocm/rocrand/include")
|
||||
include_directories("/opt/rocm/rccl/include")
|
||||
include_directories("/opt/rocm/thrust")
|
||||
|
||||
list(APPEND EXTERNAL_LIBS "-L/opt/rocm/lib/ -lhip_hcc")
|
||||
|
||||
set(HIP_HCC_FLAGS "${HIP_HCC_FLAGS} -fPIC -DPADDLE_WITH_HIP -std=c++14" )
|
||||
|
||||
if(WITH_DSO)
|
||||
set(HIP_HCC_FLAGS "${HIP_HCC_FLAGS} -DPADDLE_USE_DSO")
|
||||
endif(WITH_DSO)
|
||||
|
||||
if(WITH_DOUBLE)
|
||||
set(HIP_HCC_FLAGS "${HIP_HCC_FLAGS} -DPADDLE_TYPE_DOUBLE")
|
||||
endif(WITH_DOUBLE)
|
||||
|
||||
if(WITH_TESTING)
|
||||
set(HIP_HCC_FLAGS "${HIP_HCC_FLAGS} -DPADDLE_WITH_TESTING")
|
||||
endif(WITH_TESTING)
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
list(APPEND HIP_HCC_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
# Disable optimization since one eigen symbol will be removed in math_function.cu
|
||||
#list(APPEND HIP_HCC_FLAGS ${CMAKE_CXX_FLAGS_RELEASE})
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
||||
list(APPEND HIP_HCC_FLAGS ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
|
||||
list(APPEND HIP_HCC_FLAGS ${CMAKE_CXX_FLAGS_MINSIZEREL})
|
||||
endif()
|
||||
|
||||
if("x${HCC_HOME}" STREQUAL "x")
|
||||
set(HCC_HOME "/opt/rocm/hcc")
|
||||
endif()
|
||||
|
||||
set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -shared")
|
||||
set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -shared")
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,16 @@
|
||||
if(WITH_PYTHON)
|
||||
cc_library(paddle_pybind SHARED
|
||||
SRCS pybind.cc exception.cc protobuf.cc const_value.cc recordio.cc
|
||||
DEPS pybind python backward proto_desc paddle_memory executor prune init profiler feed_fetch_method
|
||||
${GLOB_OP_LIB})
|
||||
if(NOT APPLE AND NOT ANDROID)
|
||||
target_link_libraries(paddle_pybind rt)
|
||||
endif(NOT APPLE AND NOT ANDROID)
|
||||
if(WITH_AMD_GPU)
|
||||
hip_library(paddle_pybind SHARED
|
||||
SRCS pybind.cc exception.cc protobuf.cc const_value.cc
|
||||
DEPS pybind python backward proto_desc paddle_memory executor prune init profiler feed_fetch_method
|
||||
${GLOB_OP_LIB})
|
||||
else()
|
||||
cc_library(paddle_pybind SHARED
|
||||
SRCS pybind.cc exception.cc protobuf.cc const_value.cc
|
||||
DEPS pybind python backward proto_desc paddle_memory executor prune init profiler feed_fetch_method
|
||||
${GLOB_OP_LIB})
|
||||
if(NOT APPLE AND NOT ANDROID)
|
||||
target_link_libraries(paddle_pybind rt)
|
||||
endif(NOT APPLE AND NOT ANDROID)
|
||||
endif(WITH_AMD_GPU)
|
||||
endif(WITH_PYTHON)
|
||||
|
Loading…
Reference in new issue