Kad*_*dir 5 x86 intel avx floating-point-conversion half-precision-float
是否可以在英特尔芯片上执行半精度浮点运算?
我知道如何加载/存储/转换半精度浮点数[1],但我不知道如何在不转换为单精度浮点数的情况下添加/相乘它们.
[1] https://software.intel.com/en-us/articles/performance-benefits-of-half-precision-floats
Pet*_*des 14
是否可以在英特尔芯片上执行半精度浮点运算?
是的,显然是Skylake的片上GPU以及后来的FP16和FP64以及FP32的硬件支持.使用足够新的驱动程序,您可以通过OpenCL使用它.
在早期的芯片上,您可以获得与FP16相比吞吐量相同的FP32(可能只是快速转换几乎免费),但在SKL/KBL芯片上,您可以获得 GPGPU Mandelbrot FP32吞吐量的两倍(请注意对数刻度)该链接中图表的Mpix/s轴).
FP64(double)性能的提升也是巨大的.
但在IA核心(英特尔架构)没有 ; 即使使用AVX512,除了转换它们之外,没有任何硬件支持.
您当然可以实现软件浮点,甚至可能在SIMD寄存器中实现,所以从技术上讲,答案对于您提出的问题仍然是"肯定",但它不会比使用F16C VCVTPH2PS/ VCVTPS2PH指令+打包单vmulps/ vfmadd132ps硬件支持更快.
技术上是肯定但不是有用的,除了GPGPU.使用HW-支持从SIMD转换/ float/ __m256在x86代码.
| 归档时间: | 
 | 
| 查看次数: | 2376 次 | 
| 最近记录: |