Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build xmrig nvidia on Ubuntu 22.04 #348

Open
sapmi opened this issue Jan 28, 2024 · 4 comments
Open

Cannot build xmrig nvidia on Ubuntu 22.04 #348

sapmi opened this issue Jan 28, 2024 · 4 comments

Comments

@sapmi
Copy link

sapmi commented Jan 28, 2024

I have the latest drivers, cuda, and the tool kit. Cmake is fine going smoothly. I am using the following because I had a "gpu arcitechture is not compatible error"

So I cmake:

cmake .. -DCUDA_ARCH="61" -DWITH_HTTPD=OFF -DWITH_AEON=OFF (I have a 1060 so I have 6.1 architecture

then make ...

make - then here is the error

[ 1%] Building NVCC (Device) object CMakeFiles/xmrig-cuda.dir/src/nvidia/xmrig-cuda_generated_cuda_extra.cu.o
/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_extra.cu: In function ‘void cryptonight_extra_cpu_prepare(nvid_ctx*, uint32_t, xmrig::Algo, xmrig::Variant)’:
/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_extra.cu:416:182: warning: passing argument 5 to ‘restrict’-qualified parameter aliases with argument 6 [-Wrestrict]
416 | CUDA_CHECK_KERNEL(ctx->device_id, cryptonight_extra_gpu_prepare<xmrig::CRYPTONIGHT, xmrig::VARIANT_AUTO><<<grid, block >>>(wsize, ctx->d_input, ctx->inputlen, startNonce,
| ~~ ^
[ 3%] Building NVCC (Device) object CMakeFiles/xmrig-cuda.dir/src/nvidia/xmrig-cuda_generated_cuda_core.cu.o
/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(84): error: identifier "int2float" is undefined
float4::x = int2float(x0.x);
^

/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(220): error: identifier "float_as_int" is undefined
int_as_float(float_as_int(a.x) & b),
^

/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(220): error: identifier "int_as_float" is undefined
int_as_float(float_as_int(a.x) & b),
^

/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(230): error: identifier "float_as_int" is undefined
int_as_float(float_as_int(a.x) | b),
^

/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(230): error: identifier "int_as_float" is undefined
int_as_float(float_as_int(a.x) | b),
^

/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(240): error: identifier "float_as_int" is undefined
int_as_float(float_as_int(a.x) ^ b),
^

/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(240): error: identifier "int_as_float" is undefined
int_as_float(float_as_int(a.x) ^ b),
^

7 errors detected in the compilation of "/home/sapmi/Downloads/xmrig-nvidia/src/nvidia/cuda_core.cu".
CMake Error at xmrig-cuda_generated_cuda_core.cu.o.Release.cmake:280 (message):
Error generating file
/home/sapmi/Downloads/xmrig-nvidia/build/CMakeFiles/xmrig-cuda.dir/src/nvidia/./xmrig-cuda_generated_cuda_core.cu.o

make[2]: *** [CMakeFiles/xmrig-cuda.dir/build.make:77: CMakeFiles/xmrig-cuda.dir/src/nvidia/xmrig-cuda_generated_cuda_core.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:86: CMakeFiles/xmrig-cuda.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

Seems to be a data type error. My drivers may be too new for this?

@yhilgjff
Copy link

I have the same exact error on a Debian 12 system running latest:

# cmake -DWITH_HTTPD=OFF -DCUDA_ARCH="80" -DWITH_AEON=OFF ..
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- 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 UV: /usr/lib/x86_64-linux-gnu/libuv.so  
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Found CUDA: /usr/local/cuda (found suitable version "12.4", minimum required is "8.0") 
-- Found NVML: /usr/local/cuda/include  
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.11")  
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Looking for syslog.h
-- Looking for syslog.h - found
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/xmrig-nvidia/build
# make
[  1%] Building NVCC (Device) object CMakeFiles/xmrig-cuda.dir/src/nvidia/xmrig-cuda_generated_cuda_extra.cu.o
/opt/xmrig-nvidia/src/nvidia/cuda_extra.cu: In function ‘void cryptonight_extra_cpu_prepare(nvid_ctx*, uint32_t, xmrig::Algo, xmrig::Variant)’:
/opt/xmrig-nvidia/src/nvidia/cuda_extra.cu:416:182: warning: passing argument 5 to ‘restrict’-qualified parameter aliases with argument 6 [-Wrestrict]
  416 |         CUDA_CHECK_KERNEL(ctx->device_id, cryptonight_extra_gpu_prepare<xmrig::CRYPTONIGHT, xmrig::VARIANT_AUTO><<<grid, block >>>(wsize, ctx->d_input, ctx->inputlen, startNonce,
      |                                                                                                                                                                                 ~~   ^                            
[  3%] Building NVCC (Device) object CMakeFiles/xmrig-cuda.dir/src/nvidia/xmrig-cuda_generated_cuda_core.cu.o
/opt/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(84): error: identifier "int2float" is undefined
    float4::x = int2float(x0.x);
                ^

/opt/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(220): error: identifier "float_as_int" is undefined
    int_as_float(float_as_int(a.x) & b),
                 ^

/opt/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(220): error: identifier "int_as_float" is undefined
    int_as_float(float_as_int(a.x) & b),
    ^

/opt/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(230): error: identifier "float_as_int" is undefined
    int_as_float(float_as_int(a.x) | b),
                 ^

/opt/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(230): error: identifier "int_as_float" is undefined
    int_as_float(float_as_int(a.x) | b),
    ^

/opt/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(240): error: identifier "float_as_int" is undefined
    int_as_float(float_as_int(a.x) ^ b),
                 ^

/opt/xmrig-nvidia/src/nvidia/cuda_cryptonight_gpu.hpp(240): error: identifier "int_as_float" is undefined
    int_as_float(float_as_int(a.x) ^ b),
    ^

7 errors detected in the compilation of "/opt/xmrig-nvidia/src/nvidia/cuda_core.cu".
CMake Error at xmrig-cuda_generated_cuda_core.cu.o.Release.cmake:280 (message):
  Error generating file
  /opt/xmrig-nvidia/build/CMakeFiles/xmrig-cuda.dir/src/nvidia/./xmrig-cuda_generated_cuda_core.cu.o


make[2]: *** [CMakeFiles/xmrig-cuda.dir/build.make:77: CMakeFiles/xmrig-cuda.dir/src/nvidia/xmrig-cuda_generated_cuda_core.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:86: CMakeFiles/xmrig-cuda.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
#
# uname -a
Linux MYBOX 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux
# dpkg -l | grep -i cuda
ii  cuda-cccl-12-4                                              12.4.99-1                                 amd64        CUDA CCCL
ii  cuda-command-line-tools-12-4                                12.4.0-1                                  amd64        CUDA command-line tools
ii  cuda-compiler-12-4                                          12.4.0-1                                  amd64        CUDA compiler
ii  cuda-crt-12-4                                               12.4.99-1                                 amd64        CUDA crt
ii  cuda-cudart-12-4                                            12.4.99-1                                 amd64        CUDA Runtime native Libraries
ii  cuda-cudart-dev-12-4                                        12.4.99-1                                 amd64        CUDA Runtime native dev links, headers
ii  cuda-cuobjdump-12-4                                         12.4.99-1                                 amd64        CUDA cuobjdump
ii  cuda-cupti-12-4                                             12.4.99-1                                 amd64        CUDA profiling tools runtime libs.
ii  cuda-cupti-dev-12-4                                         12.4.99-1                                 amd64        CUDA profiling tools interface.
ii  cuda-cuxxfilt-12-4                                          12.4.99-1                                 amd64        CUDA cuxxfilt
ii  cuda-documentation-12-4                                     12.4.99-1                                 amd64        CUDA documentation
ii  cuda-driver-dev-12-4                                        12.4.99-1                                 amd64        CUDA Driver native dev stub library
ii  cuda-drivers                                                550.54.14-1                               amd64        CUDA Driver meta-package, branch-agnostic
ii  cuda-drivers-550                                            550.54.14-1                               amd64        CUDA Driver meta-package, branch-specific
ii  cuda-gdb-12-4                                               12.4.99-1                                 amd64        CUDA-GDB
ii  cuda-keyring                                                1.1-1                                     all          GPG keyring for the CUDA repository
ii  cuda-libraries-12-4                                         12.4.0-1                                  amd64        CUDA Libraries 12.4 meta-package
ii  cuda-libraries-dev-12-4                                     12.4.0-1                                  amd64        CUDA Libraries 12.4 development meta-package
ii  cuda-nsight-12-4                                            12.4.99-1                                 amd64        CUDA nsight
ii  cuda-nsight-compute-12-4                                    12.4.0-1                                  amd64        NVIDIA Nsight Compute
ii  cuda-nsight-systems-12-4                                    12.4.0-1                                  amd64        NVIDIA Nsight Systems
ii  cuda-nvcc-12-4                                              12.4.99-1                                 amd64        CUDA nvcc
ii  cuda-nvdisasm-12-4                                          12.4.99-1                                 amd64        CUDA disassembler
ii  cuda-nvml-dev-12-4                                          12.4.99-1                                 amd64        NVML native dev links, headers
ii  cuda-nvprof-12-4                                            12.4.99-1                                 amd64        CUDA Profiler tools
ii  cuda-nvprune-12-4                                           12.4.99-1                                 amd64        CUDA nvprune
ii  cuda-nvrtc-12-4                                             12.4.99-1                                 amd64        NVRTC native runtime libraries
ii  cuda-nvrtc-dev-12-4                                         12.4.99-1                                 amd64        NVRTC native dev links, headers
ii  cuda-nvtx-12-4                                              12.4.99-1                                 amd64        NVIDIA Tools Extension
ii  cuda-nvvm-12-4                                              12.4.99-1                                 amd64        CUDA nvvm
ii  cuda-nvvp-12-4                                              12.4.99-1                                 amd64        CUDA Profiler tools
ii  cuda-opencl-12-4                                            12.4.99-1                                 amd64        CUDA OpenCL native Libraries
ii  cuda-opencl-dev-12-4                                        12.4.99-1                                 amd64        CUDA OpenCL native dev links, headers
ii  cuda-profiler-api-12-4                                      12.4.99-1                                 amd64        CUDA Profiler API
ii  cuda-repo-debian12-12-4-local                               12.4.0-550.54.14-1                        amd64        cuda repository configuration files
ii  cuda-sanitizer-12-4                                         12.4.99-1                                 amd64        CUDA Sanitizer
ii  cuda-toolkit-12-4                                           12.4.0-1                                  amd64        CUDA Toolkit 12.4 meta-package
ii  cuda-toolkit-12-4-config-common                             12.4.99-1                                 all          Common config package for CUDA Toolkit 12.4.
ii  cuda-toolkit-12-config-common                               12.4.99-1                                 all          Common config package for CUDA Toolkit 12.
ii  cuda-toolkit-config-common                                  12.4.99-1                                 all          Common config package for CUDA Toolkit.
ii  cuda-tools-12-4                                             12.4.0-1                                  amd64        CUDA Tools meta-package
ii  cuda-visual-tools-12-4                                      12.4.0-1                                  amd64        CUDA visual tools
ii  libcuda1:amd64                                              550.54.14-1                               amd64        NVIDIA CUDA Driver Library
ii  libcudadebugger1:amd64                                      550.54.14-1                               amd64        NVIDIA CUDA Debugger Library
ii  libcufile-12-4                                              1.9.0.20-1                                amd64        Library for GPU Direct Storage with CUDA 12.4
ii  libcusolver-12-4                                            11.6.0.99-1                               amd64        CUDA solver native runtime libraries
ii  libcusolver-dev-12-4                                        11.6.0.99-1                               amd64        CUDA solver native dev links, headers
ii  libnvcuvid1:amd64                                           550.54.14-1                               amd64        NVIDIA CUDA Video Decoder runtime library
ii  nvidia-cuda-mps                                             550.54.14-1                               amd64        NVIDIA CUDA Multi Process Service (MPS)
#
# lspci -s 01:00.0 -v
01:00.0 VGA compatible controller: NVIDIA Corporation GN20-P0-R-K2 [GeForce RTX 3050 6GB Laptop GPU] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: ASUSTeK Computer Inc. GN20-P0-R-K2 [GeForce RTX 3050 6GB Laptop GPU]
	Physical Slot: 0
	Flags: bus master, fast devsel, latency 0, IRQ 94, IOMMU group 12
	Memory at dc000000 (32-bit, non-prefetchable) [size=16M]
	Memory at 7c00000000 (64-bit, prefetchable) [size=8G]
	Memory at 7e00000000 (64-bit, prefetchable) [size=32M]
	I/O ports at f000 [size=128]
	Expansion ROM at dd000000 [virtual] [disabled] [size=512K]
	Capabilities: [60] Power Management version 3
	Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
	Capabilities: [78] Express Legacy Endpoint, MSI 00
	Capabilities: [b4] Vendor Specific Information: Len=14 <?>
	Capabilities: [100] Virtual Channel
	Capabilities: [250] Latency Tolerance Reporting
	Capabilities: [258] L1 PM Substates
	Capabilities: [128] Power Budgeting <?>
	Capabilities: [420] Advanced Error Reporting
	Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
	Capabilities: [900] Secondary PCI Express
	Capabilities: [bb0] Physical Resizable BAR
	Capabilities: [c1c] Physical Layer 16.0 GT/s <?>
	Capabilities: [d00] Lane Margining at the Receiver <?>
	Capabilities: [e00] Data Link Feature <?>
	Kernel driver in use: nvidia
	Kernel modules: nvidia

I have tried with those lines and all give the same result:

# cmake -DWITH_HTTPD=OFF -DCUDA_ARCH="87" ..
# cmake -DWITH_HTTPD=OFF -DCUDA_ARCH="86" ..
# cmake -DWITH_HTTPD=OFF -DCUDA_ARCH="80" ..
# cmake -DWITH_HTTPD=OFF -DCUDA_ARCH="80" -DWITH_AEON=OFF ..

Based on https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-compilation I could be using any of sm80, sm86 or sm87 yet none work.

@yhilgjff
Copy link

After following the suggestion of @metal3d under xmrig/xmrig-cuda#138 it still did not fixed my issue.

@HelpMePleasepls
Copy link

HelpMePleasepls commented Jul 28, 2024

I'm also experiencing this issue. Same exact error output. From what I'm vaguely understanding is it's entirely a fault of the script.

@metal3d
Copy link

metal3d commented Jul 30, 2024

I now use the Nvidia docker image to build and launch xmrig. It avoids installing heavy dependencies inside the system.

Using podman works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants