CPU、GPU 和 TPU 都是如何工作的?有什麼區別?

it鯨英派 發佈 2020-01-06T16:53:38+00:00

很多讀者可能分不清楚 CPU、GPU 和 TPU 之間的區別,因此 Google Cloud 將在這篇博客中簡要介紹它們之間的區別,並討論為什麼 TPU 能加速深度學習。TPU張量處理單元(TPU)是一種定製化的 ASIC 晶片,它由谷歌從頭設計,並專門用於機器學習工作負載。

很多讀者可能分不清楚 CPU、GPU 和 TPU 之間的區別,因此 Google Cloud 將在這篇博客中簡要介紹它們之間的區別,並討論為什麼 TPU 能加速深度學習。

張量處理單元(TPU)是一種定製化的 ASIC 晶片,它由谷歌從頭設計,並專門用於機器學習工作負載。TPU 為谷歌的主要產品提供了計算支持,包括翻譯、照片、搜索助理和 Gmail 等。Cloud TPU 將 TPU 作為可擴展的雲計算資源,並為所有在 Google Cloud 上運行尖端 ML 模型的開發者與數據科學家提供計算資源。在 Google Next』18 中,我們宣布 TPU v2 現在已經得到用戶的廣泛使用,包括那些免費試用用戶,而 TPU v3 目前已經發布了內部測試版。

第三代 Cloud TPU

如上為 tpudemo.com 截圖,該網站 PPT 解釋了 TPU 的特性與定義。在本文中,我們將關注 TPU 某些特定的屬性。

神經網絡如何運算

在我們對比 CPU、GPU 和 TPU 之前,我們可以先了解到底機器學習或神經網絡需要什麼樣的計算。如下所示,假設我們使用單層神經網絡識別手寫數字。

如果圖像為 28×28 像素的灰度圖,那麼它可以轉化為包含 784 個元素的向量。神經元會接收所有 784 個值,並將它們與參數值(上圖紅線)相乘,因此才能識別為「8」。其中參數值的作用類似於用「濾波器」從數據中抽取特徵,因而能計算輸入圖像與「8」之間的相似性:

然後,TPU 從內存加載數據。當每個乘法被執行後,其結果將被傳遞到下一個乘法器,同時執行加法。因此結果將是所有數據和參數乘積的和。在大量計算和數據傳遞的整個過程中,不需要執行任何的內存訪問。

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

好處:成本降低至 1/5

因此使用 TPU 架構的好處就是:降低成本。以下是截至 2018 年 8 月(寫這篇文章的時候)Cloud TPU v2 的使用價格。

Cloud TPU v2 的價格,截至 2018 年 8 月。

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

DAWNBench:https://dawn.cs.stanford.edu/benchmark/

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

關鍵字: