Skip to content

Commit 22f7bf5

Browse files
committed
Move rocshmem_home logic to subproject
1 parent b95cad1 commit 22f7bf5

File tree

2 files changed

+23
-32
lines changed

2 files changed

+23
-32
lines changed

transformer_engine/common/CMakeLists.txt

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -386,32 +386,13 @@ target_compile_definitions(transformer_engine PUBLIC NV_CUDNN_FRONTEND_USE_DYNAM
386386
else()
387387
option(NVTE_ENABLE_ROCSHMEM "Compile with ROCSHMEM library" OFF)
388388
if (NVTE_ENABLE_ROCSHMEM)
389-
find_package(MPI REQUIRED)
390-
target_link_libraries(transformer_engine PUBLIC MPI::MPI_CXX)
391-
target_include_directories(transformer_engine PRIVATE ${MPI_CXX_INCLUDES})
392389
add_subdirectory(rocshmem_api)
393-
if(DEFINED ENV{ROCSHMEM_HOME})
394-
set(ROCSHMEM_HOME "$ENV{ROCSHMEM_HOME}" CACHE STRING "Location of ROCSHMEM installation")
395-
else()
396-
set(ROCSHMEM_HOME "/opt/rocm" CACHE STRING "Location of ROCSHMEM installation (default)")
397-
endif()
398-
set(ROCSHMEM_LIBRARY_PATH "${ROCSHMEM_HOME}/lib/librocshmem.a")
399-
if (EXISTS ${ROCSHMEM_LIBRARY_PATH})
400-
add_library(rocshmem STATIC IMPORTED)
401-
set_target_properties(rocshmem PROPERTIES
402-
IMPORTED_LOCATION "${ROCSHMEM_LIBRARY_PATH}"
403-
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
404-
)
405-
else()
406-
message(FATAL_ERROR "ROCSHMEM library not found at ${ROCSHMEM_LIBRARY_PATH}. PLease set ROCSHMEM_HOME.")
407-
endif()
408390
target_link_options(transformer_engine PRIVATE
409391
-fgpu-rdc
410392
)
411393
target_link_libraries(transformer_engine PUBLIC
412394
-Wl,--whole-archive
413395
rocshmemapi
414-
rocshmem
415396
-Wl,--no-whole-archive
416397
)
417398
endif()

transformer_engine/common/rocshmem_api/CMakeLists.txt

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
11
# Copyright (c) 2025, Advanced Micro Devices, Inc. All rights reserved.
22
# License for AMD contributions = MIT. See LICENSE for more information
3+
34
cmake_minimum_required (VERSION 3.21)
45
project(rocshmem LANGUAGES HIP)
56

67
find_package(hip REQUIRED)
78
find_package(MPI REQUIRED)
89

9-
10-
if(DEFINED ENV{ROCSHMEM_HOME})
11-
set(ROCSHMEM_HOME "$ENV{ROCSHMEM_HOME}" CACHE STRING "Location of ROCSHMEM installation")
12-
else()
13-
set(ROCSHMEM_HOME "/opt/rocm" CACHE STRING "Location of ROCSHMEM installation (default)")
14-
endif()
15-
16-
set(ROCSHMEM_INCLUDE_DIR "${ROCSHMEM_HOME}/include/rocshmem")
17-
if(NOT EXISTS "${ROCSHMEM_INCLUDE_DIR}")
18-
set(ROCSHMEM_INCLUDE_DIR "${ROCSHMEM_HOME}/include")
19-
endif()
20-
2110
add_library(rocshmemapi OBJECT rocshmem_waitkernel.hip)
2211

2312
target_compile_options(rocshmemapi PRIVATE
@@ -30,14 +19,35 @@ set_target_properties(rocshmemapi PROPERTIES
3019
POSITION_INDEPENDENT_CODE ON
3120
)
3221

22+
if(DEFINED ENV{ROCSHMEM_HOME})
23+
set(ROCSHMEM_HOME "$ENV{ROCSHMEM_HOME}" CACHE STRING "Location of ROCSHMEM installation")
24+
else()
25+
set(ROCSHMEM_HOME "/opt/rocm" CACHE STRING "Location of ROCSHMEM installation (default)")
26+
endif()
27+
set(ROCSHMEM_LIBRARY_PATH "${ROCSHMEM_HOME}/lib/librocshmem.a")
28+
if (EXISTS ${ROCSHMEM_LIBRARY_PATH})
29+
add_library(rocshmem STATIC IMPORTED)
30+
set_target_properties(rocshmem PROPERTIES
31+
IMPORTED_LOCATION "${ROCSHMEM_LIBRARY_PATH}"
32+
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
33+
)
34+
else()
35+
message(FATAL_ERROR "ROCSHMEM library not found at ${ROCSHMEM_LIBRARY_PATH}. PLease set ROCSHMEM_HOME.")
36+
endif()
37+
38+
set(ROCSHMEM_INCLUDE_DIR "${ROCSHMEM_HOME}/include/rocshmem")
39+
if(NOT EXISTS "${ROCSHMEM_INCLUDE_DIR}")
40+
set(ROCSHMEM_INCLUDE_DIR "${ROCSHMEM_HOME}/include")
41+
endif()
42+
3343
target_include_directories(rocshmemapi PUBLIC
3444
"${ROCSHMEM_INCLUDE_DIR}"
3545
"${CMAKE_CURRENT_SOURCE_DIR}"
3646
"${MPI_INCLUDE_PATH}"
3747
)
3848

3949
target_link_libraries(rocshmemapi PUBLIC
40-
"${ROCSHMEM_HOME}/lib/librocshmem.a"
50+
rocshmem
4151
MPI::MPI_CXX
4252
hip::host
4353
hip::device

0 commit comments

Comments
 (0)