fireice-uk / xmr-stak

Free Monero RandomX Miner and unified CryptoNight miner
GNU General Public License v3.0
4.05k stars 1.79k forks source link

NVIDIA [CUDA] Error: invalid configuration argument #329

Closed avb1213 closed 6 years ago

avb1213 commented 6 years ago

Hi. I notice, when I compile xmr-stack for both monero and aeon (without XMR-STAK_CURRENCY in cmake) then try to run it with NVIDIA card with autoconfig for MONERO I have this error:

[CUDA] Error gpu 0: </home/user/xmr-stak/xmrstak/backend/nvidia/nvcc_code/cuda_core.cu>:341
terminate called after throwing an instance of 'std::runtime_error'
  what():  [CUDA] Error: invalid configuration argument
Aborted

Run on NVIDIA with autoconfig for AEON - without problem.

Xmr-stak compilled only for MONERO run fine on NVIDIA. OS: Linux

psychocrypt commented 6 years ago

reduce the option tgreads or plocks in the config file nvidia.txt.

psychocrypt commented 6 years ago

could you please post the nvidia.txt config which triggered the error.

avb1213 commented 6 years ago
"gpu_threads_conf" :
[
  // gpu: Tesla K20c architecture: 35
  //      memory: 4987/5061 MiB
  //      smx: 13
  { "index" : 0,
    "threads" : 26, "blocks" : 39,
    "bfactor" : 0, "bsleep" :  0,
    "affine_to_cpu" : false,
  },

],
avb1213 commented 6 years ago

I change bfactor to 4 and 8, but same result

psychocrypt commented 6 years ago

please post all commands and output from the compile and how you start the miner up to the crash

avb1213 commented 6 years ago

I use Intel C compiler and try on master and dev branch.

# CONFIG
[build_test]$ cmake .. -DXMR-STAK_COMPILE=generic -DMICROHTTPD_ENABLE=OFF -DHWLOC_ENABLE=ON -DOpenSSL_ENABLE=OFF -DCMAKE_LINK_STATIC=ON -DOpenCL_ENABLE=OFF -DCUDA_ENABLE=ON -DCUDA_ARCH='20;35'
-- The C compiler identification is Intel 16.0.3.20160415
-- The CXX compiler identification is Intel 16.0.3.20160415
-- Check for working C compiler: /home/intel/compilers_and_libraries_2016.3.210/linux/bin/intel64/icc
-- Check for working C compiler: /home/intel/compilers_and_libraries_2016.3.210/linux/bin/intel64/icc -- 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: /home/intel/compilers_and_libraries_2016.3.210/linux/bin/intel64/icpc
-- Check for working CXX compiler: /home/intel/compilers_and_libraries_2016.3.210/linux/bin/intel64/icpc -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Set miner currency to 'monero' and 'aeon'
-- 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: /home/cuda-8 (found suitable version "8.0", minimum required is "7.5") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/xmr-stak/build_test

