GPU和TPU,有何不同

硬體選擇在很大程度上決定了人工智慧模型的訓練和部署效率和速度。其中最突出的是圖形處理單元和張量處理單元。儘管 GPU 最初設計用於處理圖形渲染,但多年來它們已發展成為適用於各種計算任務(包括 AI 和深度學習)的強大工具。

另一方面,TPU 是 Google 開發的專用處理器,專門用於機器學習工作負載。本文對比了 Google TPU 與 NVIDIA GPU 在性能和成本問題上的差異,以及對不同基於 AI 的應用程式的適用性。

什麼是 GPU?

GPU 是為 PC 和遊戲機中的繪圖和成像而開發的增強型協處理器。GPU 以線性方式解決問題,而 GPU 可以將問題分解為小的子問題,然後一次性解決這些子問題。這種圖形平行處理能力隨後在許多計算應用中變得至關重要,例如在建立 AI 模型時。

NVIDIA GPU 最初是在 20 世紀 80 年代作為圖形處理器發明的,用於提高圖像繪製速度,由 NVIDIA 和 ATI(現為 AMD)發明。由於可程式設計著色器的出現,它們在 20 世紀 90 年代後期和 21 世紀初期受到了更多關注,允許將平行處理用於非渲染目的。這種能力使得 GPU 被用於一般用途。計算還可以使用演算法,例如使用 NVIDIA 的 CUDA 和 AMD 的 Stream SDK 進行科學模擬和資料分析等。

最初,GPU 用於渲染 3D 圖形;然而,隨著人工智慧和深度學習的進步,這些裝置在訓練和部署深度學習模型方面發揮著關鍵作用,因為它們能夠處理巨量資料和平行計算。TensorFlow 和 PyTorch 等深度學習框架使用 GPU 進行加速,以便世界上越來越多的研究人員和開發人員能夠獲得更好的深度學習體驗。

TPU 是 Google 為滿足機器學習演算法日益增長的計算需求而設計的 ASIC。TPU 並非基於與 GPU 相同的原理建構,最初設計為圖形處理器,但後來被重新用於機器學習。

Google TPU 專為張量計算而設計,現代深度學習演算法就是基於此建構的。它們的架構專為矩陣乘法而設計,這些運算對於神經網路的工作至關重要,使它們能夠處理大量資料以及複雜的神經網路。由於這種專業化,TPU 對 AI 非常有用,並促進了機器學習的研究和部署。

Google TPU 與 NVIDIA GPU對比

1計算架構

GPU 包含數百萬個小型、高效的處理核心,適合大規模平行處理。它們非常適合那些可以輕鬆分解為獨立子任務的任務,這些任務通常以平行性的形式進行討論,例如渲染、遊戲和以矩陣計算形式出現的 AI。這種架構使 GPU 既通用又可用於各種需要處理大型資料集或大量計算的 AI 任務。

TPU 收集張量計算,以便在需要使用大量張量的任務(例如深度學習)中表現出色。雖然 TPU 包含的核心通常比 GPU 少,但這些晶片的設計是針對張量計算量身定製的,在某些 AI 任務上可以超越 GPU。

2性能:速度和效率

GPU 在所有 AI 驅動的任務中都是多用途的,無論是在訓練階段還是在推理階段。例如,使用BERT 模型,在 NVIDIA V100 GPU 上需要 3.8 毫秒。儘管如此,TPU 是為張量處理量身定製的,有時可以在與深度學習相關的各種計算任務中超越 GPU。使用相同的 BERT 模型批次,在 TPU v3 上僅需要 1.7 毫秒。例如,在 NVIDIA Tesla V100 GPU 上,在 CIFAR-10 資料集上訓練 ResNet-50 模型十個 epoch 大約需要 40 分鐘,但在 Google Cloud TPU v3 上只需 15 分鐘。

3成本和可用性

至於成本和可獲得性,GPU 甚至更容易獲得。它們可以單獨購買,也可以在所謂的雲端訂購訂閱服務,每台起價為 8,000 至 15,000 美元。這意味著,要在雲端使用類似於 NVIDIA Tesla V100 和 A100 的 GPU,每小時需要分別花費約 2.48 美元和 2.93 美元。

TPU 僅限於雲端,主要在 GCP 中提供。通常,TPU 的小時使用成本相對較高,TPU v3 為 4 美元。所有 CU 變體都比 TPU 便宜,TPU 每小時約 2.50 美元,TPU v4 每小時約 8.00 美元。儘管設定了更高的小時費率,但 TPU 的速度在兆瓦級機器學習操作中創造了整體成本效益。

4生態系統和開發工具

TPU 與 Google 開源機器學習框架 TensorFlow 高度耦合。它們還支援 JAX,這是一個用於高性能數值計算的庫。XLA 編譯器來自 TensorFlow,它編譯 TPU 的計算以簡化處理器的使用。

GPU 存在於不同的行業中,可以容納更多框架,例如 TensorFlow、PyTorch、Keras、MXNet 和 Caffe。它們都不太複雜,而且很容易整合到 ML 和/或資料科學中,因為它們利用了廣泛的庫,例如 CUDA、cuDNN 和 RAPIDS。

5社區支援和資源

GPU 得到了 NVIDIA 和 AMD 等公司提供的密集社區論壇、程式碼教學和全方位文件的良好支援。

TPU 在 Google 領域內得到更集中的支援,GCP 文件、論壇和支援中提供了參考和資源。儘管官方資源(例如 TensorFlow 文件)可以提供很多幫助,但 TPU 社區的支援可能不如 GPU 那麼大。

6能源效率和環境影響

總體而言,Google TPU 與 NVIDIA GPU 相比,TPU 據稱比 GPU 更節能。例如,Google Cloud TPU v3 每晶片約 120-150W,而 Tesla V100 為 250W,A100 為 400W。

GPU 採用了諸如電源門控和動態電壓和頻率調節 (DVFS) 等特性來提高能源效率。雖然 GPU 的能源效率不如 TPU,但它們採用了減少大規模 AI 流程中能源消耗的措施。

7企業應用程式的可擴展性

TPU 為大多數行業的大型 AI 項目和連接流程提供了出色的解決方案,GCP 與 AI 應用程式部署中的按需基礎設施和託管服務相關聯。

GPU 非常靈活,可用於本地和雲模型,可從 Amazon Web Services 和 Microsoft Azure 等主要雲服務提供商處獲得。它可以處理巨量資料並調整大多數機器學習演算法所需的計算資源。

8以下情況請選擇 GPU:

您需要一系列不同的計算能力,例如電腦圖形/顯示以及科學計算。

這些選項讓您可以精確控制性能調整和最佳化。

您需要在不同環境中靈活地部署應用程式。

9以下情況請選擇 TPU:

您的項目通過 TensorFlow 得到提升,並且在與 TensorFlow 互動時具有高性能。

需要確保高吞吐量的訓練時間和非常快的推理時間。

關於技術的選擇,能源效率和低功耗是參數。

您需要一個能夠輕鬆訪問所需 TPU 資源的通用託管雲服務提供商。

開發者體驗:Google TPU 與 NVIDIA GPU 在 AI 開發計算中的比較

比較 TPU 和 GPU 的使用:開發人員對裝置的體驗可能因與 ML 框架的相容性、SW 工具/庫的可用性等而異。

張量處理單元 (TPU) 針對 TensorFlow 進行了進一步最佳化,TensorFlow 是 Google 的開源機器學習框架。TensorFlow 包含非常靈活且高效的介面來管理神經網路的高級操作,因為開發人員無需編寫低級程式碼即可利用 TPU。此外,Google 還提供了有關如何使用 TPU 和 TensorFlow 的詳細文件和指導材料,這可能有助於開發人員克服學習曲線。

除了 TensorFlow,TPU 還可以與另一個 Google 機器學習庫 JAX 配合使用。JAX 具有建構和訓練神經網路的介面,並且支援通過梯度進行區分和 GPU/TPU 計算,這是在 AI 開發中使用 TPU 的另一種方式。

