目錄
顯存和GPU之間的分配
顯存和GPU之間的通信
原語是什么,簡單舉例說明
GPUDirect P2P,NVLink,NCCL的全稱及解釋
聚合通信和點對點通信
聚合通信(Collective Communication)
點對點通信(Point-to-Point Communication)
為什么使用GPUDirect P2P,NVLink,NCCL
顯存和GPU之間的分配
-
動態顯存分配:在使用CUDA進行顯存分配和管理時,PyTorch采用了動態顯存分配策略。這意味著,當在PyTorch中使用CUDA張量時,顯存不會一開始就分配完所有可用的GPU內存,而是根據需要動態分配。
-
顯存緩存機制(Caching Allocator):為了優化顯存的使用和減少內存碎片,PyTorch使用了一個緩存分配器。該機制通過緩存已釋放的顯存,以便在后續的張量操作中復用,從而減少顯存的頻繁分配和釋放操作。
-
多GPU顯存分配:在使用多個GPU時,PyTorch為每個GPU獨立管理顯存分配。每個GPU都有自己的顯存緩存機制,并且PyTorch可以自動將張量分配到