# BUILD
[build_test]$ make -j6                       
Scanning dependencies of target xmr-stak-c
[ 13%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_jh.c.o
[ 13%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_blake256.c.o
[ 13%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_keccak.c.o
[ 16%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_groestl.c.o
[ 16%] Building C object CMakeFiles/xmr-stak-c.dir/xmrstak/backend/cpu/crypto/c_skein.c.o
[ 20%] Linking C static library bin/libxmr-stak-c.a
[ 20%] Built target xmr-stak-c
Scanning dependencies of target xmr-stak-backend
[ 30%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/version.cpp.o
[ 30%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/jconf.cpp.o
[ 33%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/cpu/hwlocMemory.cpp.o
[ 33%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/cpu/minethd.cpp.o
[ 36%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/cpu/jconf.cpp.o
[ 40%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/backendConnector.cpp.o
[ 43%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/globalStates.cpp.o
[ 46%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/backend/cpu/crypto/cryptonight_common.cpp.o
[ 50%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/http/httpd.cpp.o
[ 53%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/http/webdesign.cpp.o
[ 56%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/console.cpp.o
[ 60%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/executor.cpp.o
[ 63%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/telemetry.cpp.o
[ 66%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/misc/utility.cpp.o
[ 70%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/net/jpsock.cpp.o
[ 73%] Building CXX object CMakeFiles/xmr-stak-backend.dir/xmrstak/net/socket.cpp.o
[ 76%] Linking CXX static library bin/libxmr-stak-backend.a
[ 76%] Built target xmr-stak-backend
Scanning dependencies of target xmr-stak
[ 83%] Building NVCC (Device) object CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/xmrstak_cuda_backend_generated_cuda_extra.cu.o
[ 83%] Building NVCC (Device) object CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/nvcc_code/xmrstak_cuda_backend_generated_cuda_core.cu.o
[ 86%] Building CXX object CMakeFiles/xmr-stak.dir/xmrstak/cli/cli-miner.cpp.o
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
[ 90%] Linking CXX executable bin/xmr-stak
icpc: warning #10237: -lcilkrts linked in dynamically, static library not available
[ 90%] Built target xmr-stak
Scanning dependencies of target xmrstak_cuda_backend
[ 96%] Building CXX object CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/jconf.cpp.o
[ 96%] Building CXX object CMakeFiles/xmrstak_cuda_backend.dir/xmrstak/backend/nvidia/minethd.cpp.o
[100%] Linking CXX shared library bin/libxmrstak_cuda_backend.so
icpc: warning #10237: -lcilkrts linked in dynamically, static library not available
[100%] Built target xmrstak_cuda_backend

# RUN
[bin]$ ./xmr-stak --config config.monero.txt --noCPU 
-------------------------------------------------------------------
xmr-stak 2.0.0 2920e9a

Brought to you by fireice_uk and psychocrypt under GPLv3.
Based on CPU mining code by wolf9466 (heavily optimized by fireice_uk).
Based on NVIDIA mining code by KlausT and psychocrypt.

Configurable dev donation level is set to 2.0%

You can use following keys to display reports:
'h' - hashrate
'r' - results
'c' - connection
-------------------------------------------------------------------
[2017-12-03 18:13:36] : Start mining: MONERO
[2017-12-03 18:13:38] : NVIDIA: GPU configuration stored in file 'nvidia.txt'
[2017-12-03 18:13:38] : Starting NVIDIA GPU thread 0, no affinity.
[2017-12-03 18:13:38] : Fast-connecting to xmr-eu2.nanopool.org:14444 pool ...
[2017-12-03 18:13:38] : Pool xmr-eu2.nanopool.org:14444 connected. Logging in...
[2017-12-03 18:13:39] : Difficulty changed. Now: 120001.
[2017-12-03 18:13:39] : Pool logged in.
[CUDA] Error gpu 0: </home/user/xmr-stak-dev/xmrstak/backend/nvidia/nvcc_code/cuda_core.cu>:341
terminate called after throwing an instance of 'std::runtime_error'
  what():  [CUDA] Error: invalid configuration argument
Aborted
fireice-uk commented 6 years ago

Please let us know if it is still present in 2.1

avb1213 commented 6 years ago

Hi. Almost the same error.

[bin]./xmr-stak --currency monero --noCPU
-------------------------------------------------------------------
xmr-stak 2.1.0 31a0784

Brought to you by fireice_uk and psychocrypt under GPLv3.
Based on CPU mining code by wolf9466 (heavily optimized by fireice_uk).
Based on NVIDIA mining code by KlausT and psychocrypt.

Configurable dev donation level is set to 2.0%

You can use following keys to display reports:
'h' - hashrate
'r' - results
'c' - connection
-------------------------------------------------------------------
[2017-12-10 22:32:04] : Start mining: MONERO
[2017-12-10 22:32:05] : Starting NVIDIA GPU thread 0, no affinity.
[2017-12-10 22:32:05] : Fast-connecting to xmr-eu2.nanopool.org:14444 pool ...
[2017-12-10 22:32:05] : Pool xmr-eu2.nanopool.org:14444 connected. Logging in...
[2017-12-10 22:32:06] : Difficulty changed. Now: 120001.
[2017-12-10 22:32:06] : Pool logged in.
[CUDA] Error gpu 0: </home/user/coin/xmr-stak/xmrstak/backend/nvidia/nvcc_code/cuda_core.cu>:345
**suggestion: Try to increase the value of the attribute 'bfactor' or 
reduce 'threads' in the NVIDIA config file.**
terminate called after throwing an instance of 'std::runtime_error'
  what():  [CUDA] Error: invalid configuration argument
Aborted

nvidia.txt

"gpu_threads_conf" :
[
  // gpu: Tesla K20c architecture: 35
  //      memory: 4987/5061 MiB
  //      smx: 13
  { "index" : 0,
    "threads" : 26, "blocks" : 39,
    "bfactor" : 0, "bsleep" :  0,
    "affine_to_cpu" : false, "sync_mode" : 3,
  },
],

Tryng to set bfactor = 8, and threads = 13. Same error.

fireice-uk commented 6 years ago

@avb1213 I think Tesla is a bit too old to run with the current cuda. Nvidia is dropping Fermi now with cuda 9.

psychocrypt commented 6 years ago

@fireice-uk no the k20c is a kepla gpu from the hpc segment and is still supported. Tesla is the name for the hpc segment. Only fermi (architecture 20 and 21) is dropped since cuda 9.