0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單精度、雙精度和半精度浮點(diǎn)格式之間的區(qū)別

strongerHuang ? 來源:嵌入式專欄 ? 作者:strongerHuang ? 2020-11-29 09:57 ? 次閱讀

我們學(xué)過數(shù)學(xué),都知道有理數(shù)和無(wú)理數(shù),然后在有理數(shù)中有一類叫浮點(diǎn)數(shù)的數(shù)字,不知道大家對(duì)這些還有沒有印象?

在軟件編程的時(shí)候,我們也會(huì)用到浮點(diǎn)數(shù),一種既包含小數(shù)又包含整數(shù)的數(shù)據(jù)類型。

下面就來講講關(guān)于浮點(diǎn)數(shù)中,單精度、雙精度、多精度和混合精度計(jì)算的區(qū)別。

1

關(guān)于圓周率 π我們提到圓周率 π 的時(shí)候,它有很多種表達(dá)方式,既可以用數(shù)學(xué)常數(shù)3.14159表示,也可以用一長(zhǎng)串1和0的二進(jìn)制長(zhǎng)串表示。

圓周率 π 是個(gè)無(wú)理數(shù),既小數(shù)位無(wú)限且不循環(huán)。因此,在使用圓周率進(jìn)行計(jì)算時(shí),人和計(jì)算機(jī)都必須根據(jù)精度需要將小數(shù)點(diǎn)后的數(shù)字四舍五入。

在小學(xué)的時(shí)候,小學(xué)生們可能只會(huì)用手算的方式計(jì)算數(shù)學(xué)題目,圓周率的數(shù)值也只能計(jì)算到小數(shù)點(diǎn)后兩位——3.14;而高中生使用圖形計(jì)算器可能會(huì)使圓周率數(shù)值排到小數(shù)點(diǎn)后10位,更加精確地表示圓周率。

在計(jì)算機(jī)科學(xué)中,這被稱為精度,它通常以二進(jìn)制數(shù)字來衡量,而非小數(shù)。對(duì)于復(fù)雜的科學(xué)模擬,開發(fā)人員長(zhǎng)期以來一直都依靠高精度數(shù)學(xué)來研究諸如宇宙大爆炸,或是預(yù)測(cè)數(shù)百萬(wàn)個(gè)原子之間的相互作用。

數(shù)字位數(shù)越高,或是小數(shù)點(diǎn)后位數(shù)越多,意味著科學(xué)家可以在更大范圍內(nèi)的數(shù)值內(nèi)體現(xiàn)兩個(gè)數(shù)值的變化。借此,科學(xué)家可以對(duì)最大的星系,或是最小的粒子進(jìn)行精確計(jì)算。

但是,計(jì)算精度越高,意味著所需的計(jì)算資源、數(shù)據(jù)傳輸和內(nèi)存存儲(chǔ)就越多。其成本也會(huì)更大,同時(shí)也會(huì)消耗更多的功率。

由于并非每個(gè)工作負(fù)載都需要高精度,因此 AI 和 HPC 研究人員可以通過混合或匹配不同級(jí)別的精度的方式進(jìn)行運(yùn)算,從而使效益最大化。

NVIDIA Tensor Core GPU 支持多精度和混合精度技術(shù),能夠讓開發(fā)者優(yōu)化計(jì)算資源并加快 AI 應(yīng)用程序及其推理功能的訓(xùn)練。

2

單精度、雙精度和半精度浮點(diǎn)格式之間的區(qū)別

IEEE 浮點(diǎn)算術(shù)標(biāo)準(zhǔn)是用來衡量計(jì)算機(jī)上以二進(jìn)制所表示數(shù)字精度的通用約定。在雙精度格式中,每個(gè)數(shù)字占用64位,單精度格式占用32位,而半精度僅16位。要了解其中工作原理,我們可以拿圓周率舉例。

在傳統(tǒng)科學(xué)記數(shù)法中,圓周率表示為3.14 x100。但是計(jì)算機(jī)將這些信息以二進(jìn)制形式存儲(chǔ)為浮點(diǎn),即一系列的1和0,它們代表一個(gè)數(shù)字及其對(duì)應(yīng)的指數(shù),在這種情況下圓周率則表示為1.1001001 x 21。

在單精度32位格式中,1位用于指示數(shù)字為正數(shù)還是負(fù)數(shù)。指數(shù)保留了8位,這是因?yàn)樗鼮槎M(jìn)制,將2進(jìn)到高位。其余23位用于表示組成該數(shù)字的數(shù)字,稱為有效數(shù)字。而在雙精度下,指數(shù)保留11位,有效位數(shù)為52位,從而極大地?cái)U(kuò)展了它可以表示的數(shù)字范圍和大小。

