相关文章推荐
酷酷的小蝌蚪  ·  python 使用git clone - ...·  7 月前    · 
傲视众生的拐杖  ·  python3.6界面设计 ...·  1 年前    · 
刀枪不入的开心果  ·  php curl ...·  1 年前    · 

cuda zero-copy

cudaHostAlloc(&data, size, cudaHostAllocMapped);
std::cout << "data = " << data << std::endl;
// deviceData == data, 下面步骤多此一举
float* deviceData = nullptr;
cudaHostGetDevicePointer((void **)&deviceData, (void *)data, cudaHostRegisterDefault);
std::cout << "deviceData = " << deviceData << std::endl;

就没人验证下吗? 到处都是这样写

有的甚至还去调用 cudaMemcpy() 简直了

GPUS开发者:CUDA优化的冷知识10 | GPU卡和Jetson上显存优化的特色

经过循环 10000 次测试, 如果不调用 cudaFreeHost(data); 只有内存一直增加, 显存根本不变

这个时候有人就要问 cudaHostGetDevicePointer 这个函数是用来干什么的.

事实上, 还有个函数可以把host分配的内存作为page-locked memory

cudaHostRegister(data, size, cudaHostRegisterDefault);