Closed ccoulombe closed 1 month ago
To add, no define are actually done in the source:
(2771) [coulombc@node1 GalSim]$ git grep -e '^#define DEBUGLOGGING'
(2771) [coulombc@node1 GalSim]$
as they are commented.
For now, I'll build without gpu offloading.
This feels like a compiler bug to me. If DEBUGLOGGING is not turned on, then all uses of dbgout are guarded by if (false)
which the compiler should trivially optimize away.
But I think I have a way around it. Can you try git checkout '#1313'
, and see if that branch compiles and links successfully for you?
Yes sure, I will, by the end of the day today! Thanks for looking into this quickly
:tada: Works :) Thanks for the fix. I'll use this to patch the wheels, unless you are about to release 2.6.1? @rmjarvis
Great. Thanks. I'll release 2.6.1 shortly.
@ccoulombe Version 2.6.1 has been released on pypi. Let me know if you still have any problems with it.
Howdy!
Building from source succeeds, but once the wheel is installed it fails on import with this missing symbol :
This happens on a Linux systems, with GCC 12.3 with offloading to a GPU. This symbol
dbgout
is effectively not found:But, building without offloading (tweaking the setup to enforce it) is correct and I can import galsim correctly!
The two issues on github (where dbgout is mentionned), suggested that this symbol is from in-house debugging. Searching a bit in the source files lead to
Std.h
where an extern is definedWhat puzzle me is that
-DNDEBUG
is defined in both cases, but I guess thatDEBUGLOGGING
is somehow defined when building with offloading. Here's a compilation line when building with offloading:Reproduce
Any hints ? Thanks