--- tags: Session TWO --- # Distributed AI(葉鎮邦) 讓多個節點分工進行計算,可以大量且快速的處理資料。 基本上分為兩種方式,model Parallelism和data Parallelism ## model Parallelism - 將模型分成好幾份,每份皆由不同的節點負責。 - 由於更部分會互相依賴,運算效率不高,只有當模組過於龐大時使用。  ## Data Parallelism - 將數據分組後,交由各個有相同模組的節點去做運算,最後在依資料權重去做整合 **高效率的網路是不可或缺的**  ### Synchronous(同步) - workers 以相同的網路參數開始訓練,訓練是一個迭代(iteration)的過程。 - 每個 worker 用自己的數據(mini batch)去計算參數的梯度(gradients) - 所有worker之間是同步的。 - 把所有worker計算過後的梯度做平均,並用以更新參數。 - 開始新的一輪。 ::: info worker:包含 CPU 和一個或多個 GPU 的單獨機器 [gradients](https://chih-sheng-huang821.medium.com/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E5%9F%BA%E7%A4%8E%E6%95%B8%E5%AD%B8-%E4%BA%8C-%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95-gradient-descent-406e1fd001f):為一個與函數相切的向量,指向此函數最大增量的方向,用以找出最佳解。 ::: ### Asynchronous(異步) - 每個worker獨立獲取參數。 - 當計算好自己的梯度後便會更新參數,不像同步時會等待其他worker計算完成。 - 過程非常隨機 - 每個worker獲取的參數值不一定相同,有可能更新到舊的參數。 ## Overlapping communications and computation - 在運算同時也能夠做資料的交換 - TCP/IP無法做到 ## Typical application flow - 開始: - 讀入input file - 分解問題 - 工作過程: - 計算 - 交換數據 - 結束: - 寫output file ## The secret sauce of RDMA - 低延遲 - 高頻寬 - 可擴展的計算引擎 - Os bypass - 遠端直接記憶體存取 - offloads - 低記憶體占用 - performance portable APIs ## Peer to Peer communication[(對等式網路)](https://zh.wikipedia.org/wiki/%E5%B0%8D%E7%AD%89%E7%B6%B2%E8%B7%AF) - 資料傳遞不需要使用CPU,只需要使用PCI Express, - 用戶端可以自行尋找其他用戶端,直接在兩台電腦之間傳輸,加速資料傳輸的速度。 - 減低以往網路傳輸中的節點,以降低資料遺失的風險 :::info **PCI Express**:是電腦主機板上的一種匯流排規格。 **匯流排**:是用來連結主機版南橋、北橋與CPU等晶片,並提供資料傳輸的功能。一般常見的網路卡、IDE硬碟、SATA、顯示卡…等等周邊裝置,都是透過匯流排的連接與資料傳遞才有辦法正常運作。 :::
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.