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

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

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

什么是張量處理單元(TPU)

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-04-27 09:27 ? 次閱讀

介紹

張量處理單元( Tensor Processing Unit, TPU ) 是谷歌專門為神經(jīng)網(wǎng)絡(luò)機器學(xué)習(xí)開發(fā)的人工智能加速器 專用集成電路(ASIC) ,特別是使用谷歌自己的TensorFlow軟件。谷歌于 2015 年開始在內(nèi)部使用 TPU,并于 2018 年將它們作為其云基礎(chǔ)設(shè)施的一部分并通過提供較小版本的芯片出售給第三方使用。

張量處理單元于 2016 年 5 月在Google I/O上宣布:當時該公司表示 TPU 已經(jīng)在其數(shù)據(jù)中心內(nèi)使用了一年多。該芯片專為 Google 的TensorFlow框架設(shè)計,用于神經(jīng)網(wǎng)絡(luò)等機器學(xué)習(xí)應(yīng)用。

與圖形處理單元相比,它設(shè)計用于大量低精度計算(例如低至8 位精度) ,每焦耳有更多的輸入/輸出操作,無需用于光柵化/紋理映射的硬件。根據(jù)Norman Jouppi的說法, TPU ASIC安裝在散熱器組件中,該組件可以安裝在數(shù)據(jù)中心機架內(nèi)的硬盤驅(qū)動器插槽中。不同類型的處理器適合不同類型的機器學(xué)習(xí)模型,TPU 非常適合CNN而 GPU 對一些全連接的神經(jīng)網(wǎng)絡(luò)有長處,而 CPU 對RNN有長處。

經(jīng)過幾年的發(fā)展,TPU已經(jīng)發(fā)布了四個版本,下面是其發(fā)展歷程:

1a874066-c5c2-11ec-bce3-dac502259ad0.png

詳細介紹:<【科普】什么是TPU?>

接下來介紹一些TPU項目。

tinyTPU

?

https://github.com/jofrfu/tinyTPU

1a9b6992-c5c2-11ec-bce3-dac502259ad0.png

該項目的目的是創(chuàng)建一個與谷歌的張量處理單元具有相似架構(gòu)的機器學(xué)習(xí)協(xié)處理器。該實現(xiàn)的資源可定制,可以以不同的尺寸使用以適應(yīng)每種類型的 FPGA。這允許在嵌入式系統(tǒng)物聯(lián)網(wǎng)設(shè)備中部署該協(xié)處理器,但也可以擴大規(guī)模以用于數(shù)據(jù)中心和高性能機器。AXI 接口允許以多種組合方式使用。對 Xilinx Zynq 7020 SoC 進行了評估。下面的鏈接中是使用vivado進行使用的一個DEMO:

?

https://github.com/jofrfu/tinyTPU/blob/master/getting_started.pdf

同時,該項目也是一片論文的驗證項目,論文地址:

?

https://reposit.haw-hamburg.de/bitstream/20.500.12738/8527/1/thesis.pdf

性能

使用 MNIST 數(shù)據(jù)集訓(xùn)練的樣本模型在不同大小的 MXU 上進行了評估,頻率為 177.77 MHz,理論性能高達 72.18 GOPS。然后將實際時序測量與傳統(tǒng)處理器進行比較:

177.77 MHz 的張量處理單元:

Matrix Width N 6 8 10 12 14
Instruction Count 431 326 261 216 186
Duration in us (N input vectors) 383 289 234 194 165
Duration per input vector in us 63 36 23 16 11

下面是其他處理器的對比結(jié)果:

Processor Intel Core i5-5287U at 2.9 GHz BCM2837 4x ARM Cortex-A53 at 1.2 GHz
Duration per input vector in us 62 763

Free-TPU

?

https://github.com/embedeep/Free-TPU

1abae484-c5c2-11ec-bce3-dac502259ad0.png

編譯好的BOOTbin,因為TPU和引腳沒關(guān)聯(lián),所以可以直接進行使用驗證。

?

https://github.com/embedeep/Free-TPU-OS

1acce22e-c5c2-11ec-bce3-dac502259ad0.png

描述

