Я наблюдаю значительное ускорение передачи данных, когда использую закрепленную память для передачи данных CUDA. В Linux основным системным вызовом для достижения этой цели является mlock. На странице руководства mlock говорится, что блокировка страницы предотвращает ее замену:
mlock () блокирует страницы в диапазоне адресов, начиная с addr и продолжая len байтов. Все страницы, которые содержат часть указанного диапазона адресов, гарантированно будут резидентными в ОЗУ после успешного возврата вызова;
В моих тестах у меня было несколько гигов свободной памяти в моей системе, поэтому никогда не было никакого риска, что страницы памяти могли быть выгружены, но я все же наблюдал ускорение. Может ли кто-нибудь объяснить, что здесь происходит на самом деле? Любое понимание или информация очень ценятся.