Tem como limitar quanto de ram a igpu intel hd vai pegar no sistema?
Não. O vídeo integrado sempre irá usar a quantidade de RAM que for necessária. Do contrário, o computador congelaria.
Detalhando um pouco mais… Consideremos um processador ou chipset equipado com vídeo integrado. Na BIOS, é possível que exista - mas nem sempre - uma opção de definir a quantidade pré-alocada de RAM para o vídeo. Isso não significa que aquela será a quantidade máxima de RAM usada pelo vídeo, mas sim que aquela quantidade ficará reservada para o vídeo e o restante do sistema não poderá usá-la como RAM.
Digamos que você está executando um jogo que, em determinado momento, precisa de 1,8GB de memória de vídeo. Se a quantidade pré-alocada fosse, por exemplo, 1GB, o vídeo integrado usaria o 1GB pré-alocado e pegaria mais 800 MB do restante da RAM. Se a quantidade pré-alocada fosse, por exemplo, 2GB, o vídeo usaria 1,8GB da pré-alocação e os outros 200 MB ficariam reservados.
É muito comum encontrar vídeos no YouTube contendo informações incorretas sobre isso, sugerindo que aumentar a pré-alocação poderia resultar em aumento de desempenho. Não é assim que isso funciona e essa opção só existe por conta de alguns contextos específicos, conforme eu explico neste tópico:
É importante ressaltar que esse compartilhamento de memória é realidade mesmo para placas de vídeo dedicadas. Assim que a VRAM dedicada chega ao limite, a placa começa a fazer uso da RAM da máquina. Naturalmente que, quando isso começa a ocorrer, há perda de desempenho, já que a RAM tende a ser muito mais lenta que a VRAM. Esse recurso existe há décadas e serve justamente para impedir que o sistema trave.
Podemos, de certa forma, fazer analogia com o recurso de swap: se ele não existir, a máquina precisa encerrar processos ou irá travar por falta de memória. Com a memória gráfica é a mesma coisa.
Em resumo: se a BIOS do seu laptop permitir, você pode reduzir a pré-alocação de memória gráfica para o menor valor disponível. Isso vai permitir que o sistema use a quantidade que antes estava reservada e bloqueada, mas não impedirá o vídeo integrado de usar o quanto for necessário para funcionar.
O meu sistema está travando sem motivo aparente (nem no journalctl aparece nada) e pensei que pudesse ser a gpu engolindo toda a ram por algum bug, por mostrar que pode usar todos os 8 gigas de ram da máquina com o comando glxinfo -B
.
O que se trata desse parametro do kernel para amdgpu?
Tem um aplicativo para terminal chamado nvtop que é basicamente um htop para placa de video, nele você pode ver o consumo de ram que esta sendo utilizado na placa de vídeo e quais processos estão rodando.
O trafego que a GPU tem que fazer entre o barramento de chegar na RAM e ter que passar pelo chipset(ponte norte) na ida e volta causa um atraso que não ocorre se for usado a RAM dedicada da placa de vídeo. Então mesmo que a RAM do pente de memória tivesse a mesma velocidade da memória dedicada ela ainda seria mais lenta devido a este trajeto.
Olhando no olho parece que o trajeto da PCI-Express passando pelo barramento ate a ponte norte é curto mas na verdade é bastante demorado.
É por isso que o CPU tem memória RAM(cache) chamadas de L1, L2, L3, devido a essa demora do barramento e ponte norte para dar comunicação com o pente de memória RAM.
Se esse atraso não fosse significativo essas caches nunca teria passado a existir.
Sem a nova tecnologia da Nvidia da GPU poder ter acesso aos pentes de memória RAM sem passar pela CPU obviamente que o trajeto no barramento maior e o atraso da CPU torna a situação ainda pior.
Acredito que serve exatamente para configurar a pré-alocação, conforme expliquei anteriormente, mas sem precisar acessar a BIOS. Isso não limita o uso de VRAM máximo, mas apenas a quantidade pré-alocada que não poderá ser usada como RAM pelo restante do sistema.