Free TPU是用于深度學(xué)習(xí) EDGE 推理的商業(yè) TPU 設(shè)計的免費版本,可以部署在任何 FPGA 設(shè)備上,包括 Xilinx Zynq-7020 或 Kintex7-160T(這兩個都是生產(chǎn)的好選擇)。實際上,不僅是 TPU 邏輯設(shè)計, Free TPU還包括支持所有 caffe 層的 EEP 加速框架,可以在任何 CPU 上運行(如 Zynq-7020 的 ARM A9 或 INTEL/AMD)。TPU 和 CPU 在深度學(xué)習(xí)推理框架的計劃下相互協(xié)作(任何交替順序)。

系統(tǒng)結(jié)構(gòu)

1adf7498-c5c2-11ec-bce3-dac502259ad0.png

對比

1b007d0a-c5c2-11ec-bce3-dac502259ad0.png

1b27e32c-c5c2-11ec-bce3-dac502259ad0.png

在用戶看來,F(xiàn)ree-TPU和EEP-TPU功能相同,但推理時間不同。

這是一個極其完整的項目,關(guān)于怎么運行,怎么調(diào)用都有很詳細的步驟,這里就不再贅述了,更多詳情,請訪問:

?

https://www.embedeep.com

SimpleTPU

?

https://github.com/cea-wind/SimpleTPU

1b4946a2-c5c2-11ec-bce3-dac502259ad0.png

張量處理單元旨在加速矩陣乘法,特別是對于多層感知器和卷積神經(jīng)網(wǎng)絡(luò)。

此實現(xiàn)主要遵循 Google TPU Version 1,該架構(gòu)在

?

https://arxiv.org/ftp/arxiv/papers/1704/1704.04760.pdf

中有介紹。

主要特點

Simple TPU 的主要特性包括

Int8 乘法和 Int32 累加器

基于 VLIW 的并行指令

基于向量架構(gòu)的數(shù)據(jù)并行

以下是 Simple TPU 可以支持的一些操作。

1b7133ce-c5c2-11ec-bce3-dac502259ad0.png

資源占用情況

1b8fa2b4-c5c2-11ec-bce3-dac502259ad0.png

雖然該工程比較完整,后續(xù)也有DEMO演示,但是該工程使用HLS制作的,詳細信息可以查看下面的網(wǎng)址

?

https://www.cnblogs.com/sea-wind/p/10993958.html

tiny-tpu

?

https://github.com/cameronshinn/tiny-tpu

谷歌的TPU架構(gòu):

1bab16d4-c5c2-11ec-bce3-dac502259ad0.jpg

1bc0e216-c5c2-11ec-bce3-dac502259ad0.png

Tiny TPU是基于 FPGA 的 Google張量處理單元的小規(guī)模實現(xiàn)。該項目的目標是了解加速器設(shè)計從硬件到軟件的端到端技術(shù),同時破譯谷歌專有技術(shù)的低層次復(fù)雜性。在此過程中,我們探索了小規(guī)模、低功耗 TPU 的可能性。

該項目在 Quartus 15.0 上綜合并編程Altera DE1-SoC FPGA 上。

1bde5094-c5c2-11ec-bce3-dac502259ad0.png

更多詳細信息:

?

https://github.com/cameronshinn/tiny-tpu/blob/master/docs/report/report.pdf

TPU-Tensor-Processing-Unit

?

https://github.com/leo47007/TPU-Tensor-Processing-Unit

介紹

在有兩個矩陣需要做矩陣乘法的場景下,矩陣A(選擇權(quán)重矩陣)與矩陣B(選擇矩陣)相,每一個一個都是 32x32。最后他們開始做每個矩陣的乘法,每個矩陣的因素將首先轉(zhuǎn)換成一個順序輸入 TPU 中,輸入其特定的矩陣,然后再將這些單元最多向連接的方向輸入。在下一個周期中,每個單元將其權(quán)重和數(shù)據(jù)方向賦予下一個格。從左到右。

1bf48576-c5c2-11ec-bce3-dac502259ad0.png

因為這個項目有中文的詳細介紹,所以就不過多贅述了。

?

https://zhuanlan.zhihu.com/p/26522315

Systolic-array-implementation-in-RTL-for-TPU

?

https://github.com/abdelazeem201/Systolic-array-implementation-in-RTL-for-TPU

1c176726-c5c2-11ec-bce3-dac502259ad0.png

