Merge pull request #9165 from ROCmSoftwarePlatform/amd_cmake_01
Demostration of cmake refine for HIP support.helinwang-patch-1
commit
9126e626fc
@ -0,0 +1,43 @@
|
||||
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 "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")
|
||||
|
@ -0,0 +1,15 @@
|
||||
/* Copyright (c) 2018 paddlepaddle Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License. */
|
||||
|
||||
#include <hip/hip_runtime.h>
|
@ -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 recordio.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 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)
|
||||
endif(WITH_AMD_GPU)
|
||||
endif(WITH_PYTHON)
|
||||
|
Loading…
Reference in new issue