3 ms·
I like and assign the Goldberg paper. I haven't spent much time with the Higham book; thank you for for full text link. In my class, FP computation is somethin
by an1sotropy 4y ago
I like and assign the Goldberg paper. I haven't spent much time with the Higham book; thank you for for full text link.
In my class, FP computation is something I try to teach the students to be mindful of, but it is hardly the focus of the class (about certain kinds of data visualization). FP computation arises in lots of different places in many different functions, often in the context of a larger data processing pipeline that actually starts and ends with 16-bit integers (e.g. medical imaging data). So I'm not sure how I'd thoroughly exercise the FP-related code in the way that you describe. Hence my current use of something I can easily control at the outset of the whole pipeline (the direction of rounding).
Do you have any ideas on injecting randomized rounding mode changes prior to FP ops in the assembly, or something functionally equivalent for characterizing C code (ideally without code changes)? I just found [1] which seems extremely related, but I'll have to look into whether the code still works.
[1] http://www.iboview.org/random_rounding/ http://www.iboview.org/random_rounding/
- an1sotropy 4y agoAt the risk of just talking to myself, I'll note that a google scholar search on the [1] above led me to this phd [2] which in turn led me to two newer tools, Verrou [3] and Verificarlo [4] which involve Valgrind and Docker, respectively, though I'd have to understand what exactly is being contained by Docker for Verrou. But it makes me appreciate more the minimalist approach of Knizia et al. in [1], which does involve recompilation of modified assembly, but that's something I'm doing multiple times with student code already. [2] https://tel.archives-ouvertes.fr/tel-03110553/document https://tel.archives-ouvertes.fr/tel-03110553/document [3] https://github.com/edf-hpc/verrou https://github.com/edf-hpc/verrou [4] https://github.com/verificarlo/verificarlo https://github.com/verificarlo/verificarlo