GPU 支援更廣泛的機器學習框架,例如 TensorFlow、PyTorch、Caffe 等,這讓開發人員可以選擇最合適的框架進行部署。著名的 GPU 生產商是 NVIDIA;他們提供 CUDA,這是使用 GPU 進行平行計算的軟體開發工具包。這可以讓人們對計算進行更精細的控制,但它需要對硬體有深入的瞭解。

NVIDIA 還提供了文件和課程,詳細介紹了如何將 GPU 與不同的機器學習庫結合使用,以及一套用於測量和診斷 GPU 增強程序的工具。這些資源對於那些有興趣增強 AI 解決方案以利用 GPU 硬體的開發人員非常有用。

TPU 和 GPU 都與雲環境相容。Google 的 Cloud TPU 與 Google Cloud 相容,因此初創公司或大型企業可以輕鬆提升其 AI 使用率。同樣,NVIDIA GPU 可以通過許多雲提供商訪問,包括 Amazon Web Service、Microsoft Azure 或 Google Cloud。此外,通過與NVIDIA的競爭和與英特爾的合作,AMD 已成為 AI 加速市場的一股主要力量,這推動了 AI 和巨量資料分析領域競爭優勢的進一步發展。

行業中 Google TPU 與 NVIDIA GPU 的整合可改善 AI 開發

TPU 和 GPU 在 AI 行業的廣泛使用表明它們在促進不同類型的 AI 任務方面發揮著巨大作用。許多組織部署這些技術來改善其 AI 營運。

例如,開發了 TPU 的Google在其解決方案和產品中大量使用這些處理器。TPU 的用例是人工智慧模型,即Google搜尋、Google照片和Google翻譯,它們需要大吞吐量和低延遲的人工智慧推理。這使得Google每天能夠管理數十億次搜尋查詢,分析數百萬張照片,並翻譯數百萬篇文字。

OpenAI 是一家致力於推動 AI 發展的組織,它使用 GPU來訓練其大規模 AI 模型。最重要的標準之一是需要訓練的參數,而最大的語言模型之一 GPT-3 的訓練包含 1750 億個參數。如此大的模型的訓練需要大量的計算資源,在這種情況下,GPU 可以滿足這些資源的需求。

如今,Alphabet 旗下 Waymo 正在使用張量處理單元,該公司專注於控制自動駕駛汽車。這些演算法涉及處理來自各種感測系統的大量輸入,並具有即時處理和決策功能;因此,TPU 是最好的,因為它們經過最佳化以支援 AI 推理。

最著名的 GPU 硬體製造商是 NVIDIA,該公司將製造的硬體應用於其 AI 研發。NVIDIA 使用 GPU 設計 AI 解決方案、調整演算法使用的數學配方以及比較其軟體和硬體。該公司還將 GPU 納入其人工智慧產品;自動駕駛汽車中心和視訊分析系統。

微軟還為整合人工智慧及其機器學習等元件的發展做出了貢獻。它不斷應用上述基礎設施來支援公司生產力工具和雲服務中分析和人工智慧的整合。

這些例子描述了 TPU 和 GPU 在 AI 行業中的廣泛實際用途,展示了這些裝置在提供大規模 Web 服務、訓練高度發達的 AI 模型以及創造更多獨特的 AI 相關技術方面的重要性和作用。

結論

在AI 開發中,選擇 Google TPU 還是 NVIDIA GPU需要考慮很多因素,比如項目本身、成本以及要使用到的全球基礎設施。因此,儘管 GPU 也具有很高的相容性,並且幾乎所有框架都支援,但 TPU 更擅長基於 TensorFlow 的商業化項目,並且能效更高。

瞭解這些差異對開發人員和組織很有用,因為他們可以組織任務流程來完成人工智慧項目,從而提高效率和降低成本。值得注意的是,這兩種選擇都有各自的優點,並被積極用於推動機器學習和人工智慧的發展。 (半導體行業觀察)