Improved HashFactor detection based on base variant
This commit is contained in:
parent
ff4058a2a9
commit
6d0ebc610b
3 changed files with 34 additions and 6 deletions
|
@ -94,13 +94,10 @@ void CpuImpl::optimizeParameters(size_t& threadsCount, size_t& hashFactor,
|
||||||
|
|
||||||
if (algo == Options::ALGO_CRYPTONIGHT_HEAVY || powVariant == POW_XFH) {
|
if (algo == Options::ALGO_CRYPTONIGHT_HEAVY || powVariant == POW_XFH) {
|
||||||
maximumReasonableHashFactor = 3;
|
maximumReasonableHashFactor = 3;
|
||||||
} else if (algo == Options::ALGO_CRYPTONIGHT_ULTRALITE) {
|
} else if (getBaseVariant(powVariant) == POW_V2 || getBaseVariant(powVariant) == POW_V4) {
|
||||||
if (m_asmOptimization == ASM_INTEL) {
|
maximumReasonableHashFactor = 2;
|
||||||
maximumReasonableHashFactor = 2;
|
|
||||||
} else {
|
|
||||||
maximumReasonableHashFactor = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (safeMode) {
|
if (safeMode) {
|
||||||
if (threadsCount > maximumReasonableThreadCount) {
|
if (threadsCount > maximumReasonableThreadCount) {
|
||||||
threadsCount = maximumReasonableThreadCount;
|
threadsCount = maximumReasonableThreadCount;
|
||||||
|
|
|
@ -340,6 +340,8 @@ constexpr static const char *pow_variant_names[] = {
|
||||||
"wow",
|
"wow",
|
||||||
"r",
|
"r",
|
||||||
"xcash",
|
"xcash",
|
||||||
|
"zls",
|
||||||
|
"graft",
|
||||||
"upx2"
|
"upx2"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -184,5 +184,34 @@ inline PowVariant parseVariant(const std::string variant)
|
||||||
return powVariant;
|
return powVariant;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline PowVariant getBaseVariant(PowVariant powVariant)
|
||||||
|
{
|
||||||
|
switch (powVariant)
|
||||||
|
{
|
||||||
|
case POW_V1:
|
||||||
|
case POW_XTL:
|
||||||
|
case POW_MSR:
|
||||||
|
case POW_RTO:
|
||||||
|
case POW_HOSP:
|
||||||
|
case POW_UPX:
|
||||||
|
return POW_V1;
|
||||||
|
|
||||||
|
case POW_V2:
|
||||||
|
case POW_TURTLE:
|
||||||
|
case POW_DOUBLE:
|
||||||
|
case POW_ZELERIUS:
|
||||||
|
case POW_RWZ:
|
||||||
|
case POW_UPX2:
|
||||||
|
case POW_FAST_2:
|
||||||
|
return POW_V2;
|
||||||
|
|
||||||
|
case POW_WOW:
|
||||||
|
case POW_V4:
|
||||||
|
return POW_V4;
|
||||||
|
default:
|
||||||
|
return POW_V0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif /* __POW_VARIANT_H__ */
|
#endif /* __POW_VARIANT_H__ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue