You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update documentation to include RO and how to use it
* Clarify supported configuration
Co-authored-by: yugang-amd <yugang.wang@amd.com>
[ROCm/rocshmem commit: 42e2883]
Copy file name to clipboardExpand all lines: projects/rocshmem/docs/install.rst
+58-4Lines changed: 58 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,23 @@ Requirements
23
23
24
24
* ROCm-aware Open MPI and UCX. For more information, see :ref:`install-dependencies`.
25
25
26
+
* Inter-node communication requires MPI, and is tested with Open MPI and CX7 Infiniband NICs.
27
+
28
+
Available network backends
29
+
--------------------------
30
+
31
+
rocSHMEM supports two network backends:
32
+
33
+
* The **IPC (Inter-Process Communication)** backend enables fast communication between GPUs on the same host using ROCm inter-process mechanisms. It does not support inter-node communication.
34
+
* The **RO (Reverse Offload)** backend enables communication between GPUs on different nodes through a NIC, using a host-based proxy to forward communication orders to and from the GPU. In this release, RO is the only inter-node communication backend and is built on an MPI-RMA compatibility layer.
35
+
36
+
37
+
You can activate IPC and RO backends in the same rocSHMEM build. In this case, IPC handles intra-node communication, while RO handles inter-node communication.
38
+
39
+
.. note::
40
+
41
+
When RO is active, all atomic operations use the RO backend, even for intra-node communication.
42
+
26
43
Installing from a package manager
27
44
---------------------------------
28
45
@@ -82,6 +99,37 @@ For more information about OpenMPI-UCX support, see
82
99
Installing from source
83
100
--------------------------------
84
101
102
+
You can select between two communication backends at build time for rocSHMEM: RO and IPC.
103
+
The default configuration enables both backends, using IPC for intra-node communication
104
+
RO for inter-node communication at runtime. In this configuration, rocSHMEM atomic operations always use the RO backend.
105
+
106
+
rocSHMEM also supports the IPC-only configuration, which allows atomic operations to use the IPC backend only.
107
+
108
+
RO and IPC backend build
109
+
^^^^^^^^^^^^^^^^^^^^
110
+
111
+
To build and install rocSHMEM with the hybrid RO (off-node) and IPC (on-node) backends, run:
112
+
113
+
114
+
.. code-block:: bash
115
+
116
+
git clone git@github.com:ROCm/rocSHMEM.git
117
+
cd rocSHMEM
118
+
mkdir build
119
+
cd build
120
+
../scripts/build_configs/ro_ipc
121
+
122
+
The build script passes configuration options to CMake to set up a canonical build.
123
+
124
+
.. note::
125
+
126
+
The only officially supported configuration for the RO backend uses Open MPI and UCX with a CX7 InfiniBand adapter. For more information, see :ref:`install-dependencies`. Other configurations, such as MPI implementations that are thread-safe and support GPU buffers, might work but are considered experimental.
127
+
128
+
129
+
130
+
IPC only backend build
131
+
^^^^^^^^^^^^^^^^^^^^^^
132
+
85
133
To build and install rocSHMEM with the IPC on-node, GPU-to-GPU backend, run:
86
134
87
135
.. code-block:: bash
@@ -92,16 +140,22 @@ To build and install rocSHMEM with the IPC on-node, GPU-to-GPU backend, run:
92
140
cd build
93
141
../scripts/build_configs/ipc_single
94
142
95
-
The build script passes configuration options to CMake to setup a canonical build.
143
+
The build script passes configuration options to CMake to setup a single-node build.
144
+
This is similar to the default build in ROCm 6.4.
96
145
97
146
.. note::
98
147
99
-
Other experimental configuration scripts are available in ``./scripts/build_configs``, but only ``ipc_single`` is currently supported.
148
+
The default configuration changed from IPC only in ROCm 6.4 (built with the ``ipc_single`` script) to RO and IPC in ROCm 7.0 (built with the ``ro_ipc`` script).
149
+
Other experimental configuration scripts are available in ``./scripts/build_configs``, but only ``ipc_single`` and ``ro_ipc``
150
+
are officially supported.
100
151
152
+
Installation prefix
153
+
^^^^^^^^^^^^^^^^^^^
101
154
102
-
By default, the library is installed in ``~/rocshmem``. You can customize the installation path by running:
155
+
By default, the build scripts install the library to ``~/rocshmem``. You can customize the installation path by adding
156
+
the desired path as the script parameter. For example, to relocate the default configuration:
0 commit comments