xmrig / xmrig-cuda

NVIDIA CUDA plugin for XMRig miner
GNU General Public License v3.0
365 stars 154 forks source link

6.4.0 nvidia thread #1 failed with error Unsupported algorithm #72

Closed tymoteuszrogalewski closed 3 years ago

tymoteuszrogalewski commented 3 years ago

mining kawpow on NVIDIA GTX 1070 - works ok on xmrig 6.3.5, and stop working with 6.4.0 On AMD (RX 5500 and 5600) - work ok with both versions (xmrig using opencl)

[2020-10-19 09:00:57.681] nvidia KawPow DAG for epoch 194 calculated (14550ms) [2020-10-19 09:00:57.681] nvidia thread #0 failed with error Unsupported algorithm ...and same error on all threads

Rig is Ubuntu based. Manually compiled with same procedure as always and on same machine as always: xmrig-cuda: cd cmake && export PATH=/usr/local/cuda-10.0/bin:$PATH; cmake .. -DCMAKE_C_COMPILER=gcc-5 -DCMAKE_CXX_COMPILER=g++-5 -DCUDA_LIB=/usr/local/cuda/lib64/stubs/libcuda.so && make -j12 xmrig: cd cmake && cmake .. -DCMAKE_C_COMPILER=gcc-5 -DCMAKE_CXX_COMPILER=g++-5 && make -j32

running options: --opencl --cuda --no-cpu -o stratum.ravenminer.com:3838 -a kawpow -u xxxxxxxxx -p x --print-time=5 --http-port=3333

full logs running 6.3.5 and 6.4.0 on this NV rig:

6.3.5:

6.4.0:

SChernykh commented 3 years ago

Manually compiled with same procedure as always and on same machine as always

You need to add -DWITH_DRIVER_API=ON to enable kawpow in XMRig-CUDA 6.4.0: https://github.com/xmrig/xmrig-cuda/commit/e78783572b9898360ff6140efc9a17ec30438eff

xmrig commented 3 years ago

It should be enabled by default, but it might somehow disabled in your build and you need to explicitly enable it, also plugin 6.3.2 should work with the new miner. Thank you.

tymoteuszrogalewski commented 3 years ago

Hi Using old 6.3.2 cuda plugin helps.

But the 6.4.0... In the downloaded sources there is already set ON as default: option(WITH_DRIVER_API "Enable CUDA Driver API and NVRTC, required for cn/r and kawpow algorithms" ON)

adding -DWITH_DRIVER_API=ON to cmake didnt help - same error during mining. I even try to remove all "if" lines in sources, as below: if (WITH_DRIVER_API) in these few files...but still same error during mining.

Compile log below: as I see the kawpow "stuff" is compiled. maybe some other missing code is some there??

/xxx/xmrig-cuda-6.4.0# cuda 9.2; cd cmake && export PATH=/usr/local/cuda-9.2/bin:$PATH; cmake .. -DWITH_DRIVER_API=ON -DCMAKE_C_COMPILER=gcc-5 -DCMAKE_CXX_COMPILER=g++-5 -DCUDA_LIB=/usr/local/cuda/lib64/stubs/libcuda.so && make -j12 -- The C compiler identification is GNU 5.4.0 -- The CXX compiler identification is GNU 5.4.0 -- Check for working C compiler: /usr/bin/gcc-5 -- Check for working C compiler: /usr/bin/gcc-5 -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/g++-5 -- Check for working CXX compiler: /usr/bin/g++-5 -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for builtin___clear_cache -- Looking for builtin___clear_cache - found -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Found CUDA: /usr/local/cuda-9.2 (found suitable version "9.2", minimum required is "9.0") -- Configuring done -- Generating done -- Build files have been written to: /home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/cmake [ 6%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/arqma/xmrig-cu_generated_randomx_arqma.cu.o [ 18%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/keva/xmrig-cu_generated_randomx_keva.cu.o [ 18%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/monero/xmrig-cu_generated_randomx_monero.cu.o [ 25%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/xmrig-cu_generated_cuda_extra.cu.o [ 31%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/KawPow/raven/xmrig-cu_generated_KawPow.cu.o [ 37%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/wownero/xmrig-cu_generated_randomx_wownero.cu.o [ 43%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/xmrig-cu_generated_cuda_core.cu.o [ 50%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/AstroBWT/dero/xmrig-cu_generated_AstroBWT.cu.o [ 56%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/xmrig-cu_generated_randomx.cu.o /home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/src/RandomX/randomx_cuda.hpp(319): warning: pointless comparison of unsigned integer with zero

/home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/src/RandomX/randomx_cuda.hpp(319): warning: pointless comparison of unsigned integer with zero

/usr/local/cuda-9.2/include/thrust/system/cuda/detail/util.h:189:13: warning: ‘void thrust::cuda_cub::throw_on_error(cudaError_t, const char)’ defined but not used [-Wunused-function] throw_on_error(cudaError_t status, char const msg) ^ cc1plus: warning: unrecognized command line option ‘-Wno-class-memaccess’ /home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/src/RandomX/randomx_cuda.hpp(319): warning: pointless comparison of unsigned integer with zero

