¿Qué pasa cuando la memoria de la GPU no es suficiente?

¿Qué pasa cuando la memoria de la GPU no es suficiente?

Digamos que tengo una GPU con memoria de 1 GB, pero mi aplicación requiere 2 GB de memoria de tarjeta de video, ¿qué pasará cuando ejecute el programa? ¿La aplicación toma la memoria de la RAM? ¿Cómo maneja la memoria de video insuficiente?

Por alguna razón, todavía puedo ejecutar la aplicación y noté que el proceso system.execonsume bastante memoria (~800 MB), no estoy seguro si esto está relacionado con la memoria de video insuficiente o si hay otro problema.

Respuesta1

Las GPU modernas ejecutarán un modo híbrido en el que los controladores/GPU comenzarán a transmitir datos de textura desde la RAM del sistema a través del bus PCIe para compensar la RAM "faltante". Dado que la RAM del sistema es entre 3 y 5 veces más lenta que GDDR5 y tiene una latencia mucho mayor, quedarse sin "VRAM" se traduciría en una aplicación más lenta y una pérdida significativa de FPS.

Sin embargo, el rendimiento estará limitado por el ancho de banda PCIe (6 GB/s).

Cuando se programa con el kit de herramientas CUDA (v2.2+), esto se conoce comocopia cero.

Aquí está el código, para cualquiera que tenga curiosidad sobre cómo funciona.

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);

Lea mas en:http://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#ixzz3nEbijjQZ

Respuesta2

¿Qué pasará cuando ejecute el programa?

Utilizará el 100% de la VRAM disponible para su sistema. Funcionará sin problemas porque se implementó para usar también la memoria de su sistema o porque no tiene suficiente VRAM y podría comportarse de maneras inesperadas.

¿La aplicación toma la memoria de la RAM?

Si la aplicación requiere 2 GB de VRAM, tener más memoria del sistema no ayudará a menos que la aplicación haya sido diseñada para hacerlo.

¿Cómo maneja la memoria de video insuficiente?

Esto depende totalmente de la implementación que el autor de la aplicación elija implementar.

información relacionada