diff options
-rw-r--r-- | xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu | 5 | ||||
-rw-r--r-- | xmrstak/cli/cli-miner.cpp | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu b/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu index 0925fd5..c2a1f87 100644 --- a/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu +++ b/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu @@ -127,7 +127,7 @@ __global__ void cryptonight_extra_gpu_prepare( int threads, uint32_t * __restric uint32_t ctx_b[4]; uint32_t ctx_key1[40]; uint32_t ctx_key2[40]; - uint32_t input[28]; + uint32_t input[21]; memcpy( input, d_input, len ); //*((uint32_t *)(((char *)input) + 39)) = startNonce + thread; @@ -299,7 +299,8 @@ extern "C" int cryptonight_extra_cpu_init(nvid_ctx* ctx) CUDA_CHECK(ctx->device_id, cudaMalloc(&ctx->d_ctx_text, 32 * sizeof(uint32_t) * wsize)); CUDA_CHECK(ctx->device_id, cudaMalloc(&ctx->d_ctx_a, 4 * sizeof(uint32_t) * wsize)); CUDA_CHECK(ctx->device_id, cudaMalloc(&ctx->d_ctx_b, ctx_b_size)); - CUDA_CHECK(ctx->device_id, cudaMalloc(&ctx->d_input, 28 * sizeof (uint32_t ) )); + // POW block format http://monero.wikia.com/wiki/PoW_Block_Header_Format + CUDA_CHECK(ctx->device_id, cudaMalloc(&ctx->d_input, 21 * sizeof (uint32_t ) )); CUDA_CHECK(ctx->device_id, cudaMalloc(&ctx->d_result_count, sizeof (uint32_t ) )); CUDA_CHECK(ctx->device_id, cudaMalloc(&ctx->d_result_nonce, 10 * sizeof (uint32_t ) )); CUDA_CHECK_MSG( diff --git a/xmrstak/cli/cli-miner.cpp b/xmrstak/cli/cli-miner.cpp index 9a1becf..2e84ec5 100644 --- a/xmrstak/cli/cli-miner.cpp +++ b/xmrstak/cli/cli-miner.cpp @@ -783,7 +783,10 @@ int do_benchmark(int block_version) printer::inst()->print_msg(L0, "Wait 30 sec until all backends are initialized"); std::this_thread::sleep_for(std::chrono::seconds(30)); - xmrstak::miner_work benchWork = xmrstak::miner_work("", work, sizeof(work), 0, false, 0); + /* AMD and NVIDIA is currently only supporting work sizes up to 84byte + * \todo fix this issue + */ + xmrstak::miner_work benchWork = xmrstak::miner_work("", work, 84, 0, false, 0); printer::inst()->print_msg(L0, "Start a 60 second benchmark..."); xmrstak::globalStates::inst().switch_work(benchWork, dat); uint64_t iStartStamp = get_timestamp_ms(); |