Hi,
When I try to compile my OpenACC Fortran code with nvfortran 21.2, I am getting the following messages:
invalid tag
!2605 = !DIBasicType(tag: DW_TAG_string_type, name: “character”, size: 128, align: 8, encoding: DW_ATE_signed)
invalid tag
!3225 = !DIBasicType(tag: DW_TAG_string_type, name: “character”, size: 256, align: 8, encoding: DW_ATE_signed)
invalid tag
!3235 = !DIBasicType(tag: DW_TAG_string_type, name: “character”, size: 2048, align: 8, encoding: DW_ATE_signed)
invalid tag
!5679 = !DIBasicType(tag: DW_TAG_string_type, name: “character”, size: 512, align: 8, encoding: DW_ATE_signed)
The compilation completes, but what is this?
Thanks!
Hi Ron,
Interesting. The post right before this one has the same warning, though this is the first time I’ve seen this so don’t know what’s going on. Can you provide a reproducer so I can investigate?
Thanks,
Mat
Hi,
Unfortunately, I do not have a reproducer.
This is happening with our MAS code, but it does not happen with POT3D, so I do not know which part of the code is causing this.
I asked our team and they believe it’s coming from the DWARF (debug) LLVM code gen, but don’t know why it’s happening. Hopefully the other user can send us a reproducer so we can investigate.
Are you compiling with “-g” or “-gopt”? If so, does the warning go away after removing the flag?
Hi,
I am using the following flags:
-O3 -acc=gpu -gpu=cc75,cuda11.2 -Minfo=accel
Hi,
Some further details:
If I compile with -O1
or with -g
, the code crashes with:
FATAL ERROR: variable in data clause is partially present on the device: name=(unknown)
If I compile with -O3
the code works correctly.
I will try to work on a reproducer, but since I do not know where in the code the issue is, that might be hard to do.
Did you also get a present table dump? That should list the line number where this occurs.
Another thing to try is setting the environment variable “NV_ACC_NOTIFY=0xFF” to have the runtime print out each kernel launch and data movement. Might give some ideas where the failure occurs.
There’s also “NV_ACC_DEBUG=1” which while very verbose, will give very detailed info.
Hi Ron,
We finally got a reproducing example for the the “DW_TAG_string_type” message and have determined that the issue is a not-yet supported metadata type in CUDA 11.2 for Fortran character type in the device code. We’re working with the NVVM team on fix to a future CUDA version as well as a change in the compiler so the warning is not emitted.
-Mat
Thanks!
Is the message simply a warning, or does it imply a part of the code will not work correctly?
I believe it’s just a warning, though the debug info may not be visible for a character type if you view it in a debugger on the device.