多语言展示
当前在线:1802今日阅读:19今日分享:20

如何分配 pinned memory

虚拟内存(virtual memory)我们都知道,虽然在运行速度上硬盘不如内存,但在容量上内存是无法与硬盘相提并论的。当运行一个程序需要大量数据、占用大量内存时,内存就会被“塞满”,并将那些暂时不用的数据放到硬盘中,而这些数据所占的空间就是虚拟内存。分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”(pages)。当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。[1]分页是磁盘和内存间传输数据块的最小单位.
方法/步骤
2

#include '../common/book.h'#define SIZE    (10*1024*1024)int main( void ) {    float elapsedTime;    float MB = (float)100*SIZE*sizeof(int)/1024/1024;        elapsedTime = cuda_malloc_test( SIZE, true );    printf( 'Time using cudaMalloc:%3.1f ms\n',elapsedTime );    printf( '\tMB/s during copy up:%3.1f\n',MB/(elapsedTime/1000) );        elapsedTime = cuda_malloc_test( SIZE, false );    printf( 'Time using cudaMalloc:%3.1f ms\n',elapsedTime );    printf( '\tMB/s during copy down:%3.1f\n',MB/(elapsedTime/1000) );        elapsedTime = cuda_host_alloc_test( SIZE, true );    printf( 'Time using cudaHostAlloc:%3.1f ms\n',elapsedTime );    printf( '\tMB/s during copy up:%3.1f\n',MB/(elapsedTime/1000) );        elapsedTime = cuda_host_alloc_test( SIZE, false );    printf( 'Time using cudaHostAlloc:%3.1f ms\n',elapsedTime );    printf( '\tMB/s during copy down:%3.1f\n',MB/(elapsedTime/1000) );}

推荐信息