如下圖所示,在有兩個矩陣需要做矩陣乘法的場景下,矩陣A(命名權(quán)重矩陣)與矩陣B(命名數(shù)據(jù)矩陣)相乘,每個矩陣為8x8。一旦他們開始做矩陣乘法,兩個矩陣的這些系數(shù)將首先轉(zhuǎn)換成一個順序輸入到 TPU 中,然后輸入到每個特定的隊列中。然后這些隊列將最多向其連接的單元輸出 8 個數(shù)據(jù),這些單元將根據(jù)它接收到的權(quán)重和數(shù)據(jù)進行乘法和加法。并且在下一個周期中,每個單元格將其權(quán)重和數(shù)據(jù)轉(zhuǎn)發(fā)給下一個單元格。權(quán)重從上到下,數(shù)據(jù)從左到右。

1bf48576-c5c2-11ec-bce3-dac502259ad0.png

該項目雖然完成了相關(guān)的目的,但是只是完成了相關(guān)工作,實際使用時需要進行一些優(yōu)化。

1c41695e-c5c2-11ec-bce3-dac502259ad0.png

super_small_toy_tpu

?

https://github.com/dldldlfma/super_small_toy_tpu

1c7098be-c5c2-11ec-bce3-dac502259ad0.png

如果說上面幾個TPU比較復(fù)雜,那么這個就可以用“精簡”來形容了。

整個代碼非常精簡,適合入門想研究TPU的人。

1c8f61cc-c5c2-11ec-bce3-dac502259ad0.png

AIC2021-TPU

?

https://github.com/charley871103/TPU

?

https://github.com/Oscarkai9139/AIC2021-TPU

?

https://github.com/hsiehong/tpu

1ca9c4b8-c5c2-11ec-bce3-dac502259ad0.png

這個項目是AIC2021-TPU,類似的項目有很多,都是理論研究的項目,和上面的項目一樣都是非常非常適合入門研究的人員,里面的理論都是極其詳細的。

1cd94e72-c5c2-11ec-bce3-dac502259ad0.png

systolic-array

?

https://github.com/Dazhuzhu-github/systolic-array

verilog實現(xiàn)TPU中的脈動陣列計算卷積的module

data為實驗數(shù)據(jù)

source為源碼

testbench 測試各個模塊用的testbench

data-preprocessing 原本是要寫將卷積操作用python預(yù)先imtocol操作的,但后來直接使用matlab生成數(shù)據(jù)進行測試了

tpu_v2

?

https://github.com/UT-LCA/tpu_v2

1cf57534-c5c2-11ec-bce3-dac502259ad0.png

項目沒有多余的介紹,整個項目是基于Altera-DE3設(shè)計,EDA工具是Quartus II。

1d09d60a-c5c2-11ec-bce3-dac502259ad0.png

google-coral-baseboard

?

https://github.com/antmicro/google-coral-baseboard

1d28fe7c-c5c2-11ec-bce3-dac502259ad0.png

NXP i.MX8X 和 Google 的 Edge TPU ML 推理 ASIC(也可作為Coral Edge TPU 開發(fā)板的一部分)的基板的開放硬件設(shè)計文件。該板提供標準 I/O 接口,并允許用戶通過統(tǒng)一的柔性扁平電纜 (FFC) 連接器與兩個兼容 MIPI CSI-2 的視頻設(shè)備連接。

1d63cbb0-c5c2-11ec-bce3-dac502259ad0.png

PCB 項目文件是在 Altium Designer 14.1 中準備的。

1d76fe74-c5c2-11ec-bce3-dac502259ad0.png

該項目是一個硬件方案,谷歌Coral Edge TPU的硬件驗證方案。

neural-engine

?

https://github.com/hollance/neural-engine

大多數(shù)新的 iPhone 和 iPad 都有神經(jīng)引擎,這是一種特殊的處理器,可以讓機器學(xué)習(xí)模型變得非常快,但對于這種處理器的實際工作原理,公眾知之甚少。

Apple 神經(jīng)引擎(或 ANE)是NPU的一種,代表神經(jīng)處理單元。它就像 GPU,但 NPU 不是加速圖形,而是加速卷積和矩陣乘法等神經(jīng)網(wǎng)絡(luò)操作。

