NVIDIA提供GPUDirect来减少内存传输开销。我想知道AMD/ATI是否有类似的概念?具体来说:
1. AMD的GPU在与网络卡进行接口时,是否避免了第二次内存传输,如此处所述。如果图形在某个点丢失,这里描述了GPUDirect在从一台机器上的GPU获取数据并传输到网络接口时的影响:使用GPUDirect,GPU内存直接传输到主机内存,然后直接传输到网络接口卡。没有GPUDirect,GPU内存传输到主机内存的一个地址空间,然后CPU必须进行复制,将内存复制到另一个主机内存地址空间,然后才能传输到网络卡。
2. AMD的GPU是否允许在同一PCIe总线上共享两个GPU时进行P2P内存传输,如此处所述。如果图形在某个点丢失,这里描述了GPUDirect在同一PCIe总线上的GPU之间传输数据时的影响:使用GPUDirect,数据可以直接在同一PCIe总线上的GPU之间传输,而无需经过主机内存。没有GPUDirect,数据始终必须返回到主机,然后才能传输到另一个GPU,无论该GPU位于何处。
编辑:顺便说一句,我不太确定GPUDirect到底有多少是虚幻的,有多少是真正有用的。我从来没有听说过有GPU程序员在实际中使用它。对此的想法也欢迎。
1. AMD的GPU在与网络卡进行接口时,是否避免了第二次内存传输,如此处所述。如果图形在某个点丢失,这里描述了GPUDirect在从一台机器上的GPU获取数据并传输到网络接口时的影响:使用GPUDirect,GPU内存直接传输到主机内存,然后直接传输到网络接口卡。没有GPUDirect,GPU内存传输到主机内存的一个地址空间,然后CPU必须进行复制,将内存复制到另一个主机内存地址空间,然后才能传输到网络卡。
2. AMD的GPU是否允许在同一PCIe总线上共享两个GPU时进行P2P内存传输,如此处所述。如果图形在某个点丢失,这里描述了GPUDirect在同一PCIe总线上的GPU之间传输数据时的影响:使用GPUDirect,数据可以直接在同一PCIe总线上的GPU之间传输,而无需经过主机内存。没有GPUDirect,数据始终必须返回到主机,然后才能传输到另一个GPU,无论该GPU位于何处。
编辑:顺便说一句,我不太确定GPUDirect到底有多少是虚幻的,有多少是真正有用的。我从来没有听说过有GPU程序员在实际中使用它。对此的想法也欢迎。
MPI_Send
和MPI_recv
并将GPU内存指针作为参数传递,一切“都能正常工作”。 - talonmies