Display backend for shares.

This commit is contained in:
XMRig 2019-10-29 15:43:13 +07:00
parent b1eac17d60
commit 23ebcfb2db
14 changed files with 121 additions and 32 deletions

View file

@ -27,10 +27,15 @@
#define XMRIG_TAGS_H
#include <cstdint>
namespace xmrig {
const char *backend_tag(uint32_t backend);
const char *cpu_tag();
const char *net_tag();
#ifdef XMRIG_FEATURE_OPENCL

View file

@ -26,7 +26,7 @@
#define XMRIG_WORKERJOB_H
#include <string.h>
#include <cstring>
#include "base/net/stratum/Job.h"
@ -47,9 +47,9 @@ public:
inline uint8_t index() const { return m_index; }
inline void add(const Job &job, uint64_t sequence, uint32_t reserveCount)
inline void add(const Job &job, uint32_t reserveCount, Nonce::Backend backend)
{
m_sequence = sequence;
m_sequence = Nonce::sequence(backend);
if (currentJob() == job) {
return;
@ -60,7 +60,7 @@ public:
return;
}
save(job, reserveCount);
save(job, reserveCount, backend);
}
@ -82,13 +82,15 @@ public:
private:
inline void save(const Job &job, uint32_t reserveCount)
inline void save(const Job &job, uint32_t reserveCount, Nonce::Backend backend)
{
m_index = job.index();
const size_t size = job.size();
m_jobs[index()] = job;
m_rounds[index()] = 0;
m_jobs[index()].setBackend(backend);
for (size_t i = 0; i < N; ++i) {
memcpy(m_blobs[index()] + (i * size), job.blob(), size);
*nonce(i) = Nonce::next(index(), *nonce(i), reserveCount, job.isNicehash());
@ -96,7 +98,7 @@ private:
}
alignas(16) uint8_t m_blobs[2][Job::kMaxBlobSize * N];
alignas(16) uint8_t m_blobs[2][Job::kMaxBlobSize * N]{};
Job m_jobs[2];
uint32_t m_rounds[2] = { 0, 0 };
uint64_t m_sequence = 0;
@ -126,12 +128,14 @@ inline void xmrig::WorkerJob<1>::nextRound(uint32_t rounds, uint32_t roundSize)
template<>
inline void xmrig::WorkerJob<1>::save(const Job &job, uint32_t reserveCount)
inline void xmrig::WorkerJob<1>::save(const Job &job, uint32_t reserveCount, Nonce::Backend backend)
{
m_index = job.index();
m_jobs[index()] = job;
m_rounds[index()] = 0;
m_jobs[index()].setBackend(backend);
memcpy(blob(), job.blob(), job.size());
*nonce() = Nonce::next(index(), *nonce(), reserveCount, currentJob().isNicehash());
}

View file

@ -210,6 +210,24 @@ public:
} // namespace xmrig
const char *xmrig::backend_tag(uint32_t backend)
{
# ifdef XMRIG_FEATURE_OPENCL
if (backend == Nonce::OPENCL) {
return ocl_tag();
}
# endif
# ifdef XMRIG_FEATURE_CUDA
if (backend == Nonce::CUDA) {
return cuda_tag();
}
# endif
return tag;
}
const char *xmrig::cpu_tag()
{
return tag;

View file

@ -303,7 +303,7 @@ void xmrig::CpuWorker<N>::consumeJob()
return;
}
m_job.add(m_miner->job(), Nonce::sequence(Nonce::CPU), kReserveCount);
m_job.add(m_miner->job(), kReserveCount, Nonce::CPU);
# ifdef XMRIG_ALGO_RANDOMX
if (m_job.currentJob().algorithm().family() == Algorithm::RANDOM_X) {

View file

@ -153,7 +153,7 @@ bool xmrig::CudaWorker::consumeJob()
}
const size_t batch_size = intensity();
m_job.add(m_miner->job(), Nonce::sequence(Nonce::CUDA), roundSize(batch_size) * batch_size);
m_job.add(m_miner->job(), roundSize(batch_size) * batch_size, Nonce::CUDA);
return m_runner->set(m_job.currentJob(), m_job.blob());;
}

View file

@ -206,7 +206,7 @@ bool xmrig::OclWorker::consumeJob()
return false;
}
m_job.add(m_miner->job(), Nonce::sequence(Nonce::OPENCL), roundSize(m_intensity) * m_intensity);
m_job.add(m_miner->job(), roundSize(m_intensity) * m_intensity, Nonce::OPENCL);
try {
m_runner->set(m_job.currentJob(), m_job.blob());