/home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/src/RandomX/randomx_cuda.hpp(319): warning: pointless comparison of unsigned integer with zero

/home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/src/RandomX/randomx_cuda.hpp(319): warning: pointless comparison of unsigned integer with zero

/home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/src/cuda_extra.cu: In function ‘int cuda_get_deviceinfo(nvid_ctx*)’: /home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/src/cuda_extra.cu:569:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (ctx->device_blocks > max_blocks) { ^ At global scope: cc1plus: warning: unrecognized command line option ‘-Wno-class-memaccess’ Scanning dependencies of target xmrig-cu [ 62%] Building CXX object CMakeFiles/xmrig-cu.dir/src/KawPow/raven/CudaKawPow_gen.cpp.o [ 68%] Linking CXX static library libxmrig-cu.a [ 68%] Built target xmrig-cu Scanning dependencies of target xmrig-cuda [ 75%] Building C object CMakeFiles/xmrig-cuda.dir/src/crypto/cn/c_blake256.c.o [ 81%] Building CXX object CMakeFiles/xmrig-cuda.dir/src/crypto/common/Algorithm.cpp.o [ 87%] Building CXX object CMakeFiles/xmrig-cuda.dir/src/xmrig-cuda.cpp.o [ 93%] Building CXX object CMakeFiles/xmrig-cuda.dir/src/CudaCryptonightR_gen.cpp.o [100%] Linking CXX shared library libxmrig-cuda.so [100%] Built target xmrig-cuda

SChernykh commented 3 years ago

It looks like you didn't clear your build folder before building new code. Internal algorithm IDs changed in 6.4.0 and if you link some compiled files from 6.3.2 with other files from 6.4.0, it can break. Delete the whole folder and build from scratch.

tymoteuszrogalewski commented 3 years ago

All is deleted every new build - everytime start from fresh folder ;-)

Specially for you I now did again from scratch: (this time compile with CUDA 9.2...but issue same, as with CUDA 10)

exactly as follow: rm -rf * (:xD) wget https://github.com/xmrig/xmrig-cuda/archive/v6.4.0.tar.gz tar -xzf v6.4.0.tar.gz cd xmrig-cuda-6.4.0 cd cmake && export PATH=/usr/local/cuda-9.2/bin:$PATH; cmake .. -DWITH_DRIVER_API=ON -DCMAKE_C_COMPILER=gcc-5 -DCMAKE_CXX_COMPILER=g++-5 -DCUDA_LIB=/usr/local/cuda/lib64/stubs/libcuda.so && make -j12

some logs during compile: -- Build files have been written to: /home/miner/tym/xmrig-cuda/xmrig-cuda-6.4.0/cmake [ 12%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/KawPow/raven/xmrig-cu_generated_KawPow.cu.o [ 12%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/xmrig-cu_generated_cuda_core.cu.o [ 18%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/xmrig-cu_generated_cuda_extra.cu.o [ 25%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/keva/xmrig-cu_generated_randomx_keva.cu.o [ 31%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/monero/xmrig-cu_generated_randomx_monero.cu.o [ 37%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/xmrig-cu_generated_randomx.cu.o [ 43%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/wownero/xmrig-cu_generated_randomx_wownero.cu.o [ 50%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/arqma/xmrig-cu_generated_randomx_arqma.cu.o [ 56%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/AstroBWT/dero/xmrig-cu_generated_AstroBWT.cu.o [ 62%] Building CXX object CMakeFiles/xmrig-cu.dir/src/KawPow/raven/CudaKawPow_gen.cpp.o [ 68%] Linking CXX static library libxmrig-cu.a [ 68%] Built target xmrig-cu [ 75%] Building C object CMakeFiles/xmrig-cuda.dir/src/crypto/cn/c_blake256.c.o [ 81%] Building CXX object CMakeFiles/xmrig-cuda.dir/src/crypto/common/Algorithm.cpp.o [ 87%] Building CXX object CMakeFiles/xmrig-cuda.dir/src/xmrig-cuda.cpp.o [ 93%] Building CXX object CMakeFiles/xmrig-cuda.dir/src/CudaCryptonightR_gen.cpp.o [100%] Linking CXX shared library libxmrig-cuda.so [100%] Built target xmrig-cuda

now copy file libxmrig-cuda.so to the folder xmrig-v6.4.0 - where I have all is required to run miner: xmrig binary compiled from sources libnvrtc-builtins.so and libnvrtc.so.9.2 libraries from cuda 9.2 package xmrig-6.4.0 was also compiled from scratch with fresh empty folder...as always I do.

and then run miner with prepended: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./; export LD_LIBRARY_PATH; to get working local folder cuda libraries

and....errors still as in first post.

SChernykh commented 3 years ago

There was an algorithm list mismatch in 6.4.0 between xmrig and xmrig-cuda.

tymoteuszrogalewski commented 3 years ago

@SChernykh thanks. this patch helps and now cuda plugin works ;-)

jgonzis commented 3 years ago

That Works perfect!!! Manually update Algoritm list and working!!

xmrig commented 3 years ago

https://github.com/xmrig/xmrig-cuda/releases/tag/v6.4.1 This was Linux specific bug, algorithm id mismatch wasn't a root issue, it just hid a real issue for long time Thank you.