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

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

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

TPU內(nèi)存(二)

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-18 11:29 ? 次閱讀

我們知道,TPU中的數(shù)據(jù)結(jié)構(gòu)是張量,可以看做是一個(gè)四維數(shù)組,形狀為(N,C,H,W)。

要描述一個(gè)張量在算能的TPU上是如何排列的,我們首先要知道一個(gè)概念。 那是Stride。

它用于衡量同一 NPU 中張量的兩個(gè)元素之間的距離。

wKgZomTeydeACV1hAAGcNUSifAI877.jpg

例如,W_Stride 表示張量 n,c,h,w 和 n,c,h,w+1 之間有多少個(gè)元素

而H_stride表示從n,c,h,w到n,c,h+1,w我們需要經(jīng)過的元素個(gè)數(shù)

同樣,我們可以得到C_stride和N_stride在Global memory上的含義。

但是對(duì)于local memory,我們可以看到是有所不同的,C_stride指的是從n,c,h,w到n,c+X,h,w的元素個(gè)數(shù),其中X表示 NPU 的數(shù)量。

wKgaomTeydmAO7c4AAKvIOJajIg635.jpg

而在N_stride中我們還需要考慮我們開始存儲(chǔ)數(shù)據(jù)的local memory的索引。

稍后我將進(jìn)一步解釋這一點(diǎn)。

有了tensor的shape和stride,我們基本上就可以得到這個(gè)tensor的每個(gè)元素在內(nèi)存上的地址

但是步長的單位是張量中的單個(gè)元素,所以對(duì)于不同的數(shù)據(jù)類型,要計(jì)算它們的地址,我們還必須將它們的字節(jié)數(shù)考慮進(jìn)去。

例如,在一個(gè) F32 張量中,w 和 w+1 個(gè)元素之間的實(shí)際距離是 1 * 4。

在global memory中,數(shù)據(jù)以連續(xù)的方式存儲(chǔ),

wKgZomTeyduAUvWMAAHhigiK6oY705.jpg

這很容易理解。 由于global memory是一個(gè)完整的DDR,我們把tensor的每個(gè)元素挨個(gè)存儲(chǔ),所以w_stride等于1,h_stride等于w,對(duì)于c_stride來說,就是w的h倍,n_stride則是c_stride的c倍。

例如,對(duì)于形狀為 (2,2,3,2) 的張量,
w_stride為1,每2個(gè)元素后開始一個(gè)新的h,所以h_stride為2,每個(gè)通道包含3 * 2個(gè)元素,所以c_stride應(yīng)該為6,同理,我們可以很容易地得到n_stride, 12。

但是對(duì)于本地內(nèi)存,就變得有點(diǎn)復(fù)雜了,

wKgaomTeyd2AFMUeAALYip3_ZhU252.jpg

首先,張量的不同通道會(huì)被放到不同的NPU上。 如果通道大于 NPU 的數(shù)量,它將返回到第一個(gè) NPU開始存放。

這就是為什么local memory的C_stride是n,c,h,w到n,c+X,h,w。 Stride僅衡量同一memory中的距離。

例如,我們使用 X個(gè)NPU 來存儲(chǔ)具有 X + 2 個(gè)通道的張量,我們將從第一個(gè) NPU 到最后一個(gè) NPU 放入每個(gè)通道的元素。 然后其余的通道再次從第一個(gè) NPU 開始存放。

對(duì)于張量的每個(gè)batch,我們將從同一 NPU 上新的一行開始存儲(chǔ)。

wKgZomTeyd-ASS8lAAMQ7pdI8Ew421.jpg

像這個(gè)例子中,當(dāng)我們完成第一批的存儲(chǔ)后,即使同一個(gè)bank中的剩余內(nèi)存為空,我們也不會(huì)存儲(chǔ)任何東西,而是重新從NPU0開始。

這就解釋了為什么我們?cè)谟?jì)算 N_stride 時(shí)需要考慮local memory的起始索引。

基于上述原則,local memory中的張量以多種不同方式排布。

wKgaomTeyeCARK4kAAE4JsKbFoU256.jpg

最常用的一種是對(duì)齊排布。

這意味著張量的起始地址應(yīng)該可以被 EU_BYTE 整除。

另外,對(duì)于不同通道的數(shù)據(jù),用于保存的區(qū)域大小應(yīng)該是EU_NUM的倍數(shù),

從數(shù)學(xué)角度看,C_stride的計(jì)算應(yīng)該是這樣的(看PPT)。 當(dāng)H * W小于EU_NUM時(shí),C_stride為EU_NUM。 當(dāng)大于EU_NUM但小于2倍EU_NUM時(shí),C_stride應(yīng)為EU_NUM的2倍。

關(guān)于N_stride,由于有時(shí)通道數(shù)大于NPU_NUM或者local memory的起始索引不為零,可能會(huì)導(dǎo)致不同通道的數(shù)據(jù)存儲(chǔ)在同一個(gè)NPU中,N_stride的公式也應(yīng)該做round- up 操作,如PPT中所示。

例如,我們將在具有 64 EU_BYTE 的 TPU 上處理形狀為 (2,3,4,5) 的fp16張量。其中包含了4個(gè)NPU,而本地內(nèi)存的起始索引設(shè)置為 0。

wKgaomTeyeKAE9ULAAOlUYDXgBI340.jpg

所以我們從NPU0開始存儲(chǔ)張量,W_stride和H_stride顯然是1和5。

對(duì)于C_stride,由于H * W小于EU_NUM,所以C_stride為32。

另外,因?yàn)檫@個(gè)張量的通道小于 NPU_NUM,所以N_stride 也是 32。

但是當(dāng)起始索引設(shè)置為2時(shí),情況會(huì)有點(diǎn)不同,C步長仍然是32,但是由于張量的最后一個(gè)通道被存到第一個(gè)NPU,下一batch中的數(shù)據(jù)應(yīng)該從NPU2的下一行開始存儲(chǔ),則 N_stride 應(yīng)為 64。

wKgZomTeyeWAK47EAAOsUe8G2XM560.jpg

另一個(gè)常見的排布類型就是緊密排布,除了C_stride部分,其余的與對(duì)齊排布方式相似。

審核編輯:湯梓紅
聲明:本文內(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)投訴
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    701

    瀏覽量

    65093
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2942

    瀏覽量

    73728
  • 數(shù)據(jù)結(jié)構(gòu)

    關(guān)注

    3

    文章

    569

    瀏覽量

    40063
  • NPU
    NPU
    +關(guān)注

    關(guān)注

    2

    文章

    252

    瀏覽量

    18480
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    代Tensor處理單元TPU 用AI幫你看世界!

    這些強(qiáng)大的人工智能靠的是強(qiáng)大的第代Tensor處理單元TPU。它能有效地將Google服務(wù)器變?yōu)榫哂?1.5千萬億次浮點(diǎn)計(jì)算能力的超級(jí)計(jì)算機(jī)。
    發(fā)表于 05-10 10:29 ?1907次閱讀

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

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

    CORAL-EDGE-TPU:珊瑚開發(fā)板TPU

    包括一個(gè)上系統(tǒng)模塊(SOM)和護(hù)壁板。SOM基于iMX 8M應(yīng)用處理器,還包含LPDDR4內(nèi)存,eMMC存儲(chǔ),雙頻Wi-Fi和Edge TPU。Edge TPU是由Google設(shè)計(jì)的小型ASIC
    發(fā)表于 05-29 10:43

    TPU透明副牌.TPU副牌料.TPU抽粒廠.TPU塑膠副牌.TPU再生料.TPU低溫料

    清源塑膠經(jīng)營. 供應(yīng)TPU塑膠原料.副牌.再生顆粒料.TPU塑膠.TPU透明副牌. 再生粒子.白色.黑色.透明. 注塑料.擠出料. 壓延等等..聚醚. 脂肪料. 聚酯料.硬度70A--98A.
    發(fā)表于 11-21 17:21

    TPU副牌低溫料.TPU熱熔料.TPU中溫料.TPU低溫塑膠.TPU低溫抽粒.TPU中溫塑料

    清源塑膠公司.供應(yīng)TPU塑膠原料.副牌.再生顆粒料.TPU塑膠.TPU透明副牌. 再生粒子.白色.黑色.透明. 注塑料.擠出料. 壓延等等..聚醚. 脂肪料. 聚酯料.硬度70A--98A. 高硬度
    發(fā)表于 11-21 17:33

    供應(yīng)TPU抽粒工廠.TPU再生工廠.TPU聚醚料.TPU聚酯料.TPU副牌透明.TPU副牌.TPU中低溫料

    清源塑膠經(jīng)營.進(jìn)口.國內(nèi).供應(yīng)TPU原料.副牌TPU塑膠.TPU透明副牌. 再生粒子.白色.黑色.透明. 注塑料.擠出料. 壓延等等..聚醚. 脂肪料. 聚酯料.硬度70A--98A. 高硬度
    發(fā)表于 11-21 17:47

    采購TPU復(fù)牌料.復(fù)牌TPU原料.TPU復(fù)牌透明塑料.TPU廢邊料.TPU廢膜料.TPU低溫料

    全球大量采購① tpu,透明,白色,副牌,再生粒,注塑,擠出料,TPU邊角膜料. TPU廢卷膜. 進(jìn)口.國內(nèi)料. 200噸,② TPU低溫,中溫.副牌料,膠塊料. 200噸, ③ PB
    發(fā)表于 11-22 02:38

    CPU,GPU,TPU,NPU都是什么

    嵌入式算法移植優(yōu)化學(xué)習(xí)筆記5——CPU,GPU,TPU,NPU都是什么一、什么是CPU?、什么是GPU?三、什么是TPU?四、什么是NPU?附:一、什么是CPU?中央處理器(CPU),是電子計(jì)算機(jī)
    發(fā)表于 12-15 06:07

    如何驗(yàn)證MC68332 TPU配置是否正確?

    a) 以下 TPU 模塊配置在項(xiàng)目中完成 *M332_TPU_TMCR = 0x1e4c;/* 選擇 TCR1 時(shí)基 = 250nsec, TCR2 = 4usec,仿真模式
    發(fā)表于 05-09 08:17

    BM1684中各種內(nèi)存的概念

    A53專用 + 4GB TPU專用 + 4GB VPP/VPU專用。 設(shè)備內(nèi)存(Device Memory)和系統(tǒng)內(nèi)存(Host Memory): 根據(jù)BM168x產(chǎn)品類型或工作模式的不同,設(shè)備
    發(fā)表于 09-19 07:47

    tpu是什么材料_tpu硬度范圍_tpu的應(yīng)用

    TPU(Thermoplastic polyurethanes)名稱為熱塑性聚氨酯彈性體橡膠。主要分為有聚酯型和聚醚型之分,它硬度范圍寬(60HA-85HD)、耐磨、耐油,透明,彈性好,在日用品
    發(fā)表于 12-01 15:55 ?2w次閱讀

    TPU內(nèi)存(一)

    TPU內(nèi)存(一)
    的頭像 發(fā)表于 08-18 11:29 ?596次閱讀
    <b class='flag-5'>TPU</b><b class='flag-5'>內(nèi)存</b>(一)

    TPU和NPU的區(qū)別

    TPU和NPU的區(qū)別? 在IT領(lǐng)域中,TPU和NPU屬于兩種不同類型的芯片。這兩種芯片都是專為人工智能(AI)和大型數(shù)據(jù)分析設(shè)計(jì)而開發(fā)的,但它們的功能和優(yōu)點(diǎn)卻有所不同。在本文中,我們將詳細(xì)介紹TPU
    的頭像 發(fā)表于 08-27 17:08 ?7168次閱讀

    TPU是什么材料做的

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

    tpu材料的用途和特點(diǎn)

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