mirror of
https://github.com/xmrig/xmrig.git
synced 2025-12-24 13:32:46 -05:00
This commit is contained in:
@@ -37,12 +37,20 @@ namespace xmrig {
|
||||
class ICpuInfo
|
||||
{
|
||||
public:
|
||||
enum Vendor {
|
||||
enum Vendor : uint32_t {
|
||||
VENDOR_UNKNOWN,
|
||||
VENDOR_INTEL,
|
||||
VENDOR_AMD
|
||||
};
|
||||
|
||||
enum MsrMod : uint32_t {
|
||||
MSR_MOD_NONE,
|
||||
MSR_MOD_RYZEN,
|
||||
MSR_MOD_INTEL,
|
||||
MSR_MOD_CUSTOM,
|
||||
MSR_MOD_MAX
|
||||
};
|
||||
|
||||
virtual ~ICpuInfo() = default;
|
||||
|
||||
# if defined(__x86_64__) || defined(_M_AMD64) || defined (__arm64__) || defined (__aarch64__)
|
||||
@@ -58,6 +66,7 @@ public:
|
||||
virtual const char *backend() const = 0;
|
||||
virtual const char *brand() const = 0;
|
||||
virtual CpuThreads threads(const Algorithm &algorithm, uint32_t limit) const = 0;
|
||||
virtual MsrMod msrMod() const = 0;
|
||||
virtual size_t cores() const = 0;
|
||||
virtual size_t L2() const = 0;
|
||||
virtual size_t L3() const = 0;
|
||||
|
||||
@@ -139,7 +139,13 @@ xmrig::AdvancedCpuInfo::AdvancedCpuInfo() :
|
||||
m_aes = true;
|
||||
|
||||
if (m_vendor == VENDOR_AMD) {
|
||||
m_assembly = (data.ext_family >= 23) ? Assembly::RYZEN : Assembly::BULLDOZER;
|
||||
if (data.ext_family >= 23) {
|
||||
m_assembly = Assembly::RYZEN;
|
||||
m_msrMod = MSR_MOD_RYZEN;
|
||||
}
|
||||
else {
|
||||
m_assembly = Assembly::BULLDOZER;
|
||||
}
|
||||
}
|
||||
else if (m_vendor == VENDOR_INTEL) {
|
||||
m_assembly = Assembly::INTEL;
|
||||
|
||||
@@ -46,6 +46,7 @@ protected:
|
||||
inline bool hasOneGbPages() const override { return m_pdpe1gb; }
|
||||
inline const char *backend() const override { return m_backend; }
|
||||
inline const char *brand() const override { return m_brand; }
|
||||
inline MsrMod msrMod() const override { return m_msrMod; }
|
||||
inline size_t cores() const override { return m_cores; }
|
||||
inline size_t L2() const override { return m_L2; }
|
||||
inline size_t L3() const override { return m_L3; }
|
||||
@@ -62,6 +63,7 @@ private:
|
||||
char m_backend[32]{};
|
||||
char m_brand[64 + 5]{};
|
||||
const bool m_pdpe1gb = false;
|
||||
MsrMod m_msrMod = MSR_MOD_NONE;
|
||||
size_t m_cores = 0;
|
||||
size_t m_L2 = 0;
|
||||
size_t m_L3 = 0;
|
||||
|
||||
@@ -175,11 +175,18 @@ xmrig::BasicCpuInfo::BasicCpuInfo() :
|
||||
cpuid(PROCESSOR_INFO, data);
|
||||
const int32_t family = get_masked(data[EAX_Reg], 12, 8) + get_masked(data[EAX_Reg], 28, 20);
|
||||
|
||||
m_assembly = family >= 23 ? Assembly::RYZEN : Assembly::BULLDOZER;
|
||||
if (family >= 23) {
|
||||
m_assembly = Assembly::RYZEN;
|
||||
m_msrMod = MSR_MOD_RYZEN;
|
||||
}
|
||||
else {
|
||||
m_assembly = Assembly::BULLDOZER;
|
||||
}
|
||||
}
|
||||
else if (memcmp(vendor, "GenuineIntel", 12) == 0) {
|
||||
m_vendor = VENDOR_INTEL;
|
||||
m_assembly = Assembly::INTEL;
|
||||
m_msrMod = MSR_MOD_INTEL;
|
||||
}
|
||||
}
|
||||
# endif
|
||||
|
||||
@@ -46,6 +46,7 @@ protected:
|
||||
inline bool hasAVX2() const override { return m_avx2; }
|
||||
inline bool hasOneGbPages() const override { return m_pdpe1gb; }
|
||||
inline const char *brand() const override { return m_brand; }
|
||||
inline MsrMod msrMod() const override { return m_msrMod; }
|
||||
inline size_t cores() const override { return 0; }
|
||||
inline size_t L2() const override { return 0; }
|
||||
inline size_t L3() const override { return 0; }
|
||||
@@ -63,6 +64,7 @@ private:
|
||||
bool m_aes = false;
|
||||
const bool m_avx2 = false;
|
||||
const bool m_pdpe1gb = false;
|
||||
MsrMod m_msrMod = MSR_MOD_NONE;
|
||||
Vendor m_vendor = VENDOR_UNKNOWN;
|
||||
};
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
|
||||
#include "backend/cuda/wrappers/CudaLib.h"
|
||||
#include "crypto/rx/RxAlgo.h"
|
||||
|
||||
|
||||
namespace xmrig {
|
||||
@@ -163,7 +164,7 @@ bool xmrig::CudaLib::rxPrepare(nvid_ctx *ctx, const void *dataset, size_t datase
|
||||
|
||||
bool xmrig::CudaLib::setJob(nvid_ctx *ctx, const void *data, size_t size, const Algorithm &algorithm) noexcept
|
||||
{
|
||||
return pSetJob(ctx, data, size, algorithm);
|
||||
return pSetJob(ctx, data, size, RxAlgo::id(algorithm));
|
||||
}
|
||||
|
||||
|
||||
@@ -187,7 +188,7 @@ const char *xmrig::CudaLib::pluginVersion() noexcept
|
||||
|
||||
int xmrig::CudaLib::deviceInfo(nvid_ctx *ctx, int32_t blocks, int32_t threads, const Algorithm &algorithm, int32_t dataset_host) noexcept
|
||||
{
|
||||
return pDeviceInfo(ctx, blocks, threads, algorithm, dataset_host);
|
||||
return pDeviceInfo(ctx, blocks, threads, RxAlgo::id(algorithm), dataset_host);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
|
||||
|
||||
#include "backend/opencl/OclLaunchData.h"
|
||||
|
||||
#include "backend/common/Tags.h"
|
||||
#include "backend/opencl/OclConfig.h"
|
||||
|
||||
|
||||
@@ -20,9 +20,10 @@
|
||||
#define ALGO_RX_WOW 19
|
||||
#define ALGO_RX_LOKI 20
|
||||
#define ALGO_RX_ARQMA 21
|
||||
#define ALGO_AR2_CHUKWA 22
|
||||
#define ALGO_AR2_WRKZ 23
|
||||
#define ALGO_RX_V 24
|
||||
#define ALGO_RX_SFX 22
|
||||
#define ALGO_RX_V 23
|
||||
#define ALGO_AR2_CHUKWA 24
|
||||
#define ALGO_AR2_WRKZ 25
|
||||
|
||||
#define FAMILY_UNKNOWN 0
|
||||
#define FAMILY_CN 1
|
||||
|
||||
@@ -56,7 +56,7 @@ xmrig::OclRxBaseRunner::OclRxBaseRunner(size_t index, const OclLaunchData &data)
|
||||
m_gcn_version = 14;
|
||||
}
|
||||
|
||||
m_options += " -DALGO=" + std::to_string(m_algorithm.id());
|
||||
m_options += " -DALGO=" + std::to_string(RxAlgo::id(m_algorithm));
|
||||
m_options += " -DWORKERS_PER_HASH=" + std::to_string(m_worksize);
|
||||
m_options += " -DGCN_VERSION=" + std::to_string(m_gcn_version);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user