91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arm宣布將會采用Bfloat16數據類型,這種數據類型會成為主流嗎?

倩倩 ? 來源:lq ? 作者:雷鋒網 ? 2019-09-20 10:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為了提升AI性能,AI芯片公司從多個方面進行優化,包括采用更先進的工藝制程、進行架構創新,數據類型的支持也是其中之一。如今,為了加速機器學習性能,Arm宣布將會采用Bfloat16數據類型,這種數據類型會成為主流嗎?

Arm Holdings宣布其ArmV8-A架構的下一版本將支持bfloat16,這種浮點格式越來越多地用于加速機器學習應用。如今,谷歌、英特爾和少數初創公司的芯片都選擇了支持bfloat16。

Bfloat16,又名16位腦浮點(brain floating point),由Google發明,最初在其第三代Tensor處理單元(TPU)中支持。英特爾認可以將bfloat16整合到其未來的“Cooper Lake”Xeon SP處理器,以及即將推出的“Spring Crest”神經網絡處理器中。Wave Computing、Habana Labs和Flex Logix也采用了定制的AI處理器。

bfloat16的主要思想是提供16位浮點格式,其動態范圍與標準IEEE-FP32相同,但精度較低。相當于指數區和FP32保持了相同的8位,并將FP32分數字段的小數區縮減到到了7位。

根據Arm的ISA架構師和Fellow Nigel Stephens的說法,大多數情況下,用戶在進行神經網絡計算時,bfloat16格式與FP32一樣準確,但是以一半的位數完成任務。因此,與32位相比,采用bfloat16吞吐量可以翻倍,內存需求可以減半。在大多數情況下,blfloat16可以成為這些機器學習算法中FP32的“插入式”替代品。“幸運的是,神經網絡由于其統計性質,只要數據類型具有足夠的范圍和精度,就可以很好地適應少量噪聲,” Stephens告訴我們。

在Arm,附加支持將適用于ArmV8-A下支持的所有浮點指令集,即SVE(可擴展矢量擴展),AArch64 Neon(64位SIMD)和AArch32 Neon(32位SIMD))。附加支持旨在用于基于Arm的終端和服務器的機器學習推理和訓練。雖然Arm服務器的規模仍然很小,但其終端市場規模巨大,這意味著未來的手持式和物聯網設備將很快能夠利用更緊湊的數字格式。

Stephens 8月份撰寫的一篇博客中寫到,將增加四條新指令來支持bfoat16值的乘法運算,這是用于訓練和推理神經網絡的最常用計算。據他介紹,在大多數情況下,應用程序開發人員不會在底層代碼中添加這些指令,因為這些支持很可能由Arm自己的機器學習庫提供。對于那些對細節感興趣的人來說,這四條新指令如下:

BFDOT 是BF16元素的[1×2]×[2×1]點積,累積到SIMD結果中的每個IEEE-FP32元素中。

BFMMLA, 包括兩個有效地 BFDOT 操作,執行BF16元素的[2×4]×[4×2]矩陣乘法,累積到SIMD結果內的每個[2×2]矩陣的IEEE-FP32元素中。

BFMLAL是偶數或奇數BF16元素的簡單乘積,累積到SIMD結果中的每個IEEE-FP32元素中。

BFCVT,將IEEE-FP32元素或標量值轉換為BF16格式。

在SVE中包含對bfloat16的支持特別有趣,因為這些向量指令是專門為高性能計算開發的。截至目前,唯一已知的實現SVE是富士通的A64FX芯片,這款處理器將為即將推出的Post-K超級計算機提供動力,該超級計算機現在名為Fugaku。但這還為時過早,無法獲得bfloat16的好處,但后來的那些,就像為歐洲處理器計劃(EPI)開發的Arm處理器肯定會包含它。

Stephens說,鑒于傳統HPC用戶對機器學習的興趣增加以及他們的高性能系統對訓練大型神經網絡的適應性,在SVE中包含bfloat16似乎是一種自然的補充。他還指出,有一些HPC研究人員正在調查使用新的16位格式來加速傳統科學應用的混合精度計算。

“再次強調,bfloat16的優勢在于它具有與FP32相同的動態范圍,這使得使用FP 32的代碼,在轉換的早期階段使用bfloat16更容易。”他解釋說。

