chore: uncucked gpuminer

This commit is contained in:
Nick 2025-12-02 03:30:54 -06:00
parent 452583cf44
commit ca65436dfb

View file

@ -220,65 +220,79 @@ in
# Main execution script # Main execution script
ExecStart = pkgs.writeShellScript "run-gpu-miner" '' ExecStart = pkgs.writeShellScript "run-gpu-miner" ''
set -e set -e
cd ${cfg.dataDir}/GPU-Miner cd ${cfg.dataDir}/GPU-Miner
# Set CUDA environment # Set CUDA environment
export CUDA_PATH=${cudaPackages.cudatoolkit} export CUDA_PATH=${cudaPackages.cudatoolkit}
export CUDA_ROOT=${cudaPackages.cudatoolkit} export CUDA_ROOT=${cudaPackages.cudatoolkit}
export CUDA_HOME=${cudaPackages.cudatoolkit} export CUDA_HOME=${cudaPackages.cudatoolkit}
# Use GCC 13 for CUDA compilation (compatible with CUDA 12.8) # Use GCC 13 for CUDA compilation (compatible with CUDA 12.8)
export CC=${gccCompiler}/bin/gcc export CC=${gccCompiler}/bin/gcc
export CXX=${gccCompiler}/bin/g++ export CXX=${gccCompiler}/bin/g++
# Point nvcc to GCC 13 headers for compilation # CRITICAL: Force nvcc to use GCC 13 by creating a wrapper script
export CPATH=${gccCompiler}/include/c++/${gccCompiler.version}:${cudaPackages.cudatoolkit}/include:$CPATH # The wrapper must pass both --compiler-bindir and ensure CUDA headers are found
export C_INCLUDE_PATH=${cudaPackages.cudatoolkit}/include:$C_INCLUDE_PATH mkdir -p /tmp/nvcc-wrapper
export CPLUS_INCLUDE_PATH=${gccCompiler}/include/c++/${gccCompiler.version}:${cudaPackages.cudatoolkit}/include:$CPLUS_INCLUDE_PATH cat > /tmp/nvcc-wrapper/nvcc <<WRAPPER_EOF
export LIBRARY_PATH=${cudaPackages.cudatoolkit}/lib:$LIBRARY_PATH #!${pkgs.bash}/bin/bash
# Add CUDA include path to help nvcc find cuda_runtime.h
exec ${cudaPackages.cudatoolkit}/bin/nvcc \\
--compiler-bindir ${gccCompiler}/bin \\
-I${cudaPackages.cudatoolkit}/include \\
"\$@"
WRAPPER_EOF
chmod +x /tmp/nvcc-wrapper/nvcc
# CRITICAL: Use GCC 14 runtime libraries for CXXABI_1.3.15 at runtime # Put our wrapper at the front of PATH
export LD_LIBRARY_PATH=${ export PATH="/tmp/nvcc-wrapper:$PATH"
lib.makeLibraryPath [
cudaPackages.cudatoolkit
config.boot.kernelPackages.nvidiaPackages.latest
gccRuntime.cc.lib # GCC 14 for runtime
pkgs.zlib
pkgs.glib
pkgs.glibc
]
}
# Add gpu_core binaries to library path
export LD_LIBRARY_PATH="$PWD/gpu_core/bin/linux:$LD_LIBRARY_PATH"
export __GLX_VENDOR_LIBRARY_NAME=nvidia # Use GCC 14 runtime libraries for CXXABI_1.3.15 at runtime
export GBM_BACKEND=nvidia-drm export LD_LIBRARY_PATH=${
lib.makeLibraryPath [
cudaPackages.cudatoolkit
config.boot.kernelPackages.nvidiaPackages.latest
gccRuntime.cc.lib # GCC 14 for runtime
pkgs.zlib
pkgs.glib
pkgs.glibc
]
}
# Add gpu_core binaries to library path
export LD_LIBRARY_PATH="$PWD/gpu_core/bin/linux:$LD_LIBRARY_PATH"
# Verify GPU accessibility export __GLX_VENDOR_LIBRARY_NAME=nvidia
echo "Checking GPU availability..." export GBM_BACKEND=nvidia-drm
if command -v nvidia-smi &> /dev/null; then
nvidia-smi -L || echo "Warning: Could not list GPUs"
fi
echo "Starting GPU miner..." # Verify GPU accessibility
echo "Python version: $(venv/bin/python --version)" echo "Checking GPU availability..."
echo "Compile-time GCC: ${gccCompiler}/bin/gcc ($(${gccCompiler}/bin/gcc --version | head -n1))" if command -v nvidia-smi &> /dev/null; then
echo "Runtime GCC library: ${gccRuntime.cc.lib}/lib" nvidia-smi -L || echo "Warning: Could not list GPUs"
echo "Working directory: $(pwd)" fi
# Verify the critical library is available echo "Starting GPU miner..."
echo "Checking for CXXABI_1.3.15..." echo "Python version: $(venv/bin/python --version)"
if strings ${gccRuntime.cc.lib}/lib/libstdc++.so.6 | grep -q CXXABI_1.3.15; then echo "Compile-time GCC: ${gccCompiler}/bin/gcc ($(${gccCompiler}/bin/gcc --version | head -n1))"
echo " CXXABI_1.3.15 found in runtime libstdc++" echo "Runtime GCC library: ${gccRuntime.cc.lib}/lib"
else echo "Working directory: $(pwd)"
echo " WARNING: CXXABI_1.3.15 not found" echo "NVCC wrapper: $(type -p nvcc)"
fi
# Run the miner # Verify the critical library is available
exec venv/bin/python main.py --workers ${builtins.toString cfg.maxWorkers} 2>&1 echo "Checking for CXXABI_1.3.15..."
if strings ${gccRuntime.cc.lib}/lib/libstdc++.so.6 | grep -q CXXABI_1.3.15; then
echo " CXXABI_1.3.15 found in runtime libstdc++"
else
echo " WARNING: CXXABI_1.3.15 not found"
fi
# Test nvcc compilation
echo "Testing nvcc compiler configuration..."
/tmp/nvcc-wrapper/nvcc --version
# Run the miner
exec venv/bin/python main.py --workers ${builtins.toString cfg.maxWorkers} 2>&1
''; '';
StandardOutput = "journal"; StandardOutput = "journal";
StandardError = "journal"; StandardError = "journal";
}; };