0

我想知道 CUDA 中的内存空间分配是如何在 Ubuntu Linux 下实现的。换句话说,cudaMalloc()在 Ubuntu Linux 内部如何工作?用于此功能的系统调用是什么?

4

1 回答 1

0

CUDA 是专有的。CUDA 驱动程序的实现很可能与 OpenCL 相同或相似。但是,虽然 OpenCL 规范是开放的,但实现并不是必需的,并且 NVIDIA OpenCL 驱动程序未开放。

实现可能就像驱动程序提交 malloc 命令一样简单,完全在硬件端处理,内核驱动程序与系统通信以实现统一的虚拟寻址并确定哪些内存驻留在 VRAM 中。软件方面的技术部分可能是避免分配或推迟分配。

研究 pocl可以让您了解事物的外观。不过,NVIDIA 的实现可能会有很大的不同。

于 2013-09-08T01:43:39.563 回答