c - GPU 上是否有内存保护

标签 c memory-management gpu gpgpu

我对 GPU 的经验不多,所以请原谅我的无知。如今,GPU 被用作用于通用编程的 GPGPU。但我想知道GPU是否有内存保护和虚拟化机制。我的意思是,例如,你在一个 GPU 上运行两个内核,如果你没有虚拟化和内存保护,一个内核可以很容易地写入另一个内核的地址。这个问题是如何解决的?有没有在提高 GPU 上运行的代码的可靠性方面做任何工作?是否可以通过某种沙盒机制同时运行两个内核?

最佳答案

内存由视频内存管理器管理,它可以是驱动程序或任何你想要的,只要它管理内存,我相信有不同的方法来管理这个内存,但我知道有些人使用共享内存架构 (SMA)。虚拟地址空间可用于隔离进程。虚拟地址可以转换为存储实际位/字节的逻辑地址。通常由经理或司机决定流程的地址。

关于c - GPU 上是否有内存保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414781/

相关文章:

c++ - TensorFlow 自定义分配器和从 Tensor 访问数据

c - 如何通过使用C中的系统调用来缓冲文件中的行?

Python numpy.fft 改变步幅

opencv - 如何使用 CUDA 和 OpenCV 访问 cv::gpu::GpuMat 矩阵上的元素?

c# - 在 Atom 上网本上使用 WPF 的高 CPU

c - 不理解这个反转数字数字的递归函数

C - 可以释放动态分配的数组的各个内存地址吗?

language-agnostic - "Out Of Memory"是可恢复的错误吗?

c# - String to Char* 无内存泄漏

gpu - 尝试 GPU 编程需要什么 PC 硬件?