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

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

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

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

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

介紹

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

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

與圖形處理單元相比,它設計用于大量低精度計算(例如低至8 位精度) ,每焦耳有更多的輸入/輸出操作,無需用于光柵化/紋理映射的硬件。根據(jù)Norman Jouppi的說法, TPU ASIC安裝在散熱器組件中,該組件可以安裝在數(shù)據(jù)中心機架內(nèi)的硬盤驅動器插槽中。不同類型的處理器適合不同類型的機器學習模型,TPU 非常適合CNN而 GPU 對一些全連接的神經(jīng)網(wǎng)絡有長處,而 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)建一個與谷歌的張量處理單元具有相似架構的機器學習協(xié)處理器。該實現(xiàn)的資源可定制,可以以不同的尺寸使用以適應每種類型的 FPGA。這允許在嵌入式系統(tǒng)物聯(lián)網(wǎng)設備中部署該協(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ù)集訓練的樣本模型在不同大小的 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

下面是其他處理器的對比結果:

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和引腳沒關聯(lián),所以可以直接進行使用驗證。

?

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

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

描述

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

系統(tǒng)結構

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功能相同,但推理時間不同。

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

?

https://www.embedeep.com

SimpleTPU

?

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

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

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

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

?

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

中有介紹。

主要特點

Simple TPU 的主要特性包括

Int8 乘法和 Int32 累加器

基于 VLIW 的并行指令

基于向量架構的數(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架構:

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

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

Tiny TPU是基于 FPGA 的 Google張量處理單元的小規(guī)模實現(xiàn)。該項目的目標是了解加速器設計從硬件到軟件的端到端技術,同時破譯谷歌專有技術的低層次復雜性。在此過程中,我們探索了小規(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(選擇權重矩陣)與矩陣B(選擇矩陣)相,每一個一個都是 32x32。最后他們開始做每個矩陣的乘法,每個矩陣的因素將首先轉換成一個順序輸入 TPU 中,輸入其特定的矩陣,然后再將這些單元最多向連接的方向輸入。在下一個周期中,每個單元將其權重和數(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(命名權重矩陣)與矩陣B(命名數(shù)據(jù)矩陣)相乘,每個矩陣為8x8。一旦他們開始做矩陣乘法,兩個矩陣的這些系數(shù)將首先轉換成一個順序輸入到 TPU 中,然后輸入到每個特定的隊列中。然后這些隊列將最多向其連接的單元輸出 8 個數(shù)據(jù),這些單元將根據(jù)它接收到的權重和數(shù)據(jù)進行乘法和加法。并且在下一個周期中,每個單元格將其權重和數(shù)據(jù)轉發(fā)給下一個單元格。權重從上到下,數(shù)據(jù)從左到右。

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

該項目雖然完成了相關的目的,但是只是完成了相關工作,實際使用時需要進行一些優(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比較復雜,那么這個就可以用“精簡”來形容了。

整個代碼非常精簡,適合入門想研究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預先imtocol操作的,但后來直接使用matlab生成數(shù)據(jù)進行測試了

tpu_v2

?

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

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

項目沒有多余的介紹,整個項目是基于Altera-DE3設計,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ā)板的一部分)的基板的開放硬件設計文件。該板提供標準 I/O 接口,并允許用戶通過統(tǒng)一的柔性扁平電纜 (FFC) 連接器與兩個兼容 MIPI CSI-2 的視頻設備連接。

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)引擎,這是一種特殊的處理器,可以讓機器學習模型變得非常快,但對于這種處理器的實際工作原理,公眾知之甚少。

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

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

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

總結

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

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

審核編輯 :李倩

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

    關注

    1630

    文章

    21777

    瀏覽量

    604733
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110195
  • 機器學習
    +關注

    關注

    66

    文章

    8428

    瀏覽量

    132850

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

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    光纜用tpu外護套用在哪些型號光纜上

    光纜用TPU(熱塑性聚氨酯)外護套因其耐磨、抗拉、柔性好以及優(yōu)良的防潮和阻燃性能,被廣泛應用于多種型號的光纜上,特別是需要較高機械保護和惡劣環(huán)境適應性的光纜。以下是一些可能使用TPU外護套的光纜
    的頭像 發(fā)表于 01-10 10:05 ?89次閱讀

    半導體所在光學張量處理領域取得新進展

    ,面對龐大的張量計算需求,傳統(tǒng)的存儲和處理分立的電子計算硬件面臨計算延遲大、功耗高等問題,從而成為了制約人工智能領域快速進步的一大瓶頸。 光計算作為一種新興的計算技術,具有大帶寬、低延遲、低功耗等獨特優(yōu)勢,
    的頭像 發(fā)表于 01-08 11:38 ?98次閱讀

    RK3568國產(chǎn)處理器 + TensorFlow框架的張量創(chuàng)建實驗案例分享

    一、實驗目的 本節(jié)視頻的目的是了解張量定義、了解張量的表示形式、并學習基于TensorFlow框架的張量創(chuàng)建方法。 二、實驗原理. 張量定義 1、
    發(fā)表于 12-03 14:43

    《算力芯片 高性能 CPUGPUNPU 微架構分析》第3篇閱讀心得:GPU革命:從圖形引擎到AI加速器的蛻變

    昇騰采用達芬奇架構,在AI Core中集成了標量/向量/張量處理單元。我注意到書中對TPU v4光學芯片互聯(lián)的分析特別深入,這種創(chuàng)新或將重塑未來AI集群的架構范式。中國古語云\"大道至
    發(fā)表于 11-24 17:12

    pcie在深度學習中的應用

    深度學習模型通常需要大量的數(shù)據(jù)和強大的計算能力來訓練。傳統(tǒng)的CPU計算資源有限,難以滿足深度學習的需求。因此,GPU(圖形處理單元)和TPU張量
    的頭像 發(fā)表于 11-13 10:39 ?462次閱讀

    處理器的執(zhí)行單元是什么

    處理器的執(zhí)行單元(Execution Unit,簡稱EU)是微處理器中負責執(zhí)行指令的核心部分,它集成了多種功能單元,共同協(xié)作完成算術運算、邏輯運算以及指令的譯碼和執(zhí)行等任務。
    的頭像 發(fā)表于 10-05 15:19 ?514次閱讀

    使用邏輯和轉換優(yōu)化數(shù)字駕駛艙處理單元

    電子發(fā)燒友網(wǎng)站提供《使用邏輯和轉換優(yōu)化數(shù)字駕駛艙處理單元.pdf》資料免費下載
    發(fā)表于 09-05 11:08 ?0次下載
    使用邏輯和轉換優(yōu)化數(shù)字駕駛艙<b class='flag-5'>處理</b><b class='flag-5'>單元</b>

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

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

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

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

    谷歌發(fā)布第六代數(shù)據(jù)中心AI芯片Tensor處理單元Trilliu?

    谷歌CEO桑達爾·皮查伊表示,“谷歌自創(chuàng)立以來,始終引領GPU技術發(fā)展?!彼M一步指出,新款TPU的計算性能較第五代提升4.7倍,主要得益于擴大了芯片的矩陣乘法單元(MXU)以及提高了整體時鐘速度。
    的頭像 發(fā)表于 05-15 10:22 ?526次閱讀

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

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

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

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

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

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

    如何高效處理LMEM中的數(shù)據(jù)?這篇文章帶你學會!

    WeightReorder是TPU-MLIR的一個pass(參考TPU-MLIR編譯流程圖),其完成了對部分常量數(shù)據(jù)的Layout變化和合并。本文介紹其中ConvlotionKernel
    的頭像 發(fā)表于 01-19 08:33 ?889次閱讀
    如何高效<b class='flag-5'>處理</b>LMEM中的數(shù)據(jù)?這篇文章帶你學會!