Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Application of Half-float (float16) accelerators in software

SergeyKostrov
Valued Contributor II
975 Views
In 'Intel IPP support for Intel(R) AVX2' article: http://software.intel.com/en-us/articles/haswell-support-in-intel-ipp there is a statement about '...Half-float (float16) accelerators...'. Where could I find more technical information about these accelerators? Thanks in advance.
0 Kudos
2 Replies
sirrida
Beginner
975 Views
As you can see in the referenced documentation it is no more than one command to convert 4 (XMM) or 8 (YMM) half-floats to single precision floats (VCVTPH2PS) and one command for the reverse (VCVTPS2PH). The mentioned documentation is not up-to-date; you can download a newer version of the "Intel architecture instruction set extensions programming reference" (currently version 14) at http://software.intel.com/en-us/avx/ but these commands are now "official" and were therefore moved into the regular documentation downloadable at http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
0 Kudos
SergeyKostrov
Valued Contributor II
975 Views
My understanding is that a 'float16' floating point type is a 16-bit long ( for example, NVIDIA's APIs allow to declare it in C/C++ codes ). A regular Single-Precision floating point type is a 32-bit long: sign(1) + exponent(8) + mantissa(23). When 'sign' and 'mantissa' are combined it is known as a 24-bit precision. It could be called as 'float32' or 'float4' instead of just 'float'. Anyway, Thanks for these web-links and I'll take a look at Intel's docs. PS: Just found some additional information on: . http://en.wikipedia.org/wiki/Half-precision_floating-point_format
0 Kudos
Reply