[v0.06] Add check in memory guess to allow guessing only valid memory types for the uarch

This commit is contained in:
Dr-Noob
2021-08-17 15:09:13 +02:00
parent 6b2fa05870
commit a7036218a0
3 changed files with 20 additions and 5 deletions

View File

@@ -275,6 +275,20 @@ struct uarch* get_uarch_from_cuda(struct gpu_info* gpu) {
else if (arch->uarch == arch_ && (clkm_ == CM_ANY || clkm == clkm_)) return memtype;
#define CHECK_MEMTYPE_END else { printBug("guess_memtype_from_cmul_and_uarch: Found invalid combination: clkm=%d, uarch=%d", clkm, arch->uarch); return MEMTYPE_UNKNOWN; }
bool clkm_possible_for_uarch(int clkm, struct uarch* arch) {
switch(arch->uarch) {
case UARCH_TESLA: return false;
case UARCH_FERMI: return clkm == 1 || clkm == 2;
case UARCH_KEPLER: return clkm == 1 || clkm == 2;
case UARCH_MAXWELL: return clkm == 1 || clkm == 2;
case UARCH_PASCAL: return clkm == 1 || clkm == 2 || clkm == 4;
case UARCH_VOLTA: return clkm == 1;
case UARCH_TURING: return clkm == 2 || clkm == 4;
case UARCH_AMPERE: return clkm == 1 || clkm == 4 || clkm == 8;
}
return false;
}
MEMTYPE guess_memtype_from_cmul_and_uarch(int clkm, struct uarch* arch) {
/*
* +---------+------------------+