Below is an example of various evaluations using Float16 and Float types. Using one source file, the type used during compilation was changed such that App0 uses Float and App1 uses Float16.

kasper@pinoak-login1:~> gdb4hpc
gdb4hpc 4.16.5. - Cray Interactive Parallel Debugger
With Cray Comparative Debugging Technology.
Copyright 2007-2025 Hewlett Packard Enterprise Development LP.
Copyright 1996-2016 University of Queensland. All Rights Reserved.

Type "help" for a list of commands.
Type "help <cmd>" for detailed help about a command.
dbg all> launch $App0{1} ./bin/GNU/C++/cpp_bd_test.x
Starting application, please wait...
Launched application...
0/1 ranks connected... (timeout in 300 seconds)
1/1 ranks connected.
Created network...
Connected to application...
Launch complete.
App0{0}: Initial breakpoint, main at src/C++/cpp_bd_test.cpp:37
dbg all> launch $App1{1} ./bin/GNU/C++/cpp_bd_test16.x
Starting application, please wait...
Launched application...
1/1 ranks connected
Creating network... (timeout in 300 seconds)
Created network...
Connected to application...
Launch complete.
App1{0}: Initial breakpoint, main at src/C++/cpp_bd_test.cpp:37
dbg all> print vf16[4][6]
App0{0}: 0
App1{0}: 0
dbg all> b 84
App0{0}: Breakpoint 1: file /home/users/kasper/test_install_dir/gdb4hpc/4.16.5.99/tests/src/C++/cpp_bd_test.cpp, line 84.
App1{0}: Breakpoint 1: file /home/users/kasper/test_install_dir/gdb4hpc/4.16.5.99/tests/src/C++/cpp_bd_test.cpp, line 84.
dbg all> build $diff
diff> set halt on
diff> set error 1e-4 2
diff> assert $App0::vf16@"src/C++/cpp_bd_test.cpp":82 == $App1::vf16@"src/C++/cpp_bd_test.cpp":82
diff> end
Assertion script $diff compiled.
dbg all> start $diff
Sending continue to application...
dbg all> Assertion script reached a point where every rank is stopped and no assertions can be evaluated.
Sending halt to all involved ranks.
App0{0}: Application halted in main at /home/users/kasper/test_install_dir/gdb4hpc/4.16.5.99/tests/src/C++/cpp_bd_test.cpp:84
App1{0}: Application halted in main at /home/users/kasper/test_install_dir/gdb4hpc/4.16.5.99/tests/src/C++/cpp_bd_test.cpp:84
Assertion script $diff stopped.
Use "info script $diff results" to view results.

dbg all> info script $diff results
Results summary for script $diff, configured with halt:

Total full runs: 1
Total assertion evaluations this run: 1
Passed: 0, Passed with warning: 1, Failed: 0, Indeterminate: 0
Assertion results:

Assertion 1, configured with error: 0.0001, 2:
$App0::vf16@"src/C++/cpp_bd_test.cpp":82 == $App1::vf16@"src/C++/cpp_bd_test.cpp":82
Passes: 0, Passes with warnings: 1, Failures: 0.

dbg all> print vf16[4][6]
App0{0}: 10.8613
App1{0}: 10.86
dbg all> python
Entering python interpreter, use exit to leave.
python> x = gdb.e('vf16')
python> import numpy as np
python> y=x['App0{0}']
python> z=x['App1{0}']
python> diff=np.subtract(y,z)
python> print(diff)
[[-1.37865543e-04  4.20808792e-05  2.42233276e-04 ...  3.71337891e-01
   4.21386719e-01  4.71313477e-01]
 [ 1.42097473e-04 -6.57796860e-04  4.42266464e-04 ...  3.81347656e-01
   4.31396484e-01  4.81323242e-01]
 [ 3.42369080e-04 -4.57763672e-04  7.41958618e-04 ...  3.91357422e-01
   4.41284180e-01  4.91333008e-01]
 ...
 [-8.66699219e-03  4.13208008e-02  9.13696289e-02 ...  3.41308594e-01
  -6.08642578e-01  4.41406250e-01]
 [ 1.34277344e-03  5.13305664e-02  1.01318359e-01 ... -6.48681641e-01
   4.01367188e-01 -5.48583984e-01]
 [ 1.13525391e-02  6.13403320e-02  1.11328125e-01 ...  3.61328125e-01
  -5.88623047e-01  4.61425781e-01]]
python> diff_sort=np.sort(diff)
python> diff_avg=np.average(diff)
python> diff_mean=np.mean(diff)
python> print(diff_avg)
-0.0030564799627661706
python> print(diff_mean)
-0.0030564799627661706
python> print(np.median(diff))
0.0013427734375
python> print(np.max(diff))
0.4913330078125
python> print(np.min(diff))
-0.98876953125
python> print(np.std(diff))
0.22439718006610812
python> top_left=diff_sort[:diff_sort.shape[0]//2, :diff_sort.shape[1]//2]
python> bottom_right=diff_sort[diff_sort.shape[0]//2:, diff_sort.shape[1]//2:]
python> print(np.average(top_left))
-0.14243348554587365
python> print(np.average(bottom_right))
0.21446755700683592
python> print(top_left)
[[-0.4786377  -0.42871094 -0.37866211 ...  0.00234222  0.00234222
   0.00234222]
 [-0.46862793 -0.41870117 -0.36865234 ... -0.00665665 -0.00665665
  -0.00665665]
 [-0.45861816 -0.40869141 -0.35864258 ... -0.00865173 -0.00865173
  -0.00865173]
 ...
 [-0.45861816 -0.45861816 -0.45861816 ... -0.00866699  0.0413208
   0.0413208 ]
 [-0.49865723 -0.49865723 -0.49865723 ...  0.00134277  0.00134277
   0.00134277]
 [-0.48864746 -0.48864746 -0.48864746 ...  0.01135254  0.01135254
   0.01135254]]
python> print(bottom_right)
[[0.0213623  0.0213623  0.0213623  ... 0.47131348 0.47131348 0.47131348]
 [0.03137207 0.03137207 0.03137207 ... 0.48132324 0.48132324 0.48132324]
 [0.0413208  0.0413208  0.0413208  ... 0.49133301 0.49133301 0.49133301]
 ...
 [0.04125977 0.0413208  0.0413208  ... 0.49133301 0.49133301 0.49133301]
 [0.0012207  0.00134277 0.00134277 ... 0.45129395 0.45129395 0.45129395]
 [0.01135254 0.01135254 0.01135254 ... 0.46130371 0.46130371 0.46142578]]
python> import write_dot_file
python> import sys
python> sys.path.insert(0,".")
python> write_dot_file(y,z,diff)
DOT file written
python>

write_dot_file was a script created to take the two arrays and their difference array and create a dot file. The dot file was then taken and run using the graphviz dot command to produce the image below.

Dot file in graphviz