summaryrefslogtreecommitdiffstats
path: root/xmrstak/backend/nvidia/autoAdjust.hpp
diff options
context:
space:
mode:
authorpsychocrypt <psychocrypt@users.noreply.github.com>2017-11-14 21:18:30 +0100
committerpsychocrypt <psychocrypt@users.noreply.github.com>2017-11-15 16:26:58 +0100
commit0659458523671d53e4eddd940ade8ac9f72b1bbe (patch)
tree94156c9e10ed97cd80aeb39fa9e3439020b74394 /xmrstak/backend/nvidia/autoAdjust.hpp
parent288363814fb091ccfc452f0408bfa53727fc30c0 (diff)
downloadxmr-stak-0659458523671d53e4eddd940ade8ac9f72b1bbe.zip
xmr-stak-0659458523671d53e4eddd940ade8ac9f72b1bbe.tar.gz
fix wrong memory detection
Free and total memory is only evaluated on the first device. To detect the gpu memory the gpu must be selected. - create context on the gpu before the memory is checked - add smx to the auto detection - change the result code of `cuda_get_deviceinfo()`
Diffstat (limited to 'xmrstak/backend/nvidia/autoAdjust.hpp')
-rw-r--r--xmrstak/backend/nvidia/autoAdjust.hpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/xmrstak/backend/nvidia/autoAdjust.hpp b/xmrstak/backend/nvidia/autoAdjust.hpp
index bf04518..d36a46a 100644
--- a/xmrstak/backend/nvidia/autoAdjust.hpp
+++ b/xmrstak/backend/nvidia/autoAdjust.hpp
@@ -60,17 +60,15 @@ public:
ctx.device_bfactor = 6;
ctx.device_bsleep = 25;
#endif
- if( cuda_get_deviceinfo(&ctx) != 1 )
- {
- printer::inst()->print_msg(L0, "Setup failed for GPU %d. Exitting.\n", i);
- std::exit(0);
- }
- nvidCtxVec.push_back(ctx);
+ if(cuda_get_deviceinfo(&ctx) == 0)
+ nvidCtxVec.push_back(ctx);
+ else
+ printer::inst()->print_msg(L0, "WARNING: NVIDIA setup failed for GPU %d.\n", i);
}
generateThreadConfig();
- return true;
+ return true;
}
@@ -94,6 +92,7 @@ private:
{
conf += std::string(" // gpu: ") + ctx.name + " architecture: " + std::to_string(ctx.device_arch[0] * 10 + ctx.device_arch[1]) + "\n";
conf += std::string(" // memory: ") + std::to_string(ctx.free_device_memory / byte2mib) + "/" + std::to_string(ctx.total_device_memory / byte2mib) + " MiB\n";
+ conf += std::string(" // smx: ") + std::to_string(ctx.device_mpcount) + "\n";
conf += std::string(" { \"index\" : ") + std::to_string(ctx.device_id) + ",\n" +
" \"threads\" : " + std::to_string(ctx.device_threads) + ", \"blocks\" : " + std::to_string(ctx.device_blocks) + ",\n" +
" \"bfactor\" : " + std::to_string(ctx.device_bfactor) + ", \"bsleep\" : " + std::to_string(ctx.device_bsleep) + ",\n" +
OpenPOWER on IntegriCloud