Closed mech2you closed 1 year ago
I’m getting the same thing when trying to build on Ubuntu 22.10. GTX 1060 6GB and I am trying the bucket change to make it work with the 6GB memory. This is a build error.
You need to build with Cuda 12 (compute_89 is for Ada support).
If not possible just comment out the '-gencode=arch=compute_89,code=sm_89 # Ada' line in CMakeLists.txt
Cuda 12 solved the problem thx
There comes an error "Unsupported gpu architecture 'compute_89'" on my Windows Linux WSL. System: 3960x 256GB 3060
nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Thu_Nov_18_09:45:30_PST_2021 Cuda compilation tools, release 11.5, V11.5.119 Build cuda_11.5.r11.5/compiler.30672275_0
Git Branch cuda-compression
cmake .. -- The C compiler identification is GNU 11.3.0 -- The CXX compiler identification is GNU 11.3.0 -- The ASM compiler identification is GNU -- Found assembler: /usr/bin/cc -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found CUDAToolkit: /usr/include (found version "11.5.119") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE Found CUDA: true NVCC : /usr/bin/nvcc -- The CUDA compiler identification is NVIDIA 11.5.119 -- Detecting CUDA compiler ABI info -- Detecting CUDA compiler ABI info - done -- Check for working CUDA compiler: /usr/bin/nvcc - skipped -- Detecting CUDA compile features -- Detecting CUDA compile features - done Config : Release Compiler : GNU CI build : false -- Build python bindings: 0 -- Build tests: 0 -- Build benchmarks: 0 -- Relic will be built from: 1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7 GMP_INCLUDES=/usr/include/x86_64-linux-gnu -- Found gmp: /usr/include/x86_64-linux-gnu -- Found libgmp
-- Configuring RELIC 0.5.0...
-- Available switches (default = CHECK, VERBS, DOCUM):
DEBUG=[off|on] Build with debugging support. PROFL=[off|on] Build with profiling support. CHECK=[off|on] Build with error-checking support. VERBS=[off|on] Build with detailed error messages. OVERH=[off|on] Build with overhead estimation. DOCUM=[off|on] Build documentation. STRIP=[off|on] Build only selected algorithms. QUIET=[off|on] Build with printing disabled. COLOR=[off|on] Build with colored output. BIGED=[off|on] Build with big-endian support. SHLIB=[off|on] Build shared library. STLIB=[off|on] Build static library. STBIN=[off|on] Build static binaries. AMALG=[off|on] Build amalgamation for better performance. AUSAN=[off|on] Build with ASan and UBSan (gcc/clang only).
-- Number of times each test or benchmark is ran (default = 50, 1000):
TESTS=n If n > 0, build automated tests and run them n times. BENCH=n If n > 0, build automated benchmarks and run them n * n times.
-- Number of available processor cores (default = 1):
CORES=n If n > 1, enable multithreading support.
-- Available modules (default = ALL)
WITH=BN Multiple precision arithmetic. WITH=DV Temporary double-precision digit vectors. WITH=FP Prime field arithmetic. WITH=FPX Prime extension field arithmetic. WITH=FB Binary field arithmetic. WITH=EP Elliptic curves over prime fields. WITH=EPX Elliptic curves over quadratic extensions of prime fields. WITH=EB Elliptic curves over binary fields. WITH=ED Elliptic Edwards curves over prime fields. WTTH=EC Elliptic curve cryptography. WITH=PB Pairings over binary elliptic curves. WITH=PP Pairings over prime elliptic curves. WTTH=PC Pairing-based cryptography. WITH=BC Block ciphers (symmetric encryption). WITH=MD Message digests (hash functions). WITH=CP Cryptographic protocols. WITH=MPC Multi-party computation primitives. WITH=ALL All of the above. Note: the programmer is responsible for not using unselected modules.
-- Available arithmetic backends (default = easy):
ARITH=easy Easy-to-understand and portable, but slow backend. ARITH=fiat Backend based on code generated from Fiat-Crypto. ARITH=gmp Backend based on GNU Multiple Precision library.
ARITH=gmp-sec Same as above, but using constant-time code.
-- Available memory-allocation policies (default = AUTO):
ALLOC=AUTO All memory is automatically allocated. ALLOC=DYNAMIC All memory is allocated dynamically on demand.
-- Supported operating systems (default = LINUX):
OPSYS= Undefined/No specific operating system. OPSYS=LINUX GNU/Linux operating system. OPSYS=FREEBSD FreeBSD operating system. OPSYS=NETBSD NetBSD operating system. OPSYS=MACOSX Mac OS X operating system. OPSYS=WINDOWS Windows operating system. OPSYS=DROID Android operating system. OPSYS=DUINO Arduino platform.
-- Supported multithreading APIs (default = UNDEF):
MULTI= No multithreading support. MULTI=OPENMP Open Multi-Processing. MULTI=PTHREAD POSIX threads.
-- Supported timers (default = HREAL):
TIMER= No timer. TIMER=HREAL GNU/Linux realtime high-resolution timer. TIMER=HPROC GNU/Linux per-process high-resolution timer. TIMER=HTHRD GNU/Linux per-thread high-resolution timer. TIMER=ANSI ANSI-compatible timer. TIMER=POSIX POSIX-compatible timer. TIMER=CYCLE Cycle-counting timer. (architecture-dependant) TIMER=PERF GNU/Linux performance monitoring framework.
-- Prefix to identify this build of the library (default = ""):
LABEL=relic
-- Available architectures (default = X64):
ARCH= No specific architecture (disable some features). ARCH=AVR Atmel AVR ATMega128 8-bit architecture. ARCH=MSP TI MSP430 16-bit architecture. ARCH=ARM ARM 32-bit architecture. ARCH=X86 Intel x86-compatible 32-bit architecture. ARCH=X64 AMD x86_64-compatible 64-bit architecture.
-- Available word sizes (default = 64):
WSIZE=8 Build a 8-bit library. WSIZE=16 Build a 16-bit library. WSIZE=32 Build a 32-bit library. WSIZE=64 Build a 64-bit library.
-- Byte boundary to align digit vectors (default = 1):
ALIGN=1 Do not align digit vectors. ALIGN=2 Align digit vectors into 16-bit boundaries. ALIGN=8 Align digit vectors into 64-bit boundaries. ALIGN=16 Align digit vectors into 128-bit boundaries.
-- Looking for include file execinfo.h -- Looking for include file execinfo.h - found -- Looking for backtrace -- Looking for backtrace - found -- Looking for backtrace_symbols -- Looking for backtrace_symbols - found -- Multiple precision arithmetic configuration (BN module):
** Options for the multiple precision module (default = 1024,DOUBLE,0):
** Available multiple precision arithmetic methods (default = COMBA;COMBA;MONTY;SLIDE;BASIC;BASIC):
-- Prime field arithmetic configuration (FP module):
** Arithmetic precision of the prime field module (default = 256,0,off,off):
** Available prime field arithmetic methods (default = BASIC;COMBA;COMBA;MONTY;MONTY;SLIDE): Field addition FP_METHD=BASIC Schoolbook addition. FP_METHD=INTEG Integrated modular addition.
-- Prime extension field arithmetic configuration (FPX module):
** Available bilinear pairing methods (default = BASIC;BASIC;BASIC): Quadratic extension arithmetic: FPX_METHD=BASIC Basic quadratic extension field arithmetic. FPX_METHD=INTEG Quadratic extension field arithmetic with embedded modular reduction.
-- Binary field arithmetic configuration (FB module):
** Options for the binary elliptic curve module (default = 283,0,on,on,on):
** Available binary field arithmetic methods (default = LODAH;QUICK;QUICK;BASIC;QUICK;QUICK;EXGCD;SLIDE;QUICK):
-- Prime elliptic curve arithmetic configuration (EP module):
** Options for the prime elliptic curve module (default = all on):
** Available prime elliptic curve methods (default = PROJC;LWNAF;COMBS;INTER):
-- Binary elliptic curve arithmetic configuration (EB module):
** Options for the binary elliptic curve module (default = on, w = 4):
** Available binary elliptic curve methods (default = PROJC;LWNAF;COMBS;INTER):
-- Elliptic Edwards curve over prime fields arithmetic configuration (ED module):
** Options for the prime elliptic Edwards curve module (default = all on): ED_PRECO=[off|on] Build precomputation table for generator. ED_DEPTH=w Width w in [2,6] of precomputation table for fixed point methods. ED_WIDTH=w Width w in [2,6] of window processing for unknown point methods.
** Available prime elliptic Edwards curve methods (default = PROJC;LWNAF;COMBS;INTER): ED_METHD=BASIC Affine coordinates. EP_METHD=PROJC Simple projective twisted Edwards coordinates. EP_METHD=EXTND Extended projective twisted Edwards coordinates.
-- Elliptic curve cryptography configuration (EC module):
** Options for the binary elliptic curve module (default = on):
** Available elliptic curve methods (default = PRIME):
-- Bilinear pairings arithmetic configuration (PP module):
** Available bilinear pairing methods (default = BASIC;OATEP):
-- Message digest configuration (MD module):
** Available hash functions (default = SH256):
-- Cryptographic protocols configuration (CP module):
** Options for the cryptographic protocols module (default = on, PKCS2):
-- Available pseudo-random number generators (default = HASHD):
RAND=HASHD Use the HASH-DRBG generator. (recommended) RAND=RDRND Use Intel RdRand instruction directly. RAND=UDEV Use the operating system underlying generator. RAND=CALL Override the generator with a callback.
-- Available random number generator seeders (default = UDEV):
SEED= Use a zero seed. (horribly insecure!) SEED=LIBC Use rand()/random() functions. (insecure!) SEED=RDRND Use Intel RdRand instruction directly. SEED=UDEV Use non-blocking /dev/urandom. (recommended) SEED=WCGR Use Windows' CryptGenRandom. (recommended)
-- Configured operating system: LINUX -- Configured GMP: -I/usr/include/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu/libgmp.so -- Compiler flags: -Wall -O3 -funroll-loops -fomit-frame-pointer -pthread -- Linker flags: -L/home/flashx/bladebit/bladebit/build/_deps/relic-src/src/low/gmp/ -- Configured /home/flashx/bladebit/bladebit/build/_deps/relic-src/include/relic_conf.h.in -- Found NUMA: /usr/include Embedding local build version -- Configuring done -- Generating done -- Build files have been written to: /home/flashx/bladebit/bladebit/build
cmake --build . --target bladebit_cuda --config Release . . [ 95%] Linking CXX static library libbladebit.a [ 95%] Built target lib_bladebit [ 95%] Building CUDA object CMakeFiles/lib_bladebit_cuda.dir/cuda/CudaPlotter.cu.o nvcc fatal : Unsupported gpu architecture 'compute_89' gmake[3]: [CMakeFiles/lib_bladebit_cuda.dir/build.make:76: CMakeFiles/lib_bladebit_cuda.dir/cuda/CudaPlotter.cu.o] Error 1 gmake[2]: [CMakeFiles/Makefile2:301: CMakeFiles/lib_bladebit_cuda.dir/all] Error 2 gmake[1]: [CMakeFiles/Makefile2:338: CMakeFiles/bladebit_cuda.dir/rule] Error 2 gmake: [Makefile:222: bladebit_cuda] Error 2