From 539e991b2ae34009cf1a503f0ac49475079bf7c6 Mon Sep 17 00:00:00 2001 From: avinashkethineedi Date: Wed, 12 Feb 2025 20:10:03 +0000 Subject: [PATCH] RO Backend: Add support for char, signed char and unsigned char [ROCm/rocshmem commit: 540cd4b9187cc58e1834d6d1627477d637594dc9] --- projects/rocshmem/src/reverse_offload/commands_types.hpp | 2 ++ .../rocshmem/src/reverse_offload/context_ro_tmpl_device.hpp | 4 ++-- projects/rocshmem/src/reverse_offload/mpi_transport.cpp | 6 ++++++ 3 files changed, 10 insertions(+), 2 deletions(-) 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();