SWDEV-434846 - Correct the vgprs per simd for MI300

Change-Id: Id4862da7611f64392bfc1538fb644801ec0a9e7f
This commit is contained in:
Satyanvesh Dittakavi
2023-12-12 07:46:22 +00:00
parent 12461dbd6a
commit b2102fe939
2 ha cambiato i file con 8 aggiunte e 2 eliminazioni
+6
Vedi File
@@ -372,6 +372,12 @@ hipError_t ihipOccupancyMaxActiveBlocksPerMultiprocessor(
VgprWaves = maxVGPRs / amd::alignUp(wrkGrpInfo->usedVGPRs_, VgprGranularity);
}
if (VgprWaves == 0) {
// This should not happen ideally, but in case the usedVGPRs_/availableVGPRs_ values are
// incorrect, it can lead to a crash. By returning error, API can exit gracefully.
return hipErrorUnknown;
}
size_t GprWaves = VgprWaves;
if (wrkGrpInfo->usedSGPRs_ > 0) {
size_t maxSGPRs = device.info().sgprsPerSimd_;
+2 -2
Vedi File
@@ -1812,8 +1812,8 @@ bool Device::populateOCLDeviceConstants() {
}
break;
case (9):
if ((isa().versionMinor() == 0 && isa().versionStepping() == 10) ||
(isa().versionMinor() == 4 && isa().versionStepping() == 0)) {
if ((isa().versionMinor() == 0 && isa().versionStepping() == 10) || // For gfx90a (MI200)
(isa().versionMinor() == 4)) { // For gfx94x (MI300)
info_.vgprAllocGranularity_ = 8;
info_.vgprsPerSimd_ = 512;
} else {