Como descobrir a quantidade de memória do sistema alocada para a placa de vídeo?

5

No painel de controle da NVIDIA:

  • Memória gráfica total disponível: 3839 MB
  • Memória de vídeo dedicada: 256 MB de DDR2
  • Memória de vídeo do sistema: 64 MB
  • Memória do sistema compartilhada: 3519 MB

De dxdiag :

  • Memória de exibição: 3815 MB
  • Memória dedicada: 231 MB
  • Memória compartilhada: 3583 MB

Aparentemente meu sistema dedica 256MB e compartilha 3.5GB com a placa gráfica integrada ... 3.5GB é enorme! Como posso descobrir quanto desse 3,5 GB é realmente alocado para a placa gráfica? (e, portanto, não está disponível para aplicativos)

Especificação:

  • SO: Windows 7 de 64 bits
  • RAM: 8 GB
  • GPU: GeForce 9300 mGPU (nForce 730i)
por netvope 23.03.2011 / 06:38

3 respostas

5

Isso é normal para GPUs móveis. Em um dado momento, a nVidia criou um sistema no qual a placa poderia usar sua própria RAM e RAM do sistema. Depois disso, eles apresentaram algumas placas gráficas com 32 MiB e 64 MiB de RAM. Eles poderiam usar a RAM do sistema, então sua quantidade total de RAM seria 128 MiB e 256 MiB, se bem me lembro. Basicamente, a memória de vídeo dedicada é a RAM da placa e a memória compartilhada é a RAM principal que a placa pode usar quando precisa de memória extra. Esse sistema permaneceu em suas placas gráficas móveis. Tanto quanto sei, não há como verificar se o cartão está usando essa memória ou não. Eu mesmo tenho uma GeForce 9500M GS em um sistema de 4 GiB e nunca tive problemas com a placa consumindo qualquer RAM do meu sistema. No meu computador, a RAM compartilhada é 1790 MiB, então pode ser que o driver defina automaticamente uma determinada porcentagem da RAM do sistema como compartilhada.

EDIT: Depois de fazer alguns cálculos, parece que a memória compartilhada está configurada para cerca de 43,7% da RAM do sistema principal.

Aqui é um artigo sobre essa tecnologia no site da NVIDIA. Aqui é outro artigo interessante sobre a tecnologia.

Pelo que eu li, você não terá nenhum problema com o TurboCache usando a memória RAM necessária porque ele usa apenas a RAM não usada por outros aplicativos e só usa a RAM quando precisa fazê-lo e quando melhorará o desempenho.

    
por 23.03.2011 / 10:19
2

Pelo que entendi de memória de vídeo compartilhada, isso é aplicável apenas a chips de memória incorporados em placas-mãe que não possuem sua própria RAM dedicada.

O sistema separa uma pequena parte de sua memória para usar como memória de vídeo.

Se você tiver uma placa de vídeo 'apropriada' (ou seja, uma que seja conectada a um slot), o computador não estará compartilhando a memória do sistema com a placa de vídeo.

Se a placa de vídeo estiver na placa, você deverá ser capaz de selecionar a quantidade de memória em uso pela placa de vídeo no BIOS do computador.

Os números que você está vendo em dxdiag são as quantidades de memória que o software (DirectX) tem acesso. Parece que você tem uma placa gráfica de 256 MB e o DirectX é capaz de usar 3,5 GB de memória do sistema para coisas gráficas, como o armazenamento em cache de texturas, etc.

    
por 23.03.2011 / 09:43
1

Seu chipset de vídeo tem seus próprios 256MB de RAM fisicamente conectados à própria GPU. A GPU também tem a capacidade de compartilhar RAM com o sistema, até 3,5 GB ou mais. Mas quase nunca faz isso, e quando isso acontece, é apenas pelo tempo necessário para concluir a operação usando essa memória.

O acesso da GPU à memória compartilhada do sistema é tão lento que não faz sentido manter qualquer mapeado. É muito mais lógico que a CPU acesse a memória dedicada da GPU quando necessário. (Principalmente porque isso não vai competir com outros usos da memória do sistema quando a GPU vai acessá-lo.)

Para fins práticos, existem apenas duas razões para manter a capacidade de memória compartilhada. Uma delas é manter a capacidade de operar a GPU sem nenhuma memória dedicada. O outro é apenas para poder dizer que eles suportam "até 3,75 GB de memória de vídeo" ou algo assim para fins de marketing.

    
por 25.08.2011 / 01:14