From 74d4b2d1c3e528a39253c8236f681d29580e001d Mon Sep 17 00:00:00 2001 From: Grzegorz Hasse Date: Sun, 19 Nov 2017 22:43:24 -0800 Subject: Extend low_power_mode to do up to 5 cn hashes at a time. The "low_power_mode" option in config.txt can be set to numeral values between 1 and 5. A value of 5 seems optimal on certain processors with large L4 cache. --- xmrstak/backend/cpu/minethd.hpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'xmrstak/backend/cpu/minethd.hpp') diff --git a/xmrstak/backend/cpu/minethd.hpp b/xmrstak/backend/cpu/minethd.hpp index 5520d9e..b8819d3 100644 --- a/xmrstak/backend/cpu/minethd.hpp +++ b/xmrstak/backend/cpu/minethd.hpp @@ -29,16 +29,21 @@ public: static cryptonight_ctx* minethd_alloc_ctx(); private: + typedef void (*cn_hash_fun_multi)(const void*, size_t, void*, cryptonight_ctx**); + static cn_hash_fun_multi func_multi_selector(size_t N, bool bHaveAes, bool bNoPrefetch, bool mineMonero); - typedef void (*cn_hash_fun_dbl)(const void*, size_t, void*, cryptonight_ctx* __restrict, cryptonight_ctx* __restrict); - static cn_hash_fun_dbl func_dbl_selector(bool bHaveAes, bool bNoPrefetch, bool mineMonero); + minethd(miner_work& pWork, size_t iNo, int iMultiway, bool no_prefetch, int64_t affinity); - minethd(miner_work& pWork, size_t iNo, bool double_work, bool no_prefetch, int64_t affinity); + void multiway_work_main(size_t N, cn_hash_fun_multi hash_fun_multi); void work_main(); void double_work_main(); + void triple_work_main(); + void quad_work_main(); + void penta_work_main(); + void consume_work(); - uint32_t* prep_double_work(uint8_t bDoubleWorkBlob[sizeof(miner_work::bWorkBlob) * 2]); + void prep_multiway_work(size_t N, uint8_t *bWorkBlob, uint32_t **piNonce); uint64_t iJobNo; -- cgit v1.1