谷歌向 Linux 提交了一項改進設備間網絡數據傳輸的提案

Tux,Linux 內核的吉祥物

Linux 內核是 Linux 操作系統 (OS) 的支柱,是計算機硬件與其進程之間的基本接口。

最近有消息說 谷歌提出了一個建議 通過 Linux 內核開發人員的郵件列表, 用於設備之間的網絡數據傳輸。

該提案本身是 該機制的實施 設備內存 TCP (devmem TCP),它允許數據直接通過網絡從某些設備的內存傳輸到其他設備的內存,而無需在位於主機系統內存的緩衝區中中間複製該數據。

關於谷歌的提議,提到 設備 TCP 內存有望顯著提高效率 使用額外的加速器板在集群和分佈式機器學習系統中進行交互。

此外,還提到了 機器學習加速器的使用導致傳輸的信息量顯著增加 在訓練模型從存儲到GPU/TPU內存的過程中。 在某些情況下、訓練機器學習模型 只能消耗 50% 的可用 TPU 計算資源, 消除停機並更充分利用 GPU/TPU 資源的一種方法是提高性能和數據傳輸效率。

目前,數據傳輸 不同主機上的設備之間 僅限於復制數據 設備內存 承載內存, 調動 信息 通過網絡到另一台主機並從主機的內存中復制 目標到另一個設備的內存。 這樣的方案並不是最優的 而且,通過傳輸大量信息,它會給內存帶寬和 PCIe 總線帶來額外的負載。

如今,網絡上大多數設備到設備的數據傳輸都是通過 通過以下低級操作實現:從設備複製到主機, 主機到主機的網絡傳輸和主機到設備的複制。

該實現不是最理想的,特別是對於批量數據傳輸,並且可能 對系統資源(例如主機內存帶寬)造成巨大壓力,PCIe帶寬等造成現狀的一個重要原因是 缺乏用於表達設備到網絡傳輸的內核語義。

設備內存 TCP 機制允許您將主機內存排除在該鏈之外,並立即通過網絡從設備內存傳輸數據,並將接收到的數據以網絡數據包的形式放入設備內存中。

為了使設備內存 TCP 工作,需要一塊可以單獨處理的網卡 數據包標頭和數據包封裝的數據(有效負載)位於不同的緩衝區中。 使用 dmabuf 機制將數據從設備內存加載到 NIC 負載緩衝區,標頭從主內存傳遞並由系統 TCP/IP 堆棧填充。 為了提高效率,可以額外使用網卡的功能 用於單獨處理不同接收隊列中的流。

考慮到使用分佈式系統進行機器學習(其中加速器位於不同的主機上)以及從外部 SSD 傳輸模型訓練的數據,設備之間對高性能數據交換機制的需求不斷增加。 性能測試 採用 4 個 GPU 和 4 個網卡的配置 表明使用 Device Memory TCP 可以使其達到 96,6% 的速度水平 直接在設備內存之間傳輸數據時可用線。

最後值得一提的是 實現仍處於RFC階段, 也就是說,它供社區討論和審查,但尚未正式提交給 Linux 內核的主要分支。

來源: https://lore.kernel.org/


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。