add relaxed_ordering option (#324)
* add relaxed_ordering option
add an environment variable that allows to control setting the
IBV_ACCESS_RELAXED_ORDERING flag when registering memory with the
ibv_reg_mr* functions.
* missed a spot
[ROCm/rocshmem commit: 2ae2033648]
Bu işleme şunda yer alıyor:
işlemeyi yapan:
GitHub
ebeveyn
b126537b55
işleme
db4c6293cc
@@ -756,6 +756,9 @@ void GDABackend::setup_heap_memory_rkey() {
|
||||
auto *base_heap = heap.get_local_heap_base();
|
||||
int access = IBV_ACCESS_LOCAL_WRITE | IBV_ACCESS_REMOTE_WRITE | IBV_ACCESS_REMOTE_READ | IBV_ACCESS_REMOTE_ATOMIC;
|
||||
|
||||
if (envvar::gda::pcie_relaxed_ordering) {
|
||||
access |= IBV_ACCESS_RELAXED_ORDERING;
|
||||
}
|
||||
heap_mr = ibv.reg_mr(pd_orig, base_heap, heap.get_size(), access);
|
||||
CHECK_NNULL(heap_mr, "ibv_reg_mr");
|
||||
|
||||
|
||||
@@ -38,6 +38,9 @@ QueuePair::QueuePair(struct ibv_pd* pd, int gda_provider) {
|
||||
| IBV_ACCESS_REMOTE_READ
|
||||
| IBV_ACCESS_REMOTE_ATOMIC;
|
||||
|
||||
if (envvar::gda::pcie_relaxed_ordering) {
|
||||
access |= IBV_ACCESS_RELAXED_ORDERING;
|
||||
}
|
||||
allocator.allocate((void**)&nonfetching_atomic, 8);
|
||||
allocator.allocate((void**)&fetching_atomic, 8 * FETCHING_ATOMIC_CNT);
|
||||
allocator.allocate((void**)&fetching_atomic_freelist, sizeof(FreeListT*));
|
||||
|
||||
Yeni konuda referans
Bir kullanıcı engelle