Correct flex algo hashrate calc
This commit is contained in:
parent
20184c6c9f
commit
d4252f7133
8 changed files with 20 additions and 15 deletions
|
@ -177,8 +177,8 @@ template<>
|
||||||
size_t inline generate<Algorithm::GHOSTRIDER>(Threads<CpuThreads>& threads, uint32_t limit)
|
size_t inline generate<Algorithm::GHOSTRIDER>(Threads<CpuThreads>& threads, uint32_t limit)
|
||||||
{
|
{
|
||||||
size_t count = 0;
|
size_t count = 0;
|
||||||
count += generate(Algorithm::kGHOSTRIDER, threads, Algorithm::GHOSTRIDER_RTM, limit);
|
count += threads.move(Algorithm::kGHOSTRIDER, std::move(Cpu::info()->threads(Algorithm::GHOSTRIDER_RTM, limit)));
|
||||||
count += generate(Algorithm::kFLEX, threads, Algorithm::FLEX_KCN, limit);
|
count += threads.move(Algorithm::kFLEX, std::move(Cpu::info()->threads(Algorithm::FLEX_KCN, limit)));
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -175,7 +175,7 @@ bool xmrig::CpuWorker<N>::selfTest()
|
||||||
case Algorithm::GHOSTRIDER_RTM:
|
case Algorithm::GHOSTRIDER_RTM:
|
||||||
return (N == 8) && verify(Algorithm::GHOSTRIDER_RTM, test_output_gr);
|
return (N == 8) && verify(Algorithm::GHOSTRIDER_RTM, test_output_gr);
|
||||||
case Algorithm::FLEX_KCN:
|
case Algorithm::FLEX_KCN:
|
||||||
return verify(Algorithm::FLEX_KCN, test_output_flex);
|
return (N == 1) && verify(Algorithm::FLEX_KCN, test_output_flex);
|
||||||
default:;
|
default:;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -340,13 +340,16 @@ void xmrig::CpuWorker<N>::start()
|
||||||
case Algorithm::GHOSTRIDER_RTM:
|
case Algorithm::GHOSTRIDER_RTM:
|
||||||
if (N == 8) {
|
if (N == 8) {
|
||||||
ghostrider::hash_octa(m_job.blob(), job.size(), m_hash, m_ctx, m_ghHelper);
|
ghostrider::hash_octa(m_job.blob(), job.size(), m_hash, m_ctx, m_ghHelper);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
valid = false;
|
valid = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Algorithm::FLEX_KCN:
|
case Algorithm::FLEX_KCN:
|
||||||
|
if (N == 1) {
|
||||||
flex_hash(reinterpret_cast<const char*>(m_job.blob()), reinterpret_cast<char*>(m_hash), m_ctx);
|
flex_hash(reinterpret_cast<const char*>(m_job.blob()), reinterpret_cast<char*>(m_hash), m_ctx);
|
||||||
|
} else {
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
valid = false;
|
valid = false;
|
||||||
|
|
|
@ -55,7 +55,7 @@ public:
|
||||||
size_t threads() const override
|
size_t threads() const override
|
||||||
{
|
{
|
||||||
# ifdef XMRIG_ALGO_GHOSTRIDER
|
# ifdef XMRIG_ALGO_GHOSTRIDER
|
||||||
return ((m_algorithm.family() == Algorithm::GHOSTRIDER) && m_ghHelper) ? 2 : 1;
|
return ((m_algorithm.id() == Algorithm::GHOSTRIDER_RTM) && m_ghHelper) ? 2 : 1;
|
||||||
# else
|
# else
|
||||||
return 1;
|
return 1;
|
||||||
# endif
|
# endif
|
||||||
|
|
|
@ -386,8 +386,9 @@ xmrig::CpuThreads xmrig::BasicCpuInfo::threads(const Algorithm &algorithm, uint3
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef XMRIG_ALGO_GHOSTRIDER
|
# ifdef XMRIG_ALGO_GHOSTRIDER
|
||||||
if (f == Algorithm::GHOSTRIDER) {
|
switch (algorithm.id()) {
|
||||||
return CpuThreads(std::max<size_t>(count / 2, 1), 8);
|
case Algorithm::GHOSTRIDER_RTM: return CpuThreads(std::max<size_t>(count / 2, 1), 8);
|
||||||
|
case Algorithm::FLEX_KCN: return CpuThreads(std::max<size_t>(count / 2, 1), 1);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
|
@ -102,8 +102,9 @@ const char *xmrig::BasicCpuInfo::backend() const
|
||||||
xmrig::CpuThreads xmrig::BasicCpuInfo::threads(const Algorithm &algorithm, uint32_t) const
|
xmrig::CpuThreads xmrig::BasicCpuInfo::threads(const Algorithm &algorithm, uint32_t) const
|
||||||
{
|
{
|
||||||
# ifdef XMRIG_ALGO_GHOSTRIDER
|
# ifdef XMRIG_ALGO_GHOSTRIDER
|
||||||
if (algorithm.family() == Algorithm::GHOSTRIDER) {
|
switch (algorithm.id()) {
|
||||||
return CpuThreads(threads(), 8);
|
case Algorithm::GHOSTRIDER_RTM: return CpuThreads(threads(), 8);
|
||||||
|
case Algorithm::FLEX_KCN: return CpuThreads(threads(), 1);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
|
@ -260,7 +260,7 @@ xmrig::CpuThreads xmrig::HwlocCpuInfo::allThreads(const Algorithm &algorithm, ui
|
||||||
CpuThreads threads;
|
CpuThreads threads;
|
||||||
threads.reserve(m_threads);
|
threads.reserve(m_threads);
|
||||||
|
|
||||||
const uint32_t intensity = (algorithm.family() == Algorithm::GHOSTRIDER) ? 8 : 0;
|
const uint32_t intensity = (algorithm.id() == Algorithm::GHOSTRIDER_RTM) ? 8 : 0;
|
||||||
|
|
||||||
for (const int32_t pu : m_units) {
|
for (const int32_t pu : m_units) {
|
||||||
threads.add(pu, intensity);
|
threads.add(pu, intensity);
|
||||||
|
|
|
@ -198,7 +198,7 @@ public:
|
||||||
inline Id id() const { return m_id; }
|
inline Id id() const { return m_id; }
|
||||||
inline size_t l2() const { return l2(m_id); }
|
inline size_t l2() const { return l2(m_id); }
|
||||||
inline uint32_t family() const { return family(m_id); }
|
inline uint32_t family() const { return family(m_id); }
|
||||||
inline uint32_t minIntensity() const { return ((family(m_id) == GHOSTRIDER) ? 8 : 1); };
|
inline uint32_t minIntensity() const { return ((m_id == GHOSTRIDER_RTM) ? 8 : 1); };
|
||||||
inline uint32_t maxIntensity() const { return isCN() ? 5 : ((family(m_id) == GHOSTRIDER) ? 8 : 1); };
|
inline uint32_t maxIntensity() const { return isCN() ? 5 : ((family(m_id) == GHOSTRIDER) ? 8 : 1); };
|
||||||
|
|
||||||
inline size_t l3() const { return l3(m_id); }
|
inline size_t l3() const { return l3(m_id); }
|
||||||
|
|
|
@ -321,7 +321,7 @@ public:
|
||||||
avg_hashrate_buf[0] = '\0';
|
avg_hashrate_buf[0] = '\0';
|
||||||
|
|
||||||
# ifdef XMRIG_ALGO_GHOSTRIDER
|
# ifdef XMRIG_ALGO_GHOSTRIDER
|
||||||
if (algorithm.family() == Algorithm::GHOSTRIDER) {
|
if (algorithm.id() == Algorithm::GHOSTRIDER_RTM) {
|
||||||
snprintf(avg_hashrate_buf, sizeof(avg_hashrate_buf), " avg " CYAN_BOLD("%s %s"), Hashrate::format(avg_hashrate * scale, num + 16 * 4, 16), h);
|
snprintf(avg_hashrate_buf, sizeof(avg_hashrate_buf), " avg " CYAN_BOLD("%s %s"), Hashrate::format(avg_hashrate * scale, num + 16 * 4, 16), h);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
@ -581,7 +581,7 @@ void xmrig::Miner::setJob(const Job &job, bool donate)
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef XMRIG_ALGO_GHOSTRIDER
|
# ifdef XMRIG_ALGO_GHOSTRIDER
|
||||||
if (job.algorithm().family() == Algorithm::GHOSTRIDER) {
|
if (job.algorithm().id() == Algorithm::GHOSTRIDER_RTM) {
|
||||||
d_ptr->initGhostRider();
|
d_ptr->initGhostRider();
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue