Fix gcnArchName bug in topology dump (#937)

Signed-off-by: nileshnegi <Nilesh.Negi@amd.com>
Este commit está contenido en:
Nilesh M Negi
2023-10-28 12:30:36 -05:00
cometido por GitHub
padre 4c117e5335
commit 1e5ca6820b
Se han modificado 4 ficheros con 11 adiciones y 11 borrados
+1 -1
Ver fichero
@@ -372,7 +372,7 @@ ncclResult_t ncclTopoAddGpu(struct ncclXmlNode* xmlGpu, struct ncclTopoSystem* s
const char* gcnArch;
const char* gcnArchName;
NCCLCHECK(xmlGetAttr(xmlGpu, "gcn", &gcnArch));
convertGcnArchToGcnArchName(gcnArch, gcnArchName);
convertGcnArchToGcnArchName(gcnArch, &gcnArchName);
gpu->gpu.gcn = strdup(gcnArchName);
rcclHipDeviceArch_t arch;
NCCLCHECK(xmlGetAttrInt(xmlGpu, "arch", &arch.value));
+1 -1
Ver fichero
@@ -650,7 +650,7 @@ ncclResult_t ncclTopoGetXmlFromGpu(struct ncclXmlNode* pciNode, uint32_t rocmDev
NCCLCHECK(xmlSetAttr(gpuNode, "gcn", gcn));
}
NCCLCHECK(xmlGetAttr(gpuNode, "gcn", &gcn));
convertGcnArchToGcnArchName(gcn, gcnArchName);
convertGcnArchToGcnArchName(gcn, &gcnArchName);
NCCLCHECK(xmlSetAttr(gpuNode, "gcn", gcnArchName));
rcclHipDeviceArch_t arch;
+1 -1
Ver fichero
@@ -31,7 +31,7 @@ THE SOFTWARE.
*/
void GcnArchNameFormat(char *gcnArchName, char* out);
void convertGcnArchToGcnArchName(const char* gcnArch, const char* gcnArchName);
void convertGcnArchToGcnArchName(const char* gcnArch, const char** gcnArchName);
int GetGcnArchName(int deviceId, char* out);
double GetDeviceWallClockRateInKhz(int deviceId);
bool IsArchMatch(char const* arch, char const* target);
+8 -8
Ver fichero
@@ -32,24 +32,24 @@ void GcnArchNameFormat(char* gcnArchName, char* out) {
strcpy(out, gcnArchNameToken);
}
void convertGcnArchToGcnArchName(const char* gcnArch, const char* gcnArchName) {
void convertGcnArchToGcnArchName(const char* gcnArch, const char** gcnArchName) {
// gcnArch is deprecated and we should instead use gcnArchName; however, some data files still have
// the older gcnArch value. There's only a handful of architectures that were coded prior to deprecation,
// so we handle those cases here.
if (strcmp(gcnArch, "906") == 0)
gcnArchName = "gfx906";
*gcnArchName = "gfx906";
else if (strcmp(gcnArch, "908") == 0)
gcnArchName = "gfx908";
*gcnArchName = "gfx908";
else if (strcmp(gcnArch, "910") == 0)
gcnArchName = "gfx90a";
*gcnArchName = "gfx90a";
else if (strcmp(gcnArch, "940") == 0)
gcnArchName = "gfx940";
*gcnArchName = "gfx940";
else if (strcmp(gcnArch, "941") == 0)
gcnArchName = "gfx941";
*gcnArchName = "gfx941";
else if (strcmp(gcnArch, "942") == 0)
gcnArchName = "gfx942";
*gcnArchName = "gfx942";
else
gcnArchName = gcnArch;
*gcnArchName = gcnArch;
}
int GetGcnArchName(int deviceId, char* out) {