Added a toggle for using pinned memory
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
#define MPI_COMPUTE_ENABLED (1)
|
#define MPI_COMPUTE_ENABLED (1)
|
||||||
#define MPI_COMM_ENABLED (1)
|
#define MPI_COMM_ENABLED (1)
|
||||||
#define MPI_INCL_CORNERS (0)
|
#define MPI_INCL_CORNERS (0)
|
||||||
|
#define MPI_USE_PINNED (1)
|
||||||
|
|
||||||
AcResult
|
AcResult
|
||||||
acDevicePrintInfo(const Device device)
|
acDevicePrintInfo(const Device device)
|
||||||
@@ -1165,7 +1166,7 @@ acTransferCommData(const Device device, //
|
|||||||
const int npid = getPid(pid3d + neighbor, decomp);
|
const int npid = getPid(pid3d + neighbor, decomp);
|
||||||
|
|
||||||
PackedData* dst = &data->dsts[b0_idx];
|
PackedData* dst = &data->dsts[b0_idx];
|
||||||
if (onTheSameNode(pid, npid)) {
|
if (onTheSameNode(pid, npid) || !MPI_USE_PINNED) {
|
||||||
MPI_Irecv(dst->data, count, datatype, npid, b0_idx, //
|
MPI_Irecv(dst->data, count, datatype, npid, b0_idx, //
|
||||||
MPI_COMM_WORLD, &data->recv_reqs[b0_idx]);
|
MPI_COMM_WORLD, &data->recv_reqs[b0_idx]);
|
||||||
dst->pinned = false;
|
dst->pinned = false;
|
||||||
@@ -1187,7 +1188,7 @@ acTransferCommData(const Device device, //
|
|||||||
const int npid = getPid(pid3d - neighbor, decomp);
|
const int npid = getPid(pid3d - neighbor, decomp);
|
||||||
|
|
||||||
PackedData* src = &data->srcs[b0_idx];
|
PackedData* src = &data->srcs[b0_idx];
|
||||||
if (onTheSameNode(pid, npid)) {
|
if (onTheSameNode(pid, npid) || !MPI_USE_PINNED) {
|
||||||
cudaStreamSynchronize(data->streams[b0_idx]);
|
cudaStreamSynchronize(data->streams[b0_idx]);
|
||||||
MPI_Isend(src->data, count, datatype, npid, b0_idx, //
|
MPI_Isend(src->data, count, datatype, npid, b0_idx, //
|
||||||
MPI_COMM_WORLD, &data->send_reqs[b0_idx]);
|
MPI_COMM_WORLD, &data->send_reqs[b0_idx]);
|
||||||
|
|||||||
Reference in New Issue
Block a user