1

デバイス (GPU、NIC、ストレージなど) 間でグローバル IO 空間を実現する可能性を探っています。これは、このスレッドで尋ねられた質問 - 2 つの PCI デバイス間の直接通信- に要約される可能性があります。

メモリ領域が固定され、nvidia_p2p_* 呼び出しを使用して物理アドレスが取得される Nvidia GPUDirect を読んでいます。GPU の物理アドレスを使用して、データ転送用のサードパーティ デバイスの DMA コントローラーをプログラムする方法を正確に理解できません。CPU メモリ空間とは異なり、GPU メモリが表示されないという事実に混乱しています (これは、dma コントローラーのプログラミングに関する知識が乏しいためかもしれません)。これに関する指針は本当に役に立ちます。

また、多くの PCI デバイスは PCI BAR の観点からメモリ領域を公開します (たとえば、GPU は 256M のメモリ領域を公開します)。この BAR メモリ領域がマップされるデバイスの物理アドレスを知る方法はありますか? BAR メモリ領域と、nvidia ドライバーを介して CUDA ランタイムに割り当てられたメモリとの間にオーバーラップはありますか?

前もって感謝します。

4

0 に答える 0