# InfiniBand 介紹 InfiniBand 是用於高效能計算的網路通訊標準,並且支援 **RDMA** (Remote Direct Memory Access) 技術,具有極高的頻寬與極低的延遲,用於高速資料傳輸。可以透過鏈路聚合提升 throughput。 ![IB cable](https://www.nvidia.com/content/dam/en-zz/Solutions/networking/infiniband/infiniband-dac-2c50-d.jpg) ![ConnectX-7](https://www.nvidia.com/content/nvidiaGDC/tw/zh_TW/networking/infiniband-adapters/_jcr_content/root/responsivegrid/nv_container/nv_container_copy_co/nv_image.coreimg.100.630.png/1718642493676/connectx-7-2c50-d-2x.png) ![image](https://hackmd.io/_uploads/BJXklMWpJe.png) - FDR-10 4X -> 40 Gbps ## InfiniBand 架構 Application layer 以下都是靠 hardware 完成。 ![IB protocol stack](https://hackmd.io/_uploads/HyFcx4Zpke.png) [source](https://www.fs.com/blog/infiniband-what-exactly-is-it-7714.html) InfiniBand 有兩種 Channel Adapter: - HCA (Host Channel Adapter) - 作為主機與 InfiniBand 網路間的橋梁,負責收發資料。支援 RDMA,可以直接跳過作業系統存取另一台機器的記憶體。 - TCA (Target Channel Adapter) - 通常在儲存設備或 I/O 裝置上,接收及處理從 HCA 發來的資料。 ![image](https://hackmd.io/_uploads/H15UFEWTke.png) ## Subnet Manager 負責管理和配置 InfiniBand 的 subnet - 探索 InfiniBand 的網路拓樸 - 搜尋連接的裝置 - 流量控制 ## RDMA RDMA 可以讓一台 server 上的應用程式直接讀寫另一台 server 的記憶體,大幅提升資料傳輸的速度。 ![image](https://hackmd.io/_uploads/HkerYrWTke.png) ### Zero-copy 這項技術的目標是消除中間 copy 的步驟,在不靠 CPU 參與、不用多次搬移就能把資料直接傳到目標設備的記憶體。 ## Verbs API Verbs 是由 InfiniBand 描述的抽象定義,用於操作 RDMA 的功能,沒有規定如何實作,需要硬體廠商自己開發相關驅動跟 library。 ## OFED OFED (OpenFabrics Enterprise Distribution) 包含很多開源軟體,主要用於支援 RDMA,各家廠商也會有定製版的 OFED,例如 Mellanox 的 MLNX_OFED。 ## IPoIB 把 IB 當成 Ethernet,讓他能支援 IP 協議。 ## 參考連結 - https://hackmd.io/@William-Mou/SywOmi7kD - https://hpc.phy.ntnu.edu.tw/download/1-6_HPC%E7%B6%B2%E8%B7%AF.pdf - https://hpc.phy.ntnu.edu.tw/ - https://www.ctimes.com.tw/DispArt/tw/PCI/%E4%B9%99%E5%A4%AA/%E5%85%89%E7%BA%96%E7%B6%B2%E8%B7%AF/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A%E6%94%B6%E7%99%BC%E5%99%A8/0211051137VT.shtml - https://zhuanlan.zhihu.com/p/329198771