Skip to content

Help Needed: Running OpenLB 1.7 on single GPU

OpenLB – Open Source Lattice Boltzmann Code Forums on OpenLB General Topics Help Needed: Running OpenLB 1.7 on single GPU

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #8902
    jerryswjtu
    Participant

    Hello everyone,

    I am currently using OpenLB 1.7, and interested in running it on a single GPU. However, I am encountering some difficulties and would greatly appreciate any guidance or assistance from the community.

    Here are the details of my setup and the issues I am facing:

    System Configuration:
    Operating System: Ubuntu 20.04.6 LTS
    GPU: RTX 4060
    CUDA Version: 12.1 (also try 11.4 and 11.7, but none of these works)
    OpenLB Version: 1.7

    Installation Process:
    config.mk (based on gpu_only.mk):
    CXX := nvcc
    CC := nvcc

    CXXFLAGS := -O3
    CXXFLAGS += -std=c++17 –forward-unknown-to-host-compiler

    PARALLEL_MODE := NONE

    PLATFORMS := CPU_SISD GPU_CUDA

    CUDA_ARCH := 89 (also try 87 86 75, none of these works)

    FLOATING_POINT_TYPE := float

    USE_EMBEDDED_DEPENDENCIES := ON

    Error logs:
    nvcc –version
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2023 NVIDIA Corporation
    Built on Mon_Apr__3_17:16:06_PDT_2023
    Cuda compilation tools, release 12.1, V12.1.105
    Build cuda_12.1.r12.1/compiler.32688072_0

    test@pc:~/openlb/release-1.7/examples/laminar/cavity3dBenchmark$ make clean && make && ./cavity3d
    rm -f tmp/*.* tmp/vtkData/*.* tmp/vtkData/data/*.* tmp/imageData/*.* tmp/imageData/data/*.* tmp/gnuplotData/*.* tmp/gnuplotData/data/*.*
    rm -f cavity3d.o cavity3d.d cavity3d
    make -C ../../../external
    make[1]: Entering directory ‘/home/test/openlb/release-1.7/external’
    make -C zlib
    make[2]: Entering directory ‘/home/test/openlb/release-1.7/external/zlib’
    make[2]: Nothing to be done for ‘all’.
    make[2]: Leaving directory ‘/home/test/openlb/release-1.7/external/zlib’
    cp zlib/build/libz.a lib/make -C tinyxml
    make[2]: Entering directory ‘/home/test/openlb/release-1.7/external/tinyxml’
    make[2]: Nothing to be done for ‘all’.
    make[2]: Leaving directory ‘/home/test/openlb/release-1.7/external/tinyxml’
    cp tinyxml/build/libtinyxml.a lib/
    make[1]: Leaving directory ‘/home/test/openlb/release-1.7/external’
    make -C ../../.. core
    make[1]: Entering directory ‘/home/test/openlb/release-1.7’
    make[1]: Nothing to be done for ‘core’.
    make[1]: Leaving directory ‘/home/test/openlb/release-1.7’
    nvcc -O3 -std=c++17 –forward-unknown-to-host-compiler -pthread –forward-unknown-to-host-compiler -x cu -O3 -std=c++17 –generate-code=arch=compute_89,code=[compute_89,sm_89] –extended-lambda –expt-relaxed-constexpr -rdc=true -Xcudafe “–diag_suppress=implicit_return_from_non_void_function –display_error_number –diag_suppress=20014 –diag_suppress=20011” -DPLATFORM_CPU_SISD -DPLATFORM_GPU_CUDA -DDEFAULT_FLOATING_POINT_TYPE=float -I../../../src -I../../../external/zlib -I../../../external/tinyxml -c -o cavity3d.o cavity3d.cpp
    ../../../src/utilities/typeIndexedContainers.h(189): warning #20012-D: __device__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple() __attribute__((device)) __attribute__((host)) = default;
    ^
    Remark: The warnings can be suppressed with “-diag-suppress <warning-number>”

    ../../../src/utilities/typeIndexedContainers.h(189): warning #20012-D: __host__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple() __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(190): warning #20012-D: __device__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple(TypeIndexedTuple&) __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(190): warning #20012-D: __host__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple(TypeIndexedTuple&) __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(191): warning #20012-D: __device__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple(TypeIndexedTuple&& rhs) __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(191): warning #20012-D: __host__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple(TypeIndexedTuple&& rhs) __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(189): warning #20012-D: __device__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple() __attribute__((device)) __attribute__((host)) = default;
    ^
    Remark: The warnings can be suppressed with “-diag-suppress <warning-number>”

    ../../../src/utilities/typeIndexedContainers.h(189): warning #20012-D: __host__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple() __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(190): warning #20012-D: __device__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple(TypeIndexedTuple&) __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(190): warning #20012-D: __host__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple(TypeIndexedTuple&) __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(191): warning #20012-D: __device__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple(TypeIndexedTuple&& rhs) __attribute__((device)) __attribute__((host)) = default;
    ^
    ../../../src/utilities/typeIndexedContainers.h(191): warning #20012-D: __host__ annotation is ignored on a function(“TypeIndexedTuple”) that is explicitly defaulted on its first declaration
    TypeIndexedTuple(TypeIndexedTuple&& rhs) __attribute__((device)) __attribute__((host)) = default;
    ^
    nvcc cavity3d.o -o cavity3d -lolbcore -L../../../external/lib -lpthread -lz -ltinyxml -lcuda -lcudadevrt -lcudart -L../../../build/lib
    nvlink warning : SM Arch (‘sm_52’) not found in ‘cavity3d.o’
    100, 100, 1, 1, 1, 792.539

    When I execute the compiled cavity3d, it just shows ‘100, 100, 1, 1, 1, 792.539’ and exit without any other output.
    Thanks a lot in advance for any help and support. I look forward to any advice or recommendations.

    Best regards,
    Jerry

    #8903
    Adrian
    Keymaster

    This is all working, the output you get is structured as CSV for use in scalability benchmark scripts. If your try another example this will be different.

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.