我们已经学习了数学,并且我们都知道有理数和无理数。然后是一类数字,称为有理数中的浮点数。您对此有什么印象?在软件编程中,我们还使用浮点数,这是一种既包含小数又包含整数的数据类型。让我们谈谈浮点数中单精度,双精度,多精度和混合精度计算之间的区别。 1关于pi比率π,当我们提到pi比率π时,它可以用多种方式表示,可以用数学常数3.14159或长二进制字符串1和0表示。Pi是无理数,无穷小数位而且没有流通。因此,在使用pi进行计算时,人和计算机都必须根据精度要求将数字四舍五入到小数点后。在小学,小学生只能手工计算数学问题,Pi的值只能计算到小数点后两位至3.14;而使用图形计算器的高中生可能会使Pi的值降至小数点后10位数字更准确地表示pi的比率。在计算机科学中,这称为精度,通常以二进制数而不是小数来度量。对于复杂的科学模拟,开发人员长期以来一直依靠高精度数学来研究诸如“大爆炸”之类的事物或预测数百万个原子之间的相互作用。数字的位数越高,或小数点后的位数越多,意味着科学家可以在更大的数值范围内反映两个数值的变化。这样,科学家可以准确地计算出最大的星系或最小的粒子。但是,计算精度越高,就需要更多的计算资源,数据传输和内存存储。它的成本将更高,并且将消耗更多的功率。由于并非每个工作负载都需要高精度,因此AI和HPC研究人员可以通过混合或匹配不同级别的精度来执行操作,以最大程度地提高收益。 NVIDIATensorCoreGPU支持多精度和混合精度技术,使开发人员能够优化计算资源并加快AI应用程序及其推理功能的培训。 2单精度,双精度和半精度浮点格式之间的区别IEEE浮点算术标准是一种通用约定,用于测量计算机上以二进制表示的数字的精度。在双精度格式中,每个数字占64位,单精度格式占32位,而半精度格式仅占16位。要了解它是如何工作的,我们可以以Pi为例。在传统的科学表示法中,pi表示为3.14x100。但是计算机将这些信息以二进制形式存储为浮点,即一系列1和0,它们代表一个数字及其对应的指数。在这种情况下,pi表示为1.1001001x21。在单精度32位格式中,1位用于指示数字是正数还是负数。指数保留8位,因为它是二进制的,并且2前进到了高位。其余的23位数字代表组成该数字的数字,称为有效数字。以双精度表示,指数保留11位,有效数字位数为52,这大大扩展了它可以表示的数字的范围和大小。半精度表示范围较小,指数只有5位数字,有效数字只有10位数字。 pi在每个精度级别上的性能如下:3多精度计算和混合精度计算之间的差异多精度计算意味着使用可以以不同精度进行计算的处理器,在需要高精度计算的零件中使用双精度。精度和应用程序的其他部分使用半精度或单精度算术。混合精度(也称为超精度)计算在单个操作中使用不同级别的精度,以在不牺牲精度的情况下实现计算效率。在混合精度中,计算从半精度值开始,以进行快速矩阵数学运算。但是随着数字的计算,机器将以更高的精度存储结果。例如,如果将两个16位矩阵相乘,则结果为32位大小。使用此方法,当应用程序结束计算时,累积结果的准确性与使用双精度算法获得的结果相当。这项技术可以将传统的双精度应用程序加速多达25倍,同时减少了运行所需的内存,时间和功耗。它可用于AI和模拟的HPC工作负载。随着混合精度算法在现代超级计算应用中的普及,