CUDA에서 우리는 고정 된 메모리를 사용하여 호스트에서 malloc 호스트를 통해 할당 된 기본 메모리보다 더 효율적으로 호스트에서 GPU로 데이터를 복사 할 수 있습니다. 그러나 고정 된 메모리에는 두 가지 유형이 있습니다 (기본 고정 메모리 및 제로 사본 고정 메모리).기본 고정 메모리 대 제로 - 복사 메모리
일반 전송으로 두 배 빠른 속도로 메모리 복사를 호스트에서 GPU에 데이터를 고정하므로 이점 (우리는 페이지 잠금 충분히 호스트 메모리가 제공)
가 고정의 다른 버전에서는 확실히 거기에 기본 zero-copy 메모리과 같이, 호스트에서 GPU의 DRAM으로 데이터를 복사 할 필요가 없습니다. 커널은 호스트 메모리에서 직접 데이터를 읽습니다.
제 질문은 : 이러한 고정 메모리 유형이 더 나은 프로그래밍 습관입니다.
예. 나는 'CUDA by example'이라는 책에서 거의 같은 설명을 발견했다. 그들은 맵핑 된 메모리가 가장 좋은 이유는 a) CPU와 GPU가 동일한 메모리를 공유하는 ION 플랫폼과 같은 통합 그래픽을 가지고있을 때 커널이 데이터를 정확히 한 번 읽고 쓰는 경우입니다. – jwdmsd