O que acontece quando a memória da GPU não é suficiente?

2

Vamos dizer que eu tenho uma GPU com memória de 1GB, mas meu aplicativo requer 2GB de memória de placa de vídeo, o que acontecerá quando eu executar o programa? O aplicativo pega a memória da RAM? Como ele lida com a memória de vídeo insuficiente?

Por algum motivo, eu ainda sou capaz de executar o aplicativo e percebi que o processo system.exeleva bastante memória (~ 800 MB), não tenho certeza se isso está relacionado à memória de vídeo insuficiente ou há outro problema.

rcs
fonte
1
Eu respondo as três perguntas que eu pude. Sua última pergunta é irrespondível sem mais informações.
Ramhound

Respostas:

6

As GPUs modernas executarão um modo híbrido em que os drivers / GPU iniciam a transmissão de dados de textura da RAM do sistema pelo barramento PCIe para compensar a RAM "ausente". Como a RAM do sistema é de 3 a 5 vezes mais lenta que a GDDR5 com latência muito maior, a falta de "VRAM" se traduziria em uma aplicação mais lenta e perda significativa de FPS.

No entanto, o desempenho será limitado pelo bandwitdh PCIe (6 GB / s).

Ao programar com o kit de ferramentas CUDA (v2.2 +), isso é conhecido como cópia zero .

Aqui está o código para isso, para quem está curioso como 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);

Leia mais em: http://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#ixzz3nEbijjQZ

DrZoo
fonte
1

O que vai acontecer quando eu executar o programa?

Ele usará 100% da VRAM disponível para o seu sistema. Ele funcionará sem problemas porque foi implementado para usar a memória do sistema também ou porque você não tem VRAM suficiente para se comportar de maneiras inesperadas.

O aplicativo pega a memória da RAM?

Se o aplicativo exigir 2 GB de VRAM, ter mais memória do sistema não ajudará, a menos que o aplicativo tenha sido projetado para isso.

Como ele lida com a memória de vídeo insuficiente?

Isso depende inteiramente da implementação que o autor do aplicativo escolhe implementar.

Ramhound
fonte
Muitas GPUs modernas são executadas no modo híbrido e têm permissão para acessar a memória do host se a GPU ficar sem VRAM.
DrZoo