Google推出了一個用來取代原有TensorFlow Runtime的TFRT,強調能夠大幅提升推理速度,並且簡化TensorFlow的堆疊。雖然TFRT還在早期發展階段,但是目前已經整合在TensorFlow專案中,開發者可以選擇性啟用,而未來將會成為預設Runtime。

之所以TensorFlow需要有新Runtime,是因爲官方要因應機器學習生態系的變化,官方提到,當初TensorFlow的出現,為的是要簡化在不同裝置上,建置和部署機器學習模型的過程,但是隨著技術的發展,機器學習生態系已經與五年前創建TensorFlow時有很大的不同。

這些變化包括研究人員發明了需要更多計算量的演算法,而開發人員也在邊緣裝置以及伺服器上,應用新技術來強化自家應用,官方提到,由於摩爾定律終止,但是運算需求卻增加,使得運算成本增加,這個壓力使得各家廠商投資,發展專用於機器學習的晶片。

雖然官方從TensorFlow 2.x開始進行調整,因應這些趨勢變化,不過,當前TensorFlow堆疊還是專為圖(Graph)執行進行最佳化,而這會導致分派單個操作產生不小的額外成本,因此官方表示,高效能的低階Runtime會是能夠滿足當前需求,但又能實現未來創新的角色。

TFRT(TensorFlow RunTime)的出現,便是要為各種特定領域的硬體,提供統一且可擴展的基礎設施層,能有效利用多執行緒主機的CPU,執行完全非同步程式開發模型,並把重點放在改善低階執行效率上,TFRT會負責在目標硬體上高效能的執行低階裝置原語。

(下圖)灰色區塊都是TFRT的一部分,在Eager執行時,TensorFlow API會直接呼叫新的Runtime,而在Graph執行時,程式的運算圖將會經過多層中間語言(Multi-Level Intermediate Representation,MLIR)最佳化後分派給TFRT,在兩個執行路徑,新的RunTime都會呼叫底層硬體原語,完成模型執行。

官方提到,舊的TensorFlow Runtime當初是為圖執行和訓練工作目的建置,而TFRT則是為了Eager執行和預測而生,並且具備可擴展性和模組化。兩個Runtime的GPU預測速度相比,TFRT平均預測時間比舊Runtime還要快28%,而這還僅是TFRT初期階段的成果。

TFRT可為各領域的使用者帶來好處,像是研究人員可以利用TFRT更快速地迭代研究,研究人員可以改進機器學習應用的效能,而硬體製造商也能夠以模組的形式,將TensorFlow整合進邊緣裝置以及資料中心。


Advertisement

更多 iThome相關內容