diff --git a/projects/rocshmem/src/reverse_offload/commands_types.hpp b/projects/rocshmem/src/reverse_offload/commands_types.hpp index 404bafc3ca..0851810fd6 100644 --- a/projects/rocshmem/src/reverse_offload/commands_types.hpp +++ b/projects/rocshmem/src/reverse_offload/commands_types.hpp @@ -50,6 +50,8 @@ enum ro_net_cmds { enum ro_net_types { RO_NET_FLOAT, RO_NET_CHAR, + RO_NET_SIGNED_CHAR, + RO_NET_UNSIGNED_CHAR, RO_NET_DOUBLE, RO_NET_INT, RO_NET_LONG, diff --git a/projects/rocshmem/src/reverse_offload/context_ro_tmpl_device.hpp b/projects/rocshmem/src/reverse_offload/context_ro_tmpl_device.hpp index 7e292f8076..5a24e0430f 100644 --- a/projects/rocshmem/src/reverse_offload/context_ro_tmpl_device.hpp +++ b/projects/rocshmem/src/reverse_offload/context_ro_tmpl_device.hpp @@ -41,12 +41,12 @@ struct GetROType { template <> struct GetROType { - static constexpr ro_net_types Type{RO_NET_CHAR}; + static constexpr ro_net_types Type{RO_NET_UNSIGNED_CHAR}; }; template <> struct GetROType { - static constexpr ro_net_types Type{RO_NET_CHAR}; + static constexpr ro_net_types Type{RO_NET_SIGNED_CHAR}; }; template <> diff --git a/projects/rocshmem/src/reverse_offload/mpi_transport.cpp b/projects/rocshmem/src/reverse_offload/mpi_transport.cpp index fc2284186d..dc678d5bbc 100644 --- a/projects/rocshmem/src/reverse_offload/mpi_transport.cpp +++ b/projects/rocshmem/src/reverse_offload/mpi_transport.cpp @@ -384,6 +384,12 @@ static MPI_Datatype convertType(ro_net_types type) { return MPI_SHORT; case RO_NET_LONG_DOUBLE: return MPI_LONG_DOUBLE; + case RO_NET_CHAR: + return MPI_CHAR; + case RO_NET_SIGNED_CHAR: + return MPI_SIGNED_CHAR; + case RO_NET_UNSIGNED_CHAR: + return MPI_UNSIGNED_CHAR; default: fprintf(stderr, "Unknown rocSHMEM type MPI conversion %d\n", type); abort();