first look dashboard benchmark #94
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build LuminousMiner | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| workflow_dispatch: | |
| jobs: | |
| build-linux: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| #========================================================================== | |
| # INSTALL BASE TOOLS | |
| #========================================================================== | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| build-essential \ | |
| libstdc++-12-dev \ | |
| cppcheck \ | |
| checkinstall \ | |
| clang-15 \ | |
| clang++-15 \ | |
| wget \ | |
| git \ | |
| libgnutls28-dev | |
| # Clean apt cache | |
| sudo apt-get clean | |
| sudo rm -rf /var/lib/apt/lists/* | |
| # Clean apt cache | |
| sudo apt-get clean | |
| sudo rm -rf /var/lib/apt/lists/* | |
| - name: Install CMake 3.26.4 | |
| run: | | |
| wget --no-check-certificate https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.sh | |
| sudo sh cmake-3.26.4-linux-x86_64.sh --skip-license --prefix=/usr/local | |
| cmake --version | |
| # Clean downloaded file | |
| rm -f cmake-3.26.4-linux-x86_64.sh | |
| #========================================================================== | |
| # CACHE SYSTEM | |
| #========================================================================== | |
| - name: Cache CUDA 13.1 | |
| id: cache-cuda | |
| uses: actions/cache@v4 | |
| with: | |
| path: /usr/local/cuda-13.1 | |
| key: cuda-13.1-ubuntu-22.04-v2 | |
| - name: Cache OpenSSL 1.1.1 | |
| id: cache-openssl | |
| uses: actions/cache@v4 | |
| with: | |
| path: /usr/local/ssl | |
| key: openssl-1.1.1-ubuntu-22.04-v2 | |
| - name: Cache Boost 1.86.0 | |
| id: cache-boost | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| /usr/local/include/boost | |
| /usr/local/lib/libboost_* | |
| key: boost-1.86.0-ubuntu-22.04-static-v2 | |
| - name: Cache OpenCL 3.0.19 | |
| id: cache-opencl | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| /usr/local/include/CL | |
| /usr/local/include/opencl | |
| /usr/local/lib/libOpenCL.so* | |
| /usr/local/lib/cmake/OpenCL | |
| /usr/local/share/OpenCL | |
| key: opencl-sdk-3.0.19-ubuntu-22.04-v1 | |
| #========================================================================== | |
| # CUDA 13.1 INSTALLATION | |
| #========================================================================== | |
| - name: Install CUDA 13.1 | |
| if: steps.cache-cuda.outputs.cache-hit != 'true' | |
| run: | | |
| # Download CUDA repository pin file | |
| wget --no-check-certificate https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin | |
| sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 | |
| # Download CUDA local installer | |
| wget --no-check-certificate https://developer.download.nvidia.com/compute/cuda/13.1.0/local_installers/cuda-repo-ubuntu2204-13-1-local_13.1.0-590.44.01-1_amd64.deb | |
| # Install CUDA repository | |
| sudo dpkg -i cuda-repo-ubuntu2204-13-1-local_13.1.0-590.44.01-1_amd64.deb | |
| sudo cp /var/cuda-repo-ubuntu2204-13-1-local/cuda-*-keyring.gpg /usr/share/keyrings/ | |
| # Update and install CUDA toolkit | |
| sudo apt-get update | |
| sudo apt-get -y install cuda-toolkit-13-1 | |
| # CLEAN UP CUDA FILES | |
| echo "π§Ή Cleaning up CUDA installation files..." | |
| rm -f cuda-repo-ubuntu2204-13-1-local_13.1.0-590.44.01-1_amd64.deb | |
| sudo rm -rf /var/cuda-repo-ubuntu2204-13-1-local | |
| sudo apt-get clean | |
| sudo rm -rf /var/lib/apt/lists/* | |
| echo "β CUDA 13.1 installed successfully" | |
| - name: Setup CUDA environment | |
| run: | | |
| # Add CUDA binaries to PATH | |
| echo "/usr/local/cuda-13.1/bin" >> $GITHUB_PATH | |
| # Configure CUDA environment variables | |
| echo "LD_LIBRARY_PATH=/usr/local/cuda-13.1/lib64:${LD_LIBRARY_PATH}" >> $GITHUB_ENV | |
| echo "CUDA_HOME=/usr/local/cuda-13.1" >> $GITHUB_ENV | |
| echo "CUDA_PATH=/usr/local/cuda-13.1" >> $GITHUB_ENV | |
| echo "CUDACXX=/usr/local/cuda-13.1/bin/nvcc" >> $GITHUB_ENV | |
| # Create symbolic link for generic CUDA path | |
| if [ ! -L "/usr/local/cuda" ]; then | |
| sudo ln -sf /usr/local/cuda-13.1 /usr/local/cuda | |
| fi | |
| #========================================================================== | |
| # OPENSSL 1.1.1 INSTALLATION | |
| #========================================================================== | |
| - name: Install OpenSSL 1.1.1 | |
| if: steps.cache-openssl.outputs.cache-hit != 'true' | |
| run: | | |
| git clone https://github.com/openssl/openssl.git | |
| cd openssl | |
| ./Configure | |
| make | |
| sudo make install | |
| # CLEAN UP OPENSSL FILES | |
| cd .. | |
| echo "π§Ή Cleaning up OpenSSL installation files..." | |
| sudo rm -rf openssl | |
| echo "β OpenSSL 1.1.1 installed successfully" | |
| #========================================================================== | |
| # BOOST 1.86.0 INSTALLATION | |
| #========================================================================== | |
| - name: Install Boost 1.86.0 | |
| if: steps.cache-boost.outputs.cache-hit != 'true' | |
| run: | | |
| # Download Boost 1.86.0 | |
| wget --no-check-certificate https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.gz | |
| tar -xzf boost_1_86_0.tar.gz | |
| cd boost_1_86_0 | |
| # Bootstrap Boost | |
| ./bootstrap.sh --prefix=/usr/local | |
| # Build and install libraries | |
| ./b2 release | |
| sudo ./b2 install | |
| # CLEAN UP BOOST FILES | |
| cd .. | |
| echo "π§Ή Cleaning up Boost installation files..." | |
| sudo rm -rf boost_1_86_0 boost_1_86_0.tar.gz | |
| echo "β Boost 1.86.0 installed successfully" | |
| #========================================================================== | |
| # OPENCL 3.0.19 INSTALLATION | |
| #========================================================================== | |
| - name: Install OpenCL SDK 3.0.19 | |
| if: steps.cache-opencl.outputs.cache-hit != 'true' | |
| run: | | |
| echo "π₯ Cloning OpenCL-SDK..." | |
| git clone --depth 1 https://github.com/KhronosGroup/OpenCL-SDK.git | |
| cd OpenCL-SDK | |
| echo "π Fetching tags..." | |
| git fetch --all --tags | |
| git checkout tags/v2025.07.23 | |
| echo "π¦ Initializing submodules..." | |
| git submodule init | |
| git submodule update | |
| echo "ποΈ Configuring OpenCL-SDK build..." | |
| mkdir build | |
| cd build | |
| cmake .. \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DBUILD_TESTING=OFF \ | |
| -DBUILD_DOCS=OFF \ | |
| -DBUILD_EXAMPLES=OFF \ | |
| -DBUILD_TESTS=OFF \ | |
| -DOPENCL_SDK_BUILD_SAMPLES=OFF \ | |
| -DOPENCL_SDK_TEST_SAMPLES=OFF \ | |
| -DCMAKE_INSTALL_PREFIX=/usr/local \ | |
| cmake .. -DNVCC_ARCH_COMPUTE=89 | |
| echo "π¨ Building and installing OpenCL-SDK..." | |
| sudo cmake --build . --target install | |
| cd ../.. | |
| echo "π§Ή Cleaning up OpenCL-SDK sources..." | |
| sudo rm -rf OpenCL-SDK | |
| echo "β OpenCL SDK 3.0.19 installed successfully" | |
| #========================================================================== | |
| # VERIFY DEPENDENCIES | |
| #========================================================================== | |
| - name: Verify all dependencies | |
| run: | | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "π DEPENDENCY VERIFICATION" | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| # CMake version | |
| echo "β CMake: $(cmake --version | head -n1)" | |
| # CUDA version | |
| if [ -f "/usr/local/cuda/bin/nvcc" ]; then | |
| echo "β CUDA: $(/usr/local/cuda/bin/nvcc --version | grep release | awk '{print $5}' | cut -d',' -f1)" | |
| else | |
| echo "β CUDA not found" | |
| exit 1 | |
| fi | |
| # OpenSSL version | |
| if [ -f "/usr/local/lib64/libssl.so" ]; then | |
| echo "β OpenSSL: found" | |
| else | |
| echo "β OpenSSL not found" | |
| exit 1 | |
| fi | |
| # Boost version | |
| if [ -f "/usr/local/include/boost/version.hpp" ]; then | |
| BOOST_VERSION=$(grep "#define BOOST_LIB_VERSION" /usr/local/include/boost/version.hpp | awk '{print $3}' | tr -d '"') | |
| echo "β Boost: ${BOOST_VERSION}" | |
| else | |
| echo "β Boost not found" | |
| exit 1 | |
| fi | |
| # OpenCL version | |
| if [ -f "/usr/local/include/CL/cl.h" ]; then | |
| OPENCL_VERSION=$(grep "#define CL_TARGET_OPENCL_VERSION" /usr/local/include/CL/cl.h | awk '{print $3}') | |
| echo "β OpenCL: 3.0.19 (target: ${OPENCL_VERSION})" | |
| else | |
| echo "β OpenCL not found" | |
| exit 1 | |
| fi | |
| # Clang version | |
| echo "β Clang: $(clang-15 --version | head -n1)" | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "β All dependencies verified successfully" | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| #========================================================================== | |
| # CMAKE CONFIGURATION | |
| #========================================================================== | |
| - name: Configure CMake | |
| run: | | |
| CMAKE_CMD="cmake -B build \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DBUILD_NVIDIA=ON \ | |
| -DBUILD_AMD=ON \ | |
| -DBUILD_CPU=ON \ | |
| -DENABLE_LTO=OFF \ | |
| -DENABLE_NATIVE=OFF" | |
| $CMAKE_CMD | |
| $CMAKE_CMD | |
| env: | |
| CUDA_HOME: /usr/local/cuda-13.1 | |
| CUDACXX: /usr/local/cuda-13.1/bin/nvcc | |
| LD_LIBRARY_PATH: /usr/local/cuda-13.1/lib64:/usr/local/ssl/lib | |
| #========================================================================== | |
| # BUILD PROJECT | |
| #========================================================================== | |
| - name: Build project | |
| run: | | |
| cd build | |
| # Build with all available CPU cores | |
| make -sj $(nproc) | |
| - name: Clean build intermediates | |
| run: | | |
| echo "π§Ή Cleaning up build intermediate files..." | |
| # Remove CMake temporary files | |
| find build -type f -name "*.o" -delete | |
| find build -type f -name "*.a" -delete 2>/dev/null || true | |
| find build -type d -name "CMakeFiles" -exec rm -rf {} + 2>/dev/null || true | |
| # Keep only final binaries and libraries | |
| echo "β Build cleanup complete" | |
| - name: Verify build outputs | |
| run: | | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "π¦ BUILD OUTPUTS" | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| # Check build directory structure | |
| echo "Build directory structure:" | |
| ls -la build/ || echo "No build directory" | |
| # Check for binaries in common locations | |
| if [ -d "build/bin" ]; then | |
| echo "" | |
| echo "Binaries in build/bin/:" | |
| ls -lh build/bin/ | |
| echo "" | |
| echo "Binary types:" | |
| for f in build/bin/*; do | |
| if [ -f "$f" ]; then | |
| echo "$(basename $f):" | |
| file "$f" | |
| fi | |
| done | |
| fi | |
| if [ -d "build/lib" ]; then | |
| echo "" | |
| echo "Libraries in build/lib/:" | |
| ls -lh build/lib/ | head -10 | |
| fi | |
| if [ -d "bin" ]; then | |
| echo "" | |
| echo "Binaries in bin/:" | |
| ls -lh bin/ | |
| fi | |
| if [ -d "lib" ]; then | |
| echo "" | |
| echo "Libraries in lib/:" | |
| ls -lh lib/ | head -10 | |
| fi | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| #========================================================================== | |
| # BUILD SUMMARY | |
| #========================================================================== | |
| - name: Build Summary | |
| if: always() | |
| run: | | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "β LUMINOUSMINER BUILD COMPLETE" | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo "π¦ Platform: Ubuntu 22.04" | |
| echo "π¦ Build Type: Release" | |
| echo "π¦ CUDA: 13.1 (Blackwell support)" | |
| echo "π¦ Boost: 1.86.0" | |
| echo "π¦ OpenSSL: 1.1.1" | |
| echo "π¦ OpenCL: 3.0.19" | |
| echo "π¦ Compiler: Clang 15" | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββββββ" | |
| # Check all possible artifact locations | |
| ARTIFACTS_FOUND=false | |
| if [ -d "build/bin" ] && [ "$(ls -A build/bin 2>/dev/null)" ]; then | |
| echo "β Build artifacts found in build/bin/" | |
| ARTIFACTS_FOUND=true | |
| fi | |
| if [ -d "bin" ] && [ "$(ls -A bin 2>/dev/null)" ]; then | |
| echo "β Build artifacts found in bin/" | |
| ARTIFACTS_FOUND=true | |
| fi | |
| if [ "$ARTIFACTS_FOUND" = false ]; then | |
| echo "β οΈ No build artifacts detected (may be normal depending on project structure)" | |
| echo "" | |
| echo "π Searching for build outputs:" | |
| find build -name "*.so" -o -name "*.a" -o -type f -executable 2>/dev/null | grep -v ".git" | head -20 || echo "No libraries or executables found" | |
| else | |
| echo "" | |
| echo "β Build completed successfully!" | |
| fi |