Extend missing implementations for float16 support
Extends missing implementations for float16 support. Namely, an MPI_Datatype specialization for 16 bit (wchar_t) and an equality check. Also, improves the CMake checks for WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT depending on the compiler and adds float16 tests to the CI.
This merge request is related to the HyTeG merge request !671.
More information about necessary compiler features can be found in this HyTeG MR comment.
TODO:
-
Extend MPI_Datatype by a 16 bits type, i.e. WCHAR. -
Add equality check for float16. -
Create a minimal requirement test for float16 that only checks is_floating_point<walberla::float16>::value == true. (Note: must bestatic_assertsinceWALBERLA_CHECKdoes not result in an error.) -
EnableThis must be reactivated, once newer compilers are added to the CI.WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORTin CI. -
Change WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORTfor different compiler checks in CMakeLists.txt to work if the minimal requirement test compiles.
Edited by Michael Zikeli