并且由于SVE可以針對不同的向量長度,實現從128位到2048位,理論上bfloat16吞吐量應該相應于128位Neon實現進行擴展。但實際上,Stephens說吞吐量還取決于具體的硬件實現選擇,例如SVE執行單元的數量與給定實現的Neon執行單元的數量。

然而,當轉換為具有較小范圍的數據類型(例如INT8和FP16)時,基于blfoat16的網絡的易部署性與其最終大小和性能之間存在折衷。Stephens表示,使用blfoat16進行推理可能對那些無法承擔額外費用和重新訓練網絡的開發人員來說是有吸引力的,因為只有一種類型可用于訓練和推理,因此可以使用這些較小的類型(可能需要幾個月)。

另外,需要注意的是bfloat16類型沒有標準,因此無法保證相同計算的結果在不同的處理器上完全相同。但正如Stephens所指出的那樣,FP32關于如何對點積進行排序(IEEE保持開放排序),甚至存在可變性。無論如何,四舍五入的噪音幾乎總是可以接受的,因為正如斯蒂芬斯所說,機器學習是一種統計游戲。

Arm對bfloat16的支持,使得GPU(目前廣泛使用的機器學習引擎)包括Nvidia和AMD,成為唯一仍然不提供該格式原生支持的機器學習引擎。但作為現在使用最廣泛的處理器架構,GPU支持bfloat16幾乎是不可避免的,包括英特爾即將推出的X e GPU加速器。IEEE是否曾接受bfloat16并提供了一些標準?這還有待觀察。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4814

    瀏覽量

    103708
  • 機器學習
    +關注

    關注

    66

    文章

    8505

    瀏覽量

    134669
  • AI芯片
    +關注

    關注

    17

    文章

    1983

    瀏覽量

    35933
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    IEC101協議可以傳輸什么類型數據

    IEC101協議作為電力系統遠動通信的核心標準,其核心能力在于支持多種類型數據的傳輸,滿足調度端與場站端(如變電站、發電廠)的實時監控、控制及狀態感知需求。以下從數據類型、傳輸模式及典型應用場景三個
    的頭像 發表于 05-21 11:37 ?256次閱讀

    labview數據類型與PLC 數據類型之間的轉換(來自于寫入浮點數到匯川 PLC中的數據轉換關鍵的修改)

    為32位無符號整型U32 2、將U32拆分為兩個U16,分高低位寫入PLC 3、在PLC中,將低位寄存器設置為浮點數數據類型 4、結果:PLC中一直無法正確轉換。 原因及解決方法: 1、labview
    發表于 02-24 19:01

    請問ADS1299使用Test Signals ,獲取到的數據類型是什么?

    請問ADS1299使用Test Signals ,獲取到的數據類型是什么?使用什么公式可以還原?據了解,外部信號轉換完成后是浮點型的,但是沒有看到這塊的說明。
    發表于 01-06 07:14

    西門子博途新數據類型之:SINT(8位整數)

    數據類型 SINT (Short INT) 的操作數長度為 8 位,由以下兩部分組成:一部分是符號,另一部分是數值。位 0 到 6 的信號狀態表示數值。位 7 的信號狀態表示符號。符號可以是“0”(正信號狀態),或“1”(負信號狀態)。
    的頭像 發表于 11-09 09:52 ?4655次閱讀
    西門子博途新<b class='flag-5'>數據類型</b>之:SINT(8位整數)

    AIC23采集到的數據是應該用什么數據類型來接收?int還是unsigned int?

    )){};data = MCBSP_read16(hMcbsp);MCBSP_write16(hMcbsp,data); 也就是說,data應該是什么數據類型?int還是unsigned int。這個數字的物理意義
    發表于 10-18 06:56

    鴻蒙原生應用元服務開發-倉頡基礎數據類型整數類型

    ’\\\\u{78}’ 這種轉義形式表示類型為 UInt8,16 進制大小為 0x78 或 10 進制大小為 120 的字面值。需要注意的是,\\\\u 內部最多有兩位 16 進制數,
    發表于 09-13 14:55

    鴻蒙原生應用元服務開發-倉頡基礎數據類型元組類型

    元組(Tuple)可以將多個不同的類型組合在一起,成為一個新的類型。元組類型使用 (T1, T2, …, TN) 表示,其中 T1 到 TN 可以是任意
    發表于 09-12 11:02

    鴻蒙原生應用元服務開發-倉頡基礎數據類型浮點類型

    浮點類型包括 Float16、 Float32 和 Float64,分別用于表示編碼長度為 16-bit、 32-bit 和 64-bit 的浮點數(帶小數部分的數字,如 3.14159、8.24
    發表于 09-10 10:22

    鴻蒙原生應用元服務開發-倉頡基礎數據類型Unit與Nothing類型

    一、Unit 類型 對于那些只關心副作用而不關心值的表達式,它們的類型是Unit。例如,print 函數、賦值表達式、復合賦值表達式、自增和自減表達式、循環表達式,它們的類型都是 Unit
    發表于 09-06 15:43

    labview數據類型的取值范圍是多少

    LabVIEW的數據類型豐富多樣,涵蓋了整數、小數(浮點數)、復數等多種類型,每種類型都有其特定的取值范圍。以下是對LabVIEW中常見數據類型取值范圍的說明: 整數
    的頭像 發表于 09-04 17:33 ?2648次閱讀

    常見的遙感數據類型有哪些

    遙感技術是一種通過遙感器在遠離目標的位置獲取目標地物的電磁波信息,并進行分析的技術。遙感數據類型繁多,涵蓋了從可見光到紅外、微波等多個波段,以及不同的數據格式和分辨率。 光學遙感數據 : 全色影像
    的頭像 發表于 09-04 14:30 ?3699次閱讀

    人體紅外傳感器的數據類型及工作原理

    人體紅外傳感器是一種利用紅外技術檢測人體活動和位置的傳感器。它廣泛應用于安防、智能家居、醫療健康等領域。 人體紅外傳感器的數據類型 人體紅外傳感器的數據主要包括以下幾種類型: 1.1 溫度數據
    的頭像 發表于 08-20 09:18 ?2342次閱讀

    技術干貨驛站 ▏深入理解C語言:基本數據類型和變量

    在C語言中,數據類型和變量是編程的基礎,也是理解更復雜概念的關鍵。數據類型決定了變量的內存分配、存儲范圍和操作方式,而變量則是存儲數據的容器。本篇文章將從基本數據類型和變量兩個方面,帶
    的頭像 發表于 07-26 17:53 ?2758次閱讀
    技術干貨驛站 ▏深入理解C語言:基本<b class='flag-5'>數據類型</b>和變量

    如何完成編輯配置文件來采集數據

    : \'°F\'expression: values[\'Bit.00001\']desc: config-bit-00001## 這里定義了數據在平臺上的如何顯示。此處的tpye為數據以何種數據類型
    發表于 07-26 06:50

    IG網關如何讀取西門子smart200PLC寄存器類型V、VW 的數據

    1、添加設備,PLC協議選擇ISO-on-TCP,設置IP地址和端口102,模式選擇TSAP。客戶端TSAP:02.00,服務器TSAP:02.01 2、添加變量,寄存器類型選擇V,填寫地址,選擇數據類型。 3、成功讀取寄存器V5000的
    發表于 07-25 07:12
    主站蜘蛛池模板: 亚洲视频久久 | 黄色免费看网站 | 欧美一欧美一区二三区性 | 同性同男小说肉黄 | 亚洲福利片 | 久久精品第一页 | 激情综合在线 | 精品女视频在线观看免费 | 性欧美另类| 三级黄色在线 | 在线五月婷婷 | 国产日本久久久久久久久婷婷 | 亚洲国内精品久久 | 成人久久久久久 | 性夜黄a爽影免费看 | 一色桃子juy774在线播放 | 国产黄色大片又色又爽 | 中文字幕在线观看一区二区 | 91插插视频 | 日本中文字幕在线播放 | 美女黄页黄频 | 欧美一区二区三区不卡免费观看 | 成人午夜大片免费7777 | 色性综合| 午夜欧美精品 | 国产普通话一二三道 | 韩国三级hd中文字幕好大 | 色播久久| 天天爱天天做色综合 | 色日韩在线| 欲色影视| 丁香婷婷影院 | 欧美午夜色视频国产精品 | 国产精品三级在线 | 在线观看视频免费入口 | 就去干综合 | 国产深夜福利在线观看网站 | 午夜在线看片 | 8x8x极品国产在线 | 四虎影院台湾辣妹 | 中日韩在线视频 |