additional check for fine grain support in p2pCanConnect (#146)

[ROCm/rccl commit: 5a502955c9]
This commit is contained in:
Jeff Daily
2019-10-31 08:58:38 -07:00
کامیت شده توسط GitHub
والد a99accb2cb
کامیت e43e1f1b3d
2فایلهای تغییر یافته به همراه8 افزوده شده و 2 حذف شده
+5 -2
مشاهده پرونده
@@ -171,12 +171,15 @@ void parseHsaForceFineGrainVramPcie() {
errno = 0;
int64_t v = strtoll(str, NULL, 0);
if (errno || (v != 0 && v != 1)) {
INFO(NCCL_ALL,"Invalid value %s for %s, using default %u.", str, "HSA_FORCE_FINE_GRAIN_PCIE", useFineGrainVramPcie); \
INFO(NCCL_ALL,"Invalid value %s for %s, using default %u.", str, "HSA_FORCE_FINE_GRAIN_PCIE", useFineGrainVramPcie);
} else {
useFineGrainVramPcie = v;
INFO(NCCL_ALL,"%s set by environment to %u.", "HSA_FORCE_FINE_GRAIN_PCIE", useFineGrainVramPcie); \
INFO(NCCL_ALL,"%s set by environment to %u.", "HSA_FORCE_FINE_GRAIN_PCIE", useFineGrainVramPcie);
}
}
else {
INFO(NCCL_ALL,"%s not set by environment.", "HSA_FORCE_FINE_GRAIN_PCIE");
}
}
pthread_mutex_t initLock = PTHREAD_MUTEX_INITIALIZER;
@@ -112,6 +112,9 @@ ncclResult_t p2pCanConnect(ncclTvalue_t* ret, struct ncclPeerInfo* myInfo, struc
// Do not detect topology if we're on the same GPU. Note this is not really supported.
if (myInfo->cudaDev == peerCudaDev) {
#if defined(__HIP_PLATFORM_HCC__) || defined(__HCC__) || defined(__HIPCC__)
if (!useFineGrainVramPcie) return ncclSuccess;
#endif
*ret = 1 + PATH_SYS;
return ncclSuccess;
}