“odf_lut.h” contains over 11,000 elements which seems to cause problems. I reduced this down to 500 elements, and then it only took a few seconds. Best guess is the compiler isn’t actually hung, just taking a realllllly long time to process. Hopefully engineering can find a way to speed this up.
What’s very interesting is that nvcc works, while the other nvhpc components do not.
By default, nvcc uses g++ as the host compiler so will match the behavior to gcc.
“TPR” stands for Technical Problem Report. It’s the bug tracking system that we’ve been using for about 30 years, since our PGI days. When NVIDIA bought us, our team kept it given the history and ease of use. The one drawback is that it’s not externally visible.
NVIDIA does have NVBUG which you can use and that does have a way to monitor your bugs. Though you’d you need to submit it via your NVIDIA Developer account page (i.e. I can’t submit the bug for you). We get these as well so which ever works best for you is fine.
Though I’m happy to look up a status of a TPR, just send me a direct message or respond to this post. Also, I do post a notification once a TPR has been fixed in a release.
It would be “#pragma opt 0”, i.e. no “=”. Placement is also key in that you want to put the pragma inside the function so it has “routine” scope so the lower opt level only applies to this one routine and not the whole file.
However, I’m not sure it’s working in this case, but that may only because I wasn’t being patient enough.
If you move this to its own file, then no need to use the pragma, just set “-O0”.
While I do have a technical workaround, not all our users can readily adopt it in their workflows, so this is prohibiting our uptake of NVHPC for some codes.