mirror of
https://github.com/xmrig/xmrig.git
synced 2025-12-17 19:42:38 -05:00
xmrig v6.2.2 based release
This commit is contained in:
@@ -83,7 +83,8 @@ xmrig::OclWorker::OclWorker(size_t id, const OclLaunchData &data) :
|
||||
m_algorithm(data.algorithm),
|
||||
m_miner(data.miner),
|
||||
m_intensity(data.thread.intensity()),
|
||||
m_sharedData(OclSharedState::get(data.device.index()))
|
||||
m_sharedData(OclSharedState::get(data.device.index())),
|
||||
m_deviceIndex(data.device.index())
|
||||
{
|
||||
switch (m_algorithm.family()) {
|
||||
case Algorithm::RANDOM_X:
|
||||
@@ -210,7 +211,7 @@ void xmrig::OclWorker::start()
|
||||
}
|
||||
|
||||
if (results[0xFF] > 0) {
|
||||
JobResults::submit(m_job.currentJob(), results, results[0xFF]);
|
||||
JobResults::submit(m_job.currentJob(), results, results[0xFF], m_deviceIndex);
|
||||
}
|
||||
|
||||
if (!Nonce::isOutdated(Nonce::OPENCL, m_job.sequence()) && !m_job.nextRound(roundSize(runnerRoundSize), runnerRoundSize)) {
|
||||
|
||||
@@ -69,6 +69,7 @@ private:
|
||||
IOclRunner *m_runner = nullptr;
|
||||
OclSharedData &m_sharedData;
|
||||
WorkerJob<1> m_job;
|
||||
uint32_t m_deviceIndex;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -36,27 +36,29 @@ bool AdlLib::m_ready = false;
|
||||
static const std::string kPrefix = "/sys/bus/pci/drivers/amdgpu/";
|
||||
|
||||
|
||||
static inline bool sysfs_is_file(const char *path)
|
||||
static inline bool sysfs_is_file(const std::string &path)
|
||||
{
|
||||
struct stat sb;
|
||||
|
||||
return stat(path, &sb) == 0 && ((sb.st_mode & S_IFMT) == S_IFREG);
|
||||
return stat(path.c_str(), &sb) == 0 && ((sb.st_mode & S_IFMT) == S_IFREG);
|
||||
}
|
||||
|
||||
|
||||
static inline std::string sysfs_prefix(const PciTopology &topology)
|
||||
static inline bool sysfs_is_amdgpu(const std::string &path)
|
||||
{
|
||||
std::string path = kPrefix + "0000:" + topology.toString().data() + "/hwmon/hwmon";
|
||||
|
||||
if (sysfs_is_file((path + "2/name").c_str())) {
|
||||
return path + "2/";
|
||||
if (!sysfs_is_file(path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (sysfs_is_file((path + "3/name").c_str())) {
|
||||
return path + "3/";
|
||||
std::ifstream file(path);
|
||||
if (!file.is_open()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return {};
|
||||
std::string name;
|
||||
std::getline(file, name);
|
||||
|
||||
return name == "amdgpu";
|
||||
}
|
||||
|
||||
|
||||
@@ -74,6 +76,21 @@ uint32_t sysfs_read(const std::string &path)
|
||||
}
|
||||
|
||||
|
||||
static inline std::string sysfs_prefix(const PciTopology &topology)
|
||||
{
|
||||
const std::string path = kPrefix + "0000:" + topology.toString().data() + "/hwmon/hwmon";
|
||||
|
||||
for (uint32_t i = 1; i < 10; ++i) {
|
||||
const std::string prefix = path + std::to_string(i) + "/";
|
||||
if (sysfs_is_amdgpu(prefix + "name") && sysfs_read(prefix + "freq1_input")) {
|
||||
return prefix;
|
||||
}
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
} // namespace xmrig
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user