FLAMEGPU / FLAMEGPU2

FLAME GPU 2 is a GPU accelerated agent based modelling framework for CUDA C++ and Python
https://flamegpu.com
MIT License
106 stars 21 forks source link

CUDA 12.6 RTC incompatible definition warnings #1251

Closed ptheywood closed 4 days ago

ptheywood commented 6 days ago

While running the C++ test suite on windows, built with CUDA 12.6, a large number of RTC compilation warnings were emitted:

---------------------------------------------------
--- JIT compile log for rtc_test_func_program ---
---------------------------------------------------
cuda/std/__cuda/climits_prelude.h(43): warning #47-D: incompatible redefinition of macro "SHRT_MIN" (declared at line 23 of climits)
  #  define SHRT_MIN  (-SHRT_MAX - 1)
            ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

cuda/std/__cuda/climits_prelude.h(44): warning #47-D: incompatible redefinition of macro "SHRT_MAX" (declared at line 24 of climits)
  #  define SHRT_MAX  0x7fff
            ^

cuda/std/__cuda/climits_prelude.h(45): warning #47-D: incompatible redefinition of macro "USHRT_MAX" (declared at line 25 of climits)
  #  define USHRT_MAX 0xffff
            ^

cuda/std/__cuda/climits_prelude.h(47): warning #47-D: incompatible redefinition of macro "INT_MAX" (declared at line 27 of climits)
  #  define INT_MAX   0x7fffffff
            ^

cuda/std/__cuda/climits_prelude.h(48): warning #47-D: incompatible redefinition of macro "UINT_MAX" (declared at line 28 of climits)
  #  define UINT_MAX  0xffffffff
            ^

cuda/std/__cuda/climits_prelude.h(49): warning #47-D: incompatible redefinition of macro "LONG_MIN" (declared at line 34 of climits)
  #  define LONG_MIN  (-LONG_MAX - 1)
            ^

cuda/std/__cuda/climits_prelude.h(54): warning #47-D: incompatible redefinition of macro "LONG_MAX" (declared at line 32 of climits)
  #    define LONG_MAX  INT_MAX
              ^

cuda/std/__cuda/climits_prelude.h(55): warning #47-D: incompatible redefinition of macro "ULONG_MAX" (declared at line 38 of climits)
  #    define ULONG_MAX UINT_MAX
              ^

cuda/std/__cuda/climits_prelude.h(57): warning #47-D: incompatible redefinition of macro "LLONG_MIN" (declared at line 41 of climits)
  #  define LLONG_MIN  (-LLONG_MAX - 1)
            ^

cuda/std/__cuda/climits_prelude.h(58): warning #47-D: incompatible redefinition of macro "LLONG_MAX" (declared at line 40 of climits)
  #  define LLONG_MAX  0x7fffffffffffffffLL
            ^

cuda/std/__cuda/climits_prelude.h(59): warning #47-D: incompatible redefinition of macro "ULLONG_MAX" (declared at line 42 of climits)
  #  define ULLONG_MAX 0xffffffffffffffffUL
            ^

Seeing as its out of our control, we should probably just suppress these.

Unsure if it effects linux too or not, as I tend to build with CUDA 12.2 or older due to the jitify perf issues.

Robadob commented 6 days ago

Hmm, this could be Jitify redefining those macros, if somewhere they're now defined inside NVCC.

On Tue, 19 Nov 2024 at 22:14, Peter Heywood @.***> wrote:

While running the C++ test suite on windows, built with CUDA 12.6, a large number of RTC compilation warnings were emitted:


--- JIT compile log for rtc_test_func_program ---

cuda/std/__cuda/climits_prelude.h(43): warning #47-D: incompatible redefinition of macro "SHRT_MIN" (declared at line 23 of climits)

define SHRT_MIN (-SHRT_MAX - 1)

        ^

Remark: The warnings can be suppressed with "-diag-suppress "

cuda/std/__cuda/climits_prelude.h(44): warning #47-D: incompatible redefinition of macro "SHRT_MAX" (declared at line 24 of climits)

define SHRT_MAX 0x7fff

        ^

cuda/std/__cuda/climits_prelude.h(45): warning #47-D: incompatible redefinition of macro "USHRT_MAX" (declared at line 25 of climits)

define USHRT_MAX 0xffff

        ^

cuda/std/__cuda/climits_prelude.h(47): warning #47-D: incompatible redefinition of macro "INT_MAX" (declared at line 27 of climits)

define INT_MAX 0x7fffffff

        ^

cuda/std/__cuda/climits_prelude.h(48): warning #47-D: incompatible redefinition of macro "UINT_MAX" (declared at line 28 of climits)

define UINT_MAX 0xffffffff

        ^

cuda/std/__cuda/climits_prelude.h(49): warning #47-D: incompatible redefinition of macro "LONG_MIN" (declared at line 34 of climits)

define LONG_MIN (-LONG_MAX - 1)

        ^

cuda/std/__cuda/climits_prelude.h(54): warning #47-D: incompatible redefinition of macro "LONG_MAX" (declared at line 32 of climits)

define LONG_MAX INT_MAX

          ^

cuda/std/__cuda/climits_prelude.h(55): warning #47-D: incompatible redefinition of macro "ULONG_MAX" (declared at line 38 of climits)

define ULONG_MAX UINT_MAX

          ^

cuda/std/__cuda/climits_prelude.h(57): warning #47-D: incompatible redefinition of macro "LLONG_MIN" (declared at line 41 of climits)

define LLONG_MIN (-LLONG_MAX - 1)

        ^

cuda/std/__cuda/climits_prelude.h(58): warning #47-D: incompatible redefinition of macro "LLONG_MAX" (declared at line 40 of climits)

define LLONG_MAX 0x7fffffffffffffffLL

        ^

cuda/std/__cuda/climits_prelude.h(59): warning #47-D: incompatible redefinition of macro "ULLONG_MAX" (declared at line 42 of climits)

define ULLONG_MAX 0xffffffffffffffffUL

        ^

Seeing as its out of our control, we should probably just suppress these.

Unsure if it effects linux too or not, as I tend to build with CUDA 12.2 or older due to the jitify perf issues.

— Reply to this email directly, view it on GitHub https://github.com/FLAMEGPU/FLAMEGPU2/issues/1251, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFVGCX7VC5UEY7T3DVOH7T2BOZ2TAVCNFSM6AAAAABSDFP6KWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGY3TGNRZG43TGNQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>