@@ -6,17 +6,30 @@ MPI.Init()
66# (or a similar signal) when called, which cannot be handled in Julia in a portable way.
77
88op = ARGS [1 ]
9- if op == " Iallreduce"
10- # Iallreduce is unsupported for CUDA with OpenMPI + UCX
11- # See https://docs.open-mpi.org/en/main/tuning-apps/networking/cuda.html#which-mpi-apis-do-not-work-with-cuda-aware-ucx
9+ if op == " Allreduce"
10+ # Allreduce is unsupported for AMDGPU with UCX
11+ send_arr = ArrayType (zeros (Int, 1 ))
12+ recv_arr = ArrayType {Int} (undef, 1 )
13+ synchronize ()
14+ MPI. Allreduce! (send_arr, recv_arr, + , MPI. COMM_WORLD)
15+
16+ elseif op == " Iallreduce"
17+ # Iallreduce is unsupported for CUDA with OpenMPI 5 + UCX
1218 send_arr = ArrayType (zeros (Int, 1 ))
1319 recv_arr = ArrayType {Int} (undef, 1 )
1420 synchronize ()
1521 req = MPI. Iallreduce! (send_arr, recv_arr, + , MPI. COMM_WORLD)
1622 MPI. Wait (req)
1723
24+ elseif op == " Reduce"
25+ # Reduce is unsupported for AMDGPU with UCX
26+ send_arr = ArrayType (zeros (Int, 1 ))
27+ recv_arr = ArrayType {Int} (undef, 1 )
28+ synchronize ()
29+ MPI. Reduce! (send_arr, recv_arr, + , MPI. COMM_WORLD; root= 0 )
30+
1831elseif op == " Ireduce"
19- # Iallreduce is unsupported for CUDA with OpenMPI + UCX
32+ # Ireduce is unsupported for CUDA with OpenMPI 5 + UCX
2033 send_arr = ArrayType (zeros (Int, 1 ))
2134 recv_arr = ArrayType {Int} (undef, 1 )
2235 synchronize ()
0 commit comments