ANE 并不是唯一的 NPU——除了 Apple 之外,許多公司都在開發(fā)自己的 AI 加速器芯片。除了神經(jīng)引擎,最著名的 NPU 是谷歌的 TPU(或 Tensor Processing Unit)。

這個項目并不是一個實現(xiàn)TPU的項目,但是是一個關(guān)于Apple 神經(jīng)引擎(或 ANE)介紹及相關(guān)文檔的集合的項目。

總結(jié)

今天介紹了幾個TPU的項目,因為在國內(nèi)TPU可能很多人都沒有聽說過,所以接下來我會出幾篇文章介紹一下。同時這些項目前面幾個非常完整,完全可以優(yōu)化后進行商業(yè)推廣(注意開源協(xié)議),最后幾個項目是一些補充的知識,想要了解相關(guān)的知識的朋友可以查看一下。

最后,還是感謝各個大佬開源的項目,讓我們受益匪淺。后面有什么感興趣方面的項目,大家可以在后臺留言或者加微信留言,今天就到這,我是爆肝的碎碎思,期待下期文章與你相見。

審核編輯 :李倩

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598969
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109719
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131846

原文標題:優(yōu)秀的 Verilog/FPGA開源項目介紹(二十)- 張量處理單元(TPU)

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    OpenAI與博通洽談合作!定制化ASIC芯片走向臺前,英偉達GPU迎來“勁敵”?

    設(shè)計公司就開發(fā)新芯片進行洽談,以減輕對英偉達的依賴并加強供應(yīng)鏈。 ? 此外,據(jù)稱OpenAI還聘請了曾參與谷歌張量處理單元TPU)開發(fā)和生產(chǎn)的谷歌前員工,以幫助其進行AI芯片的設(shè)計工
    的頭像 發(fā)表于 07-20 00:02 ?4512次閱讀
    OpenAI與博通洽談合作!定制化ASIC芯片走向臺前,英偉達GPU迎來“勁敵”?

    TPU v1到Trillium TPU,蘋果等科技公司使用谷歌TPU進行AI計算

    ,在訓(xùn)練尖端人工智能方面,大型科技公司正在尋找英偉達以外的替代品。 ? 不斷迭代的谷歌TPU 芯片 ? 隨著機器學(xué)習(xí)算法,特別是深度學(xué)習(xí)算法在各個領(lǐng)域的廣泛應(yīng)用,對于高效、低功耗的AI計算硬件需求日益增長。傳統(tǒng)的CPU和GPU在處理這些算法時存在效率較低的問
    的頭像 發(fā)表于 07-31 01:08 ?3060次閱讀

    谷歌將推出第六代數(shù)據(jù)中心AI芯片Trillium TPU

    在今日舉行的I/O 2024開發(fā)者大會上,谷歌公司震撼發(fā)布了其第六代數(shù)據(jù)中心AI芯片——Trillium Tensor處理單元TPU)。據(jù)谷歌首席執(zhí)行官皮查伊透露,這款新型TPU預(yù)
    的頭像 發(fā)表于 05-15 11:18 ?526次閱讀

    谷歌自主研發(fā):Google Axion處理器亮相

    谷歌 Axion 處理器不僅是谷歌對定制芯片投資的最新成果,也是眾多定制芯片中的一環(huán)。自2015年以來,谷歌已經(jīng)陸續(xù)推出了五代張量處理單元TPU
    發(fā)表于 04-20 09:52 ?340次閱讀

    三星電子最新消息 成立AI芯片開發(fā)團隊 出售所持ASML剩余股份

    團隊的領(lǐng)導(dǎo)者是前谷歌張量處理單元TPU)平臺的初始設(shè)計師之一Woo Dong-hyuk。 三星電子已出售所持 158萬股 ASML剩余股份,ASML股份估值約65億元 據(jù)韓聯(lián)社報道的
    的頭像 發(fā)表于 02-22 18:34 ?1162次閱讀

    三星電子在硅谷成立AI芯片開發(fā)團隊

    三星電子近日在硅谷成立了一支全新的AI芯片開發(fā)團隊,以加速在人工智能領(lǐng)域的布局。這支團隊由前谷歌研究員Woo Dong-hyuk領(lǐng)導(dǎo),他在谷歌期間曾是設(shè)計張量處理單元TPU)平臺的核
    的頭像 發(fā)表于 02-22 14:43 ?511次閱讀

    tpu材料的用途和特點

    TPU材料,即熱塑性聚氨酯(Thermoplastic Polyurethane),是一種聚合物材料,具有廣泛的應(yīng)用領(lǐng)域和獨特的特點。 TPU材料的主要用途如下: 鞋類行業(yè):TPU材料常用于鞋類
    的頭像 發(fā)表于 01-16 10:17 ?2506次閱讀

    TPU是什么材料做的

    TPU(Thermoplastic Polyurethane)是熱塑性聚氨酯的簡稱,屬于一種高強度、高彈性、高耐磨的特種塑料材料。它是由聚醚或聚酯兩元醇與三元異氰酸酯或四元稀土異氰酸酯通過共聚反應(yīng)
    的頭像 發(fā)表于 01-12 13:40 ?2342次閱讀

    TPU-MLIR開發(fā)環(huán)境配置時出現(xiàn)的各種問題求解

    按照 TPU-MLIR 開發(fā)指南進行環(huán)境配置: 2.1. 代碼下載? 代碼路徑: https://github.com/sophgo/tpu-mlir 克隆該代碼后, 需要在Docker中編譯
    發(fā)表于 01-10 08:02

    谷歌發(fā)布多模態(tài)Gemini大模型及新一代TPU系統(tǒng)Cloud TPU v5p

    谷歌亦發(fā)布新一代TPU 系統(tǒng)——Cloud TPU v5p,以幫助訓(xùn)練尖端的 AI 模型。目
    的頭像 發(fā)表于 12-12 10:50 ?1180次閱讀
    谷歌發(fā)布多模態(tài)Gemini大模型及新一代<b class='flag-5'>TPU</b>系統(tǒng)Cloud <b class='flag-5'>TPU</b> v5p

    成都匯陽投資關(guān)于谷歌攜 Gemini 王者歸來,AI 算力和應(yīng)用值得期待

    【Gemini 大模型主打多模態(tài),性能對標GPT-4】 當?shù)貢r間12月6日, 谷歌公司宣布推出其規(guī)模最大、功能最強的多模態(tài)大模型 Gemini, 其最強大的 TPU (張量處理單元)系
    的頭像 發(fā)表于 12-11 14:40 ?803次閱讀
    成都匯陽投資關(guān)于谷歌攜 Gemini 王者歸來,AI 算力和應(yīng)用值得期待

    瞬變對AI加速卡供電的影響

    圖形處理單元(GPU)、張量處理單元(TPU)和其他類型的專用集成電路(ASIC)通過提供并行
    的頭像 發(fā)表于 12-01 18:10 ?330次閱讀
    瞬變對AI加速卡供電的影響

    瞬變對AI加速卡供電的影響

    圖形處理單元(GPU)、張量處理單元TPU)和其他類型的專用集成電路(ASIC)通過提供并行
    的頭像 發(fā)表于 11-16 17:23 ?821次閱讀
    瞬變對AI加速卡供電的影響

    Google的TPU芯片的發(fā)展歷史和硬件架構(gòu)

    Google在高性能處理器與AI芯片主要有兩個系列:1)針對服務(wù)器端AI模型訓(xùn)練和推理的TPU系列,主要用于Goggle云計算和數(shù)據(jù)中心;2)針對手機端AI模型推理的Tensor系列,主要用于Pixel智能手機。
    發(fā)表于 10-18 10:02 ?2677次閱讀
    Google的<b class='flag-5'>TPU</b>芯片的發(fā)展歷史和硬件架構(gòu)

    GPU的張量核心: 深度學(xué)習(xí)的秘密武器

    GPU最初是為圖形渲染而設(shè)計的,但是由于其卓越的并行計算能力,它們很快被引入深度學(xué)習(xí)中。深度學(xué)習(xí)的迅速發(fā)展離不開計算機圖形處理單元(GPU)的支持,而GPU中的張量核心則被譽為深度學(xué)習(xí)的秘密武器
    的頭像 發(fā)表于 09-26 08:29 ?762次閱讀
    GPU的<b class='flag-5'>張量</b>核心: 深度學(xué)習(xí)的秘密武器