Added class RxVm.
This commit is contained in:
parent
3bebf778da
commit
270d3ba6a2
8 changed files with 176 additions and 40 deletions
|
@ -29,7 +29,7 @@
|
|||
|
||||
#include "crypto/cn/CryptoNight_test.h"
|
||||
#include "crypto/rx/Rx.h"
|
||||
#include "crypto/rx/RxDataset.h"
|
||||
#include "crypto/rx/RxVm.h"
|
||||
#include "net/JobResults.h"
|
||||
#include "workers/CpuThreadLegacy.h"
|
||||
#include "workers/MultiWorker.h"
|
||||
|
@ -52,9 +52,7 @@ xmrig::MultiWorker<N>::~MultiWorker()
|
|||
Mem::release(m_ctx, N, m_memory);
|
||||
|
||||
# ifdef XMRIG_ALGO_RANDOMX
|
||||
if (m_rx_vm) {
|
||||
randomx_destroy_vm(m_rx_vm);
|
||||
}
|
||||
delete m_vm;
|
||||
# endif
|
||||
}
|
||||
|
||||
|
@ -63,18 +61,9 @@ xmrig::MultiWorker<N>::~MultiWorker()
|
|||
template<size_t N>
|
||||
void xmrig::MultiWorker<N>::allocateRandomX_VM()
|
||||
{
|
||||
if (!m_rx_vm) {
|
||||
int flags = RANDOMX_FLAG_LARGE_PAGES | RANDOMX_FLAG_FULL_MEM | RANDOMX_FLAG_JIT;
|
||||
if (!m_thread->isSoftAES()) {
|
||||
flags |= RANDOMX_FLAG_HARD_AES;
|
||||
}
|
||||
|
||||
if (!m_vm) {
|
||||
RxDataset *dataset = Rx::dataset(m_state.job.seedHash(), m_state.job.algorithm());
|
||||
|
||||
m_rx_vm = randomx_create_vm(static_cast<randomx_flags>(flags), nullptr, dataset->get());
|
||||
if (!m_rx_vm) {
|
||||
m_rx_vm = randomx_create_vm(static_cast<randomx_flags>(flags - RANDOMX_FLAG_LARGE_PAGES), nullptr, dataset->get());
|
||||
}
|
||||
m_vm = new RxVm(dataset, true, m_thread->isSoftAES());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -164,7 +153,7 @@ void xmrig::MultiWorker<N>::start()
|
|||
# ifdef XMRIG_ALGO_RANDOMX
|
||||
if (m_state.job.algorithm().family() == Algorithm::RANDOM_X) {
|
||||
allocateRandomX_VM();
|
||||
randomx_calculate_hash(m_rx_vm, m_state.blob, m_state.job.size(), m_hash);
|
||||
randomx_calculate_hash(m_vm->get(), m_state.blob, m_state.job.size(), m_hash);
|
||||
}
|
||||
else
|
||||
# endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue