From 5fe857c562df0d641a8e61385b750365bc7a0bdc Mon Sep 17 00:00:00 2001 From: gilbertlee-amd <44450918+gilbertlee-amd@users.noreply.github.com> Date: Wed, 30 Aug 2023 08:10:14 -0600 Subject: [PATCH] More robust msccl shared directory location discovery (#868) [ROCm/rccl commit: 4297315de77c5e40b35678736ab89241e6cced6b] --- projects/rccl/src/misc/msccl/msccl_lifecycle.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/projects/rccl/src/misc/msccl/msccl_lifecycle.cc b/projects/rccl/src/misc/msccl/msccl_lifecycle.cc index 7fe8bff354..16559b73d0 100644 --- a/projects/rccl/src/misc/msccl/msccl_lifecycle.cc +++ b/projects/rccl/src/misc/msccl/msccl_lifecycle.cc @@ -75,8 +75,8 @@ static const char* mscclAlgoDirEnv = "MSCCL_ALGO_DIR"; static const char* mscclAlgoDefaultDir = "msccl-algorithms"; extern "C" bool mscclUnitTestMode() __attribute__((__weak__)); static const char* mscclUnitTestAlgoDefaultDir = "msccl-unit-test-algorithms"; -static const char* mscclAlgoShareDirPath = "share/rccl/msccl-algorithms"; -static const char* mscclUnitTestAlgoShareDirPath = "share/rccl/msccl-unit-test-algorithms"; +static const char* mscclAlgoShareDirPath = "../share/rccl/msccl-algorithms"; +static const char* mscclUnitTestAlgoShareDirPath = "../share/rccl/msccl-unit-test-algorithms"; static ncclResult_t mscclInternalSchedulerInit() { mscclStatus& status = mscclGetStatus(); @@ -98,7 +98,7 @@ static ncclResult_t mscclInternalSchedulerInit() { mscclAlgoDirStr += (mscclUnitTestMode && mscclUnitTestMode()) ? mscclUnitTestAlgoDefaultDir : mscclAlgoDefaultDir; mscclAlgoDir = mscclAlgoDirStr.c_str(); // Get share Directory Paths - mscclAlgoShareDirStr = selfLibPath.substr(0, selfLibPath.rfind("lib")); + mscclAlgoShareDirStr = selfLibPath.substr(0, selfLibPath.find_last_of("/\\") + 1); mscclAlgoShareDirStr += (mscclUnitTestMode && mscclUnitTestMode()) ? mscclUnitTestAlgoShareDirPath : mscclAlgoShareDirPath; mscclAlgoShareDir = mscclAlgoShareDirStr.c_str(); } @@ -116,6 +116,7 @@ static ncclResult_t mscclInternalSchedulerInit() { } else { fullDirPath = mscclAlgoDir; } + INFO(NCCL_INIT, "Using MSCCL files from %s", fullDirPath); while ((entry = readdir(dp))) { if (entry->d_type != DT_LNK && entry->d_type != DT_REG) { continue;