rcs*_*rcs 2 memory gpu graphics-card
假设我有一个内存为 1GB 的 GPU,但我的应用程序需要 2GB 的显卡内存,当我运行程序时会发生什么?应用程序是否从 RAM 中获取内存?显存不足如何处理?
出于某种原因,我仍然能够运行该应用程序,并注意到该进程system.exe占用了相当多的内存(~800 MB),不确定这是否与视频内存不足或其他问题有关。
现代 GPU 将运行混合模式,其中驱动程序/GPU 开始通过 PCIe 总线从系统 RAM 流式传输纹理数据,以弥补“缺失”的 RAM。由于系统 RAM 比 GDDR5 慢 3-5 倍且延迟更高,“VRAM”用完将转化为更慢的应用程序和显着的 FPS 损失。
但是,性能将受到 PCIe 带宽 (6 GB/s) 的限制。
使用 CUDA 工具包 (v2.2+) 进行编程时,这称为零复制。
这是它的代码,对于任何好奇它是如何工作的人。
float *a_h, *a_map;
cudaGetDeviceProperties(&prop, 0);
if (!prop.canMapHostMemory)
exit(0);
cudaSetDeviceFlags(cudaDeviceMapHost);
cudaHostAlloc(&a_h, nBytes, cudaHostAllocMapped);
cudaHostGetDevicePointer(&a_map, a_h, 0);
kernel<<<gridSize, blockSize>>>(a_map);
Run Code Online (Sandbox Code Playgroud)
阅读更多信息:http : //docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#ixzz3nEbijjQZ
| 归档时间: |
|
| 查看次数: |
11704 次 |
| 最近记录: |