ch4/ofi: allocate pack buffers with alignment
allocate pack buffers with alignment to enable stream instructions for GPU fast copy.
Esse commit está contido em:
@@ -282,7 +282,8 @@ MPL_STATIC_INLINE_PREFIX int MPIDI_OFI_do_irecv(void *buf,
|
||||
|
||||
/* Unpack */
|
||||
MPIDI_OFI_REQUEST(rreq, event_id) = MPIDI_OFI_EVENT_RECV_PACK;
|
||||
MPIDI_OFI_REQUEST(rreq, noncontig.pack.pack_buffer) = MPL_malloc(data_sz, MPL_MEM_OTHER);
|
||||
MPIDI_OFI_REQUEST(rreq, noncontig.pack.pack_buffer) =
|
||||
MPL_aligned_alloc(64, data_sz, MPL_MEM_OTHER);
|
||||
MPIR_ERR_CHKANDJUMP1(MPIDI_OFI_REQUEST(rreq, noncontig.pack.pack_buffer) == NULL, mpi_errno,
|
||||
MPI_ERR_OTHER, "**nomem", "**nomem %s", "Recv Pack Buffer alloc");
|
||||
recv_buf = MPIDI_OFI_REQUEST(rreq, noncontig.pack.pack_buffer);
|
||||
|
||||
@@ -625,7 +625,7 @@ MPL_STATIC_INLINE_PREFIX int MPIDI_OFI_send(const void *buf, MPI_Aint count, MPI
|
||||
/* inject path */
|
||||
void *pack_buf = NULL;
|
||||
if (need_pack) {
|
||||
pack_buf = MPL_malloc(data_sz, MPL_MEM_OTHER);
|
||||
pack_buf = MPL_aligned_alloc(64, data_sz, MPL_MEM_OTHER);
|
||||
mpi_errno = MPIR_Localcopy_gpu(buf, count, datatype, 0, &attr,
|
||||
pack_buf, data_sz, MPI_BYTE, 0, MPIR_GPU_ATTR_HOST,
|
||||
MPL_GPU_COPY_DIRECTION_NONE,
|
||||
@@ -649,7 +649,7 @@ MPL_STATIC_INLINE_PREFIX int MPIDI_OFI_send(const void *buf, MPI_Aint count, MPI
|
||||
|
||||
void *data = NULL;
|
||||
if (need_pack) {
|
||||
void *pack_buf = MPL_malloc(data_sz, MPL_MEM_OTHER);
|
||||
void *pack_buf = MPL_aligned_alloc(64, data_sz, MPL_MEM_OTHER);
|
||||
MPIR_ERR_CHKANDJUMP1(pack_buf == NULL, mpi_errno,
|
||||
MPI_ERR_OTHER, "**nomem", "**nomem %s", "Send Pack buffer alloc");
|
||||
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário