统一内存(Unified Memory)的基本概念
统一内存是可从系统中的任何处理器访问的单个内存地址空间。这种硬件/软件技术允许应用程序分配可以从CPUs或GPUs 上运行的代码读取或写入的数据。
分配统一内存非常简单,只需将对 malloc或 new 的调用替换为对 cudaMallocManaged() 的调用,这是一个分配函数,返回可从任何处理器访问的指针。或关键字的方法。见下。
注:统一内存必须要加上“同步”这一功能,此处使用同步函数
统一内存的实现方法:
1 cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags=0);
2 __managed__
优点
认为最大的优点:不需要malloc、memcpy和fr