diff options
-rw-r--r-- | .appveyor.yml | 3 | ||||
-rw-r--r-- | CMakeLists.txt | 10 | ||||
-rw-r--r-- | xmrstak/backend/nvidia/nvcc_code/cuda_core.cu | 2 | ||||
-rw-r--r-- | xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu | 17 | ||||
-rw-r--r-- | xmrstak/cli/cli-miner.cpp | 1 | ||||
-rw-r--r-- | xmrstak/misc/console.cpp | 5 | ||||
-rw-r--r-- | xmrstak/net/socket.cpp | 2 |
7 files changed, 26 insertions, 14 deletions
diff --git a/.appveyor.yml b/.appveyor.yml index b463d0d..c336842 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -29,4 +29,5 @@ test_script: - cd c:\xmr-stak\build\bin\Release - dir - copy C:\xmr-stak-dep\openssl\bin\* . -# - xmr-stak.exe --help + - set XMRSTAK_NOWAIT=1 + - xmr-stak.exe --help --noUAC diff --git a/CMakeLists.txt b/CMakeLists.txt index 15c8c8b..8bf8e8c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,7 +108,11 @@ if(CUDA_ENABLE) endif() # add Volta support for CUDA >= 9.0 if(NOT CUDA_VERSION VERSION_LESS 9.0) - list(APPEND DEFAULT_CUDA_ARCH "70") + # Volta GPUs are currently not supported on MACOSX + # https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-general-known-issues + if(NOT APPLE) + list(APPEND DEFAULT_CUDA_ARCH "70") + endif() endif() set(CUDA_ARCH "${DEFAULT_CUDA_ARCH}" CACHE STRING "Set GPU architecture (semicolon separated list, e.g. '-DCUDA_ARCH=20;35;60')") @@ -191,7 +195,9 @@ if(CUDA_ENABLE) set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}" "-D_MWAITXINTRIN_H_INCLUDED") endif() - if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" AND CUDA_VERSION VERSION_EQUAL 9.0) + if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" AND + (CUDA_VERSION VERSION_EQUAL 9.0 OR CUDA_VERSION VERSION_EQUAL 9.1) + ) # workaround find_package(CUDA) is using the wrong path to the CXX host compiler # overwrite the CUDA host compiler variable with the used CXX MSVC set(CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER} CACHE FILEPATH "Host side compiler used by NVCC" FORCE) diff --git a/xmrstak/backend/nvidia/nvcc_code/cuda_core.cu b/xmrstak/backend/nvidia/nvcc_code/cuda_core.cu index 0b175b5..15a6f36 100644 --- a/xmrstak/backend/nvidia/nvcc_code/cuda_core.cu +++ b/xmrstak/backend/nvidia/nvcc_code/cuda_core.cu @@ -19,7 +19,7 @@ extern "C" void compat_usleep(uint64_t waitTime) HANDLE timer; LARGE_INTEGER ft; - ft.QuadPart = -(10*waitTime); // Convert to 100 nanosecond interval, negative value indicates relative time + ft.QuadPart = -10ll * int64_t(waitTime); // Convert to 100 nanosecond interval, negative value indicates relative time timer = CreateWaitableTimer(NULL, TRUE, NULL); SetWaitableTimer(timer, &ft, 0, NULL, NULL, 0); diff --git a/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu b/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu index 734426c..d865e13 100644 --- a/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu +++ b/xmrstak/backend/nvidia/nvcc_code/cuda_extra.cu @@ -6,7 +6,6 @@ #include <vector> #include <cuda.h> #include <cuda_runtime.h> -#include <device_functions.hpp> #include <algorithm> #include "xmrstak/jconf.hpp" @@ -188,24 +187,24 @@ extern "C" int cryptonight_extra_cpu_init(nvid_ctx* ctx) return 0; } - cudaDeviceReset(); + CUDA_CHECK(ctx->device_id, cudaDeviceReset()); switch(ctx->syncMode) { case 0: - cudaSetDeviceFlags(cudaDeviceScheduleAuto); + CUDA_CHECK(ctx->device_id, cudaSetDeviceFlags(cudaDeviceScheduleAuto)); break; case 1: - cudaSetDeviceFlags(cudaDeviceScheduleSpin); + CUDA_CHECK(ctx->device_id, cudaSetDeviceFlags(cudaDeviceScheduleSpin)); break; case 2: - cudaSetDeviceFlags(cudaDeviceScheduleYield); + CUDA_CHECK(ctx->device_id, cudaSetDeviceFlags(cudaDeviceScheduleYield)); break; case 3: - cudaSetDeviceFlags(cudaDeviceScheduleBlockingSync); + CUDA_CHECK(ctx->device_id, cudaSetDeviceFlags(cudaDeviceScheduleBlockingSync)); break; }; - cudaDeviceSetCacheConfig(cudaFuncCachePreferL1); + CUDA_CHECK(ctx->device_id, cudaDeviceSetCacheConfig(cudaFuncCachePreferL1)); size_t hashMemSize; if(::jconf::inst()->IsCurrencyMonero()) @@ -464,9 +463,9 @@ extern "C" int cuda_get_deviceinfo(nvid_ctx* ctx) size_t totalMemory = 0; CUDA_CHECK(ctx->device_id, cudaMemGetInfo(&freeMemory, &totalMemory)); - cudaFree(tmp); + CUDA_CHECK(ctx->device_id, cudaFree(tmp)); // delete created context on the gpu - cudaDeviceReset(); + CUDA_CHECK(ctx->device_id, cudaDeviceReset()); ctx->total_device_memory = totalMemory; ctx->free_device_memory = freeMemory; diff --git a/xmrstak/cli/cli-miner.cpp b/xmrstak/cli/cli-miner.cpp index 6da0855..828f714 100644 --- a/xmrstak/cli/cli-miner.cpp +++ b/xmrstak/cli/cli-miner.cpp @@ -51,6 +51,7 @@ #ifdef _WIN32 # define strcasecmp _stricmp +# include <windows.h> #endif // _WIN32 void do_benchmark(); diff --git a/xmrstak/misc/console.cpp b/xmrstak/misc/console.cpp index 980760e..de5eed3 100644 --- a/xmrstak/misc/console.cpp +++ b/xmrstak/misc/console.cpp @@ -211,6 +211,11 @@ void printer::print_str(const char* str) std::unique_lock<std::mutex> lck(print_mutex); fputs(str, stdout); + if (b_flush_stdout) + { + fflush(stdout); + } + if(logfile != nullptr) { fputs(str, logfile); diff --git a/xmrstak/net/socket.cpp b/xmrstak/net/socket.cpp index 7079205..e19d1d4 100644 --- a/xmrstak/net/socket.cpp +++ b/xmrstak/net/socket.cpp @@ -188,7 +188,7 @@ void tls_socket::print_error() if(buf == nullptr) { if(jconf::inst()->TlsSecureAlgos()) - pCallback->set_socket_error("Unknown TLS error. Secure TLS maybe unspported, try setting tls_secure_algo to false."); + pCallback->set_socket_error("Unknown TLS error. Secure TLS maybe unsupported, try setting tls_secure_algo to false."); else pCallback->set_socket_error("Unknown TLS error."); } |