半精度則是表示范圍更小,其指數(shù)只有5位,有效位數(shù)只有10位。圓周率在每個(gè)精度級(jí)別表現(xiàn)如下:

3

多精度和混合精度計(jì)算的差異多精度計(jì)算意味著使用能夠以不同精度進(jìn)行計(jì)算的處理器,在需要使用高精度進(jìn)行計(jì)算的部分使用雙精度,并在應(yīng)用程序的其他部分使用半精度或單精度算法。

混合精度(也稱為超精度)計(jì)算則是在單個(gè)操作中使用不同的精度級(jí)別,從而在不犧牲精度的情況下實(shí)現(xiàn)計(jì)算效率。

在混合精度中,計(jì)算從半精度值開始,以進(jìn)行快速矩陣數(shù)學(xué)運(yùn)算。但是隨著數(shù)字的計(jì)算,機(jī)器會(huì)以更高的精度存儲(chǔ)結(jié)果。

例如,如果將兩個(gè)16位矩陣相乘,則結(jié)果為32位大小。使用這種方法,在應(yīng)用程序結(jié)束計(jì)算時(shí),其累積得到結(jié)果,在準(zhǔn)確度上可與使用雙精度算法運(yùn)算得到的結(jié)果相媲美。

這項(xiàng)技術(shù)可以將傳統(tǒng)的雙精度應(yīng)用程序加速多達(dá)25倍,同時(shí)減少了運(yùn)行所需的內(nèi)存、時(shí)間和功耗。它可用于 AI 和模擬 HPC 工作負(fù)載。

隨著混合精度算法在現(xiàn)代超級(jí)計(jì)算應(yīng)用程序中的普及,HPC 專家 Jack Dongarra 提出了一個(gè)新的基準(zhǔn),即 HPL-AI,以評(píng)估超級(jí)計(jì)算機(jī)在混合精度計(jì)算上的性能。

混合精度計(jì)算主要用于現(xiàn)在很火人工智能領(lǐng)域,感興趣的讀者可以上網(wǎng)搜索更多關(guān)于混合精度計(jì)算的內(nèi)容。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3521

    瀏覽量

    93272
  • 浮點(diǎn)數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    15836
  • 單精度
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    2233

原文標(biāo)題:?jiǎn)尉?、雙精度、多精度和混合精度計(jì)算的區(qū)別是什么?

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【RV32F與RV32D】之單精度精度浮點(diǎn)數(shù)

    32 32 RV32F和RV32D的浮點(diǎn)寄存器。單精度寄存器占用了32個(gè)精度寄存器中最右邊的一。RISC-V對(duì)于
    發(fā)表于 08-29 12:24

    官方例程modbus slave rtu,浮點(diǎn)數(shù)精度不對(duì)是怎么回事?

    官方例程 modbus slave rtu, 浮點(diǎn)數(shù)精度不對(duì),對(duì)保持寄存器設(shè)置一個(gè)浮點(diǎn)數(shù),讀取到的浮點(diǎn)數(shù)結(jié)果精度只能到小數(shù)點(diǎn)后兩位,根本無(wú)法
    發(fā)表于 07-19 08:10

    請(qǐng)問如何打印浮點(diǎn)數(shù)或精度變量?

    如何打印浮點(diǎn)數(shù)或精度變量?
    發(fā)表于 07-12 08:24

    壓力傳感器精度0.5和1的區(qū)別

    精度0.5%和1%的區(qū)別,并從多個(gè)方面進(jìn)行闡述。 精度定義 精度是指測(cè)量值與真實(shí)值之間的差異程度,通常用百分比來表示。在壓力傳感器中,
    的頭像 發(fā)表于 06-19 09:46 ?1276次閱讀

    LMP2021、LMP2022單精度精度運(yùn)算放大器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《LMP2021、LMP2022單精度精度運(yùn)算放大器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-13 09:03 ?0次下載
    LMP2021、LMP2022<b class='flag-5'>單精度</b>和<b class='flag-5'>雙</b><b class='flag-5'>精度</b>運(yùn)算放大器數(shù)據(jù)表

    機(jī)床的幾何精度什么和什么時(shí)是有區(qū)別

    的幾何精度及其區(qū)別。 一、機(jī)床的幾何精度 直線度 直線度是指機(jī)床的導(dǎo)軌、主軸等部件在運(yùn)動(dòng)過程中,其軌跡的直線度。直線度的高低直接影響到機(jī)床的加工精度和加工質(zhì)量。直線度的測(cè)量方法有多種,
    的頭像 發(fā)表于 06-07 10:31 ?653次閱讀

    數(shù)控機(jī)床的精度包括什么精度和什么精度

    數(shù)控機(jī)床的精度是衡量其性能的重要指標(biāo)之一,它直接影響到加工零件的質(zhì)量和生產(chǎn)效率。數(shù)控機(jī)床的精度主要包括幾何精度和運(yùn)動(dòng)精度兩個(gè)方面。下面我們將詳細(xì)探討這兩個(gè)方面的
    的頭像 發(fā)表于 06-07 09:57 ?1201次閱讀

    一文帶你秒懂IEEE 754浮點(diǎn)數(shù)

    一、簡(jiǎn)介1、常見的浮點(diǎn)數(shù)表示方式是IEEE754標(biāo)準(zhǔn),它規(guī)定了浮點(diǎn)數(shù)的存儲(chǔ)格式和運(yùn)算規(guī)則,這個(gè)標(biāo)準(zhǔn)定義了兩種浮點(diǎn)數(shù)表示:單精度
    的頭像 發(fā)表于 03-18 08:09 ?6292次閱讀
    一文帶你秒懂IEEE 754<b class='flag-5'>浮點(diǎn)</b>數(shù)

    毫米波雷達(dá)精度浮點(diǎn)存儲(chǔ)格式分析

    本文介紹了TC3xx單片機(jī)雷達(dá)信號(hào)處理單元SPU支持的精度浮點(diǎn)格式,將其和32bit整型數(shù)格式進(jìn)行比較,分析了兩者的動(dòng)態(tài)范圍及實(shí)際處理誤差
    的頭像 發(fā)表于 02-20 08:26 ?275次閱讀
    毫米波雷達(dá)<b class='flag-5'>半</b><b class='flag-5'>精度</b><b class='flag-5'>浮點(diǎn)</b>存儲(chǔ)<b class='flag-5'>格式</b>分析

    電感多少精度算高精度

    電感作為電子電路中非常重要的電子元器件之一,我們?cè)谶x擇電感時(shí)候會(huì)考慮它的精度。電感精度其實(shí)指的是電感值的公差或者容差,這個(gè)參數(shù)對(duì)于確保電路性能的穩(wěn)定性很重要。那么,你知道電感多少精度的算高精度
    的頭像 發(fā)表于 01-23 09:21 ?427次閱讀

    單精度精度浮點(diǎn)數(shù)的區(qū)別

    單精度精度是計(jì)算機(jī)中表示浮點(diǎn)數(shù)的兩種不同的精度。在計(jì)算機(jī)中,浮點(diǎn)數(shù)用來表示帶有小數(shù)部分的實(shí)數(shù)
    的頭像 發(fā)表于 12-15 10:25 ?4183次閱讀

    單精度精度浮點(diǎn)數(shù)的區(qū)別

    在計(jì)算機(jī)科學(xué)和數(shù)值計(jì)算中,浮點(diǎn)數(shù)是一種用于表示實(shí)數(shù)的數(shù)據(jù)類型。浮點(diǎn)數(shù)有兩種精度級(jí)別:單精度精度
    的頭像 發(fā)表于 12-13 10:55 ?5259次閱讀

    滾珠螺桿的精度和使用場(chǎng)景之間的關(guān)系?

    滾珠螺桿的精度和使用場(chǎng)景之間的關(guān)系?
    的頭像 發(fā)表于 11-10 17:48 ?384次閱讀
    滾珠螺桿的<b class='flag-5'>精度</b>和使用場(chǎng)景<b class='flag-5'>之間</b>的關(guān)系?

    如何用Verilog怎樣將小數(shù)(例如0.2,-3.4之類的)轉(zhuǎn)化為單精度浮點(diǎn)數(shù)?

    用Verilog怎樣將小數(shù)(例如0.2,-3.4之類的)轉(zhuǎn)化為單精度浮點(diǎn)數(shù)?
    發(fā)表于 10-18 06:48

    MCU中精度浮點(diǎn)數(shù)是用什么格式存儲(chǔ)的?

    MCU中精度浮點(diǎn)數(shù)是用什么格式存儲(chǔ)的
    發(fā)表于 10-11 06:24