CUDAデータ転送にピン留めされたメモリを使用すると、データ転送が大幅に高速化されます。Linuxでは、これを実現するための基盤となるシステムコールはmlockです。mlockのmanページから、ページをロックするとスワップアウトされないことが示されています。
mlock()は、addrから始まり、lenバイトまで続くアドレス範囲のページをロックします。指定されたアドレス範囲の一部を含むすべてのページは、呼び出しが正常に戻ったときにRAMに常駐することが保証されています。
私のテストでは、システムに数ギガの空きメモリがあったため、メモリページがスワップアウトされるリスクはありませんでしたが、それでもスピードアップが見られました。誰かがここで実際に何が起こっているのか説明できますか?、洞察や情報は大歓迎です。