-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
471 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
if(NOT WITH_ROCM) | ||
return() | ||
endif() | ||
|
||
if(NOT DEFINED ENV{ROCM_PATH}) | ||
set(ROCM_PATH "/opt/rocm" CACHE PATH "Path to which ROCm has been installed") | ||
set(HIP_PATH ${ROCM_PATH}/hip CACHE PATH "Path to which HIP has been installed") | ||
set(HIP_CLANG_PATH ${ROCM_PATH}/llvm/bin CACHE PATH "Path to which clang has been installed") | ||
else() | ||
set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Path to which ROCm has been installed") | ||
set(HIP_PATH ${ROCM_PATH}/hip CACHE PATH "Path to which HIP has been installed") | ||
set(HIP_CLANG_PATH ${ROCM_PATH}/llvm/bin CACHE PATH "Path to which clang has been installed") | ||
endif() | ||
set(CMAKE_MODULE_PATH "${HIP_PATH}/cmake" ${CMAKE_MODULE_PATH}) | ||
|
||
find_package(HIP REQUIRED) | ||
include_directories(${ROCM_PATH}/include) | ||
message(STATUS "HIP version: ${HIP_VERSION}") | ||
message(STATUS "HIP_CLANG_PATH: ${HIP_CLANG_PATH}") | ||
MESSAGE(STATUS "HIP_ROOT_DIR: ${HIP_ROOT_DIR}") | ||
|
||
macro(find_package_and_include PACKAGE_NAME) | ||
find_package("${PACKAGE_NAME}" REQUIRED) | ||
include_directories("${ROCM_PATH}/${PACKAGE_NAME}/include") | ||
message(STATUS "${PACKAGE_NAME} version: ${${PACKAGE_NAME}_VERSION}") | ||
endmacro() | ||
|
||
find_package_and_include(hiprand) | ||
find_package_and_include(rocrand) | ||
find_package_and_include(rocthrust) | ||
|
||
# set CXX flags for HIP | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__HIP_PLATFORM_HCC__") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__HIP_PLATFORM_HCC__") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_HIP") | ||
set(THRUST_DEVICE_SYSTEM THRUST_DEVICE_SYSTEM_HIP) | ||
|
||
# define HIP_CXX_FLAGS | ||
list(APPEND HIP_CXX_FLAGS -fPIC) | ||
list(APPEND HIP_CXX_FLAGS -D__HIP_PLATFORM_HCC__=1) | ||
# Note(qili93): HIP has compile conflicts of float16.h as platform::float16 overload std::is_floating_point and std::is_integer | ||
list(APPEND HIP_CXX_FLAGS -D__HIP_NO_HALF_CONVERSIONS__=1) | ||
list(APPEND HIP_CXX_FLAGS -Wno-macro-redefined) | ||
list(APPEND HIP_CXX_FLAGS -Wno-inconsistent-missing-override) | ||
list(APPEND HIP_CXX_FLAGS -Wno-exceptions) | ||
list(APPEND HIP_CXX_FLAGS -Wno-shift-count-negative) | ||
list(APPEND HIP_CXX_FLAGS -Wno-shift-count-overflow) | ||
list(APPEND HIP_CXX_FLAGS -Wno-unused-command-line-argument) | ||
list(APPEND HIP_CXX_FLAGS -Wno-duplicate-decl-specifier) | ||
list(APPEND HIP_CXX_FLAGS -Wno-implicit-int-float-conversion) | ||
list(APPEND HIP_CXX_FLAGS -Wno-pass-failed) | ||
list(APPEND HIP_CXX_FLAGS -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_HIP) | ||
list(APPEND HIP_CXX_FLAGS -std=c++14) | ||
|
||
if(CMAKE_BUILD_TYPE MATCHES Debug) | ||
list(APPEND HIP_CXX_FLAGS -g2) | ||
list(APPEND HIP_CXX_FLAGS -O0) | ||
list(APPEND HIP_HIPCC_FLAGS -fdebug-info-for-profiling) | ||
endif(CMAKE_BUILD_TYPE MATCHES Debug) | ||
|
||
set(HIP_HCC_FLAGS ${HIP_CXX_FLAGS}) | ||
set(HIP_CLANG_FLAGS ${HIP_CXX_FLAGS}) | ||
# Ask hcc to generate device code during compilation so we can use | ||
# host linker to link. | ||
list(APPEND HIP_HCC_FLAGS -fno-gpu-rdc) | ||
list(APPEND HIP_HCC_FLAGS --amdgpu-target=gfx906) | ||
list(APPEND HIP_CLANG_FLAGS -fno-gpu-rdc) | ||
list(APPEND HIP_CLANG_FLAGS --amdgpu-target=gfx906) | ||
|
||
|
||
if(HIP_COMPILER STREQUAL clang) | ||
set(hip_library_name amdhip64) | ||
else() | ||
set(hip_library_name hip_hcc) | ||
endif() | ||
message(STATUS "HIP library name: ${hip_library_name}") | ||
|
||
# set HIP link libs | ||
find_library(ROCM_HIPRTC_LIB ${hip_library_name} HINTS ${HIP_PATH}/lib) | ||
message(STATUS "ROCM_HIPRTC_LIB: ${ROCM_HIPRTC_LIB}") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,7 @@ | |
#include <cmath> | ||
|
||
#include "hostdevice.h" | ||
#include "type_defs.h" | ||
|
||
namespace ctc_helper { | ||
|
||
|
Oops, something went wrong.