重点关注问题:
1、nvidia-smi topo -m 是怎么获取topo结构的?调用了什么api?
2、以下接口有什么用,怎么实现的?
nvmlDeveiceGetNvLinkVersion
nvmlDeveiceGetNvLinkCapability
nvmlDeveiceGetNvLinkState
nvmlDeveiceGetNvLinkErrorCounter
nvmlDeveiceResetNvLinkErrorCounters
nvmlDeveiceGetNvLinkRemotePciInfo
nvmlDeveiceGetP2PStatus
3、单机单进程P2P场景使用一下接口,具体有什么用,怎么实现的?
cudaDeviceCanAccessPeer
cudaDeviceEnablePeerAccess
cudaMemcpyPeer
4、以下是单机多进程P2P,具体有什么用,怎么实现的?
cudaIpcGetMemHandle
cudaIpcOpenMemHandle
cudaIpcCloseMemHandle
cudaIpcGetEventHandle
cudaIpcOpenEventHandle
5、NCCL是怎么获取topo结构的?
6、NCCL通过nvml获取本地拓扑,多机拓扑是怎么获取的呢?
7、pytorch如何调用DDP?
8、DDP如何调用NCCP?
9、NCCL如何调用RDMA?
10、怎么理解RING和TREE?