我正在尝试对 GPGPU 计算使用半精度。我需要澄清一个困惑
我可以同时找到所有这些东西的参考;
支持纹理格式的半浮点数据类型,纹理硬件自动将半精度转换为浮点,仅在设备上支持浮点到半和半浮点转换功能,以及以无符号短格式存储半精度值。
所以为了让这一切有意义,我做出了这些推论。
CUDA 支持两种处理半精度的方式。
将浮点数存储在全局内存中。通过halftofloat将它们转换为一半,以 unsigned short 形式存储在全局内存中,并在执行任何操作之前通过halftofloat重新转换为浮点数。
(因为纹理内存是设备只读的)在主机中以 unsigned short 形式存储半精度数字,将它们从主机代码存储在纹理内存中,通过内部 TEX 函数读取并对其执行操作(无需转换为浮点数) .
如果我错了,请纠正我?