I think I found a bug in the math library. The following code fails with a floating point exception (compiled with “-Ktrap=fp”, no optimization):
#include <iostream>
#include <cmath>
using namespace std;
int
main(int argc, char* argv[])
{
cout << atan2(0.0, 1.0) << endl;
return 0;
}
Output of “nvc++ --version” (running under Ubuntu 22.04 LTS):
nvc++ 24.5-1 64-bit target on x86-64 Linux -tp znver2
NVIDIA Compilers and Tools
Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Output of ldd applied to the test program:
linux-vdso.so.1 (0x00007ffcd0de7000)
libatomic.so.1 => /lib/x86_64-linux-gnu/libatomic.so.1 (0x00007f3704016000)
libnvhpcatm.so => /opt/nvidia/hpc_sdk/Linux_x86_64/24.5/compilers/lib/libnvhpcatm.so (0x00007f3703e00000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3703bd4000)
libnvomp.so => /opt/nvidia/hpc_sdk/Linux_x86_64/24.5/compilers/lib/libnvomp.so (0x00007f3702a00000)
libnvcpumath.so => /opt/nvidia/hpc_sdk/Linux_x86_64/24.5/compilers/lib/libnvcpumath.so (0x00007f3702400000)
libnvc.so => /opt/nvidia/hpc_sdk/Linux_x86_64/24.5/compilers/lib/libnvc.so (0x00007f3702000000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3701dd7000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3703bb4000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3703acd000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3704046000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f370400f000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3703ac8000)