科普 CPU, GPU, TPU的區別

2022-05-18 20:53:05 字數 2907 閱讀 9108

張量處理單元(tpu)是一種定製化的 asic 晶元,它由谷歌從頭設計,並專門用於機器學習工作負載。tpu 為谷歌的主要產品提供了計算支援,包括翻譯、**、搜尋助理和 gmail 等。cloud tpu 將 tpu 作為可擴充套件的雲計算資源,並為所有在 google cloud 上執行尖端 ml 模型的開發者與資料科學家提供計算資源。在 google next』18 中,我們宣布 tpu v2 現在已經得到使用者的廣泛使用,包括那些免費試用使用者,而 tpu v3 目前已經發布了內部測試版。

如果影象為 28×28 畫素的灰度圖,那麼它可以轉化為包含 784 個元素的向量。神經元會接收所有 784 個值,並將它們與引數值(上圖紅線)相乘,因此才能識別為「8」。其中引數值的作用類似於用「濾波器」從資料中抽取特徵,因而能計算輸入影象與「8」之間的相似性:這是對神經網路做資料分類最基礎的解釋,即將資料與對應的引數相乘並將它們加在一起。如果我們能得到最高的**值,那麼我們會發現輸入資料與對應引數非常匹配,這也就最可能是正確的答案。

簡單而言,神經網路在資料和引數之間需要執行大量的乘法和加法。我們通常會將這些乘法與加法組合為矩陣運算,這在我們大學的線性代數中會提到。所以關鍵點是我們該如何快速執行大型矩陣運算,同時還需要更小的能耗

cpu 最大的優勢是靈活性。通過馮諾依曼架構,我們可以為數百萬的不同應用載入任何軟體。我們可以使用 cpu 處理文字、控制火箭引擎、執行銀行交易或者使用神經網路分類影象。

但是,由於 cpu 非常靈活,硬體無法一直了解下乙個計算是什麼,直到它讀取了軟體的下乙個指令cpu 必須在內部將每次計算的結果儲存到記憶體中(也被稱為暫存器或 l1 快取)。記憶體訪問成為 cpu 架構的不足,被稱為馮諾依曼瓶頸。雖然神經網路的大規模運算中的每一步都是完全可**的,每乙個 cpu 的算術邏輯單元(alu,控制乘法器和加法器的元件)都只能乙個接乙個地執行它們,每一次都需要訪問記憶體,限制了總體吞吐量,並需要大量的能耗

為了獲得比 cpu 更高的吞吐量,gpu 使用一種簡單的策略:在單個處理器中使用成千上萬個 alu。現代 gpu 通常在單個處理器中擁有 2500-5000 個 alu,意味著你可以同時執行數千次乘法和加法運算

這種 gpu 架構在有大量並行化的應用中工作得很好,例如在神經網路中的矩陣乘法。實際上,相比 cpu,gpu 在深度學習的典型訓練工作負載中能實現高幾個數量級的吞吐量。這正是為什麼 gpu 是深度學習中最受歡迎的處理器架構。

但是,gpu 仍然是一種通用的處理器,必須支援幾百萬種不同的應用和軟體。這又把我們帶回到了基礎的問題,馮諾依曼瓶頸在每次幾千個 alu 的計算中,gpu 都需要訪問暫存器或共享記憶體來讀取和儲存中間計算結果。因為 gpu 在其 alu 上執行更多的平行計算,它也會成比例地耗費更多的能量來訪問記憶體,同時也因為複雜的線路而增加 gpu 的物理空間占用

當谷歌設計 tpu 的時候,我們構建了一種領域特定的架構。這意味著,我們沒有設計一種通用的處理器,而是專用於神經網路工作負載的矩陣處理器。tpu 不能執行文字處理軟體、控制火箭引擎或執行銀行業務,但它們可以為神經網路處理大量的乘法和加法運算,同時 tpu 的速度非常快、能耗非常小且物理空間占用也更小。

其主要助因是對馮諾依曼瓶頸的大幅度簡化。因為該處理器的主要任務是矩陣處理,tpu 的硬體設計者知道該運算過程的每個步驟。因此他們放置了成千上萬的乘法器和加法器並將它們直接連線起來,以構建那些運算子的物理矩陣。這被稱作脈動陣列(systolic array)架構。在cloud tpu v2 的例子中,有兩個 128x128 的脈動陣列,在單個處理器中整合了 32768 個 alu 的 16 位浮點值

乙個脈動陣列如何執行神經網路計算。

首先,tpu 從記憶體載入引數到乘法器和加法器的矩陣中。

然後,tpu 從記憶體載入資料當每個乘法被執行後,其結果將被傳遞到下乙個乘法器,同時執行加法。因此結果將是所有資料和引數乘積的和。在大量計算和資料傳遞的整個過程中,不需要執行任何的記憶體訪問

這就是為什麼 tpu 可以在神經網路運算上達到高計算吞吐量,同時能耗和物理空間都很小。

cloud tpu v2 的**,截至 2018 年 8 月。

史丹福大學發布了深度學習和推理的基準套裝 dawnbench。你可以在上面找到不同的任務、模型、計算平台以及各自的基準結果的組合。

dawnbench:

在 dawnbench 比賽於 2018 年 4 月結束的時候,非 tpu 處理器的最低訓練成本是 72.40 美元(使用現場例項訓練 resnet-50 達到 93% 準確率)。而使用 cloud tpu v2 搶占式計價,你可以在 12.87 美元的**完成相同的訓練結果。這僅相當於非 tpu 的不到 1/5 的成本。這正是神經網路領域特定架構的威力之所在。

科普 多執行緒與非同步的區別

多執行緒和非同步操作的異同 多執行緒和異程式設計客棧步操作兩者都可以達到避免呼叫執行緒阻塞的目的,從而提高軟體的可響應性。甚至有些時候我們就認為多執行緒和非同步操作是等同的概念。但是,多執行緒和非同步操作還是有一些區別的。而這些區別造成了使用多執行緒和非同步操作的時機的區別。非同步操作的本質 所有的...

USB 協議的科普

舊名稱新名稱 最新名稱 最大速度 2000.04 usb 2.0 480 mbps 2008.11 usb 3.0 usb 3.1 gen1 usb 3.2 gen1 5 gbps 2013.12 usb 3.1 usb 3.1 gen2 usb 3.2 gen2 10 gbps 2017.09 u...

科普 手機定位的原理

可用於無線定位的訊號 gps訊號 基站訊號 wifi訊號,以上三種是最常用的定位方式,此外還有藍芽 ip 地磁場等手段 通常智慧型手機有以下兩種定位方式 一,呼叫系統級定位能力 無論哪個系統 ios 安卓 wp 都提供了一套系統級定位能力,這樣的定位能力,對應著是一套系統級api,這個api一般來說...