AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1543244
Accepted
Hearth
Hearth
Asked: 2020-04-19 11:26:42 +0800 CST2020-04-19 11:26:42 +0800 CST 2020-04-19 11:26:42 +0800 CST

Para que exatamente é usado o VRAM?

  • 772

Meu laptop tem uma boa GPU com RAM de vídeo dedicada. Mas notei jogando Minecraft que o computador parece não estar usando para nada. Apenas cerca de 100 MB são usados ​​de acordo com o Gerenciador de Tarefas do Windows, enquanto consome cerca de metade da minha RAM normal.

Eu pensei que a VRAM seria usada para armazenar modelos, texturas e outras coisas, o que reduziria a demanda de RAM normal; se for verdade, as texturas e modelos devem ser bem menores do que eu pensava. (observe que esta é uma instalação altamente modificada, com modelos e texturas muito mais complexos do que o Minecraft padrão.)

Se não for verdade, para que serve a VRAM? Existe alguma maneira de fazer com que meu computador faça um melhor uso dele?

memory graphics-card
  • 4 4 respostas
  • 9162 Views

4 respostas

  • Voted
  1. Best Answer
    Sam Forbis
    2020-04-19T11:36:06+08:002020-04-19T11:36:06+08:00

    A RAM de vídeo foi projetada especificamente para armazenar tudo o que for necessário para renderizar um quadro de vídeo. Ao jogar, isso inclui texturas, modelos e outros dados específicos de gráficos, como informações de sombreamento e mapas de iluminação. Geralmente, nenhum desses dados é armazenado na RAM do sistema principal, como você mencionou, embora a VRAM não seja projetada especificamente para reduzir a demanda da RAM regular.

    O Minecraft é um animal um pouco diferente da maioria dos jogos. Presumo que você esteja jogando a versão Java para PC. Java é uma linguagem de programação (relativamente) de alto nível em comparação com outras, como C ou C++, nas quais outros jogos geralmente são escritos. Por causa disso, Java está inerentemente em desvantagem quando se trata de requisitos de uso de memória. É por isso que a memória principal do sistema sofre um impacto tão grande ao executar o Minecraft, um programa com muitos recursos escrito em Java.

    Não estou surpreso que o uso de RAM de vídeo seja baixo - e, sinceramente, você também não deveria. Como ele serve apenas para armazenar texturas e modelos, e o Minecraft é, enfim, um jogo baseado em cubos e texturas 16x16, acho que dá para perceber porque o uso de VRAM é tão baixo.

    • 36
  2. user1165206
    2020-04-19T12:43:22+08:002020-04-19T12:43:22+08:00

    O Java Minecraft é pesado para a CPU, mas a GPU realmente tem muito pouco a fazer, em termos de gráficos é muito simples e os recursos gráficos são muito pequenos em comparação com… Call of Duty. Quando digo pequeno, quero dizer muito pequeno, 100 MB parece certo.

    Por causa do design de “bloco” do jogo, você pode preencher a tela com relativamente poucos recursos necessários. É como usar “Duplo Lego” em vez de “Lego Technics”.

    Java é uma linguagem “interpretada”, o que significa que não é compilada em instruções nativas. Portanto, quando é executado, ele precisa de uma máquina virtual para obter as instruções (ou bytecode) em algo que o processador entenderá. Sua CPU está fazendo mais trabalho do que a GPU.

    • 10
  3. user515655
    2020-04-20T16:57:38+08:002020-04-20T16:57:38+08:00

    A VM Java, como a usada no Minecraft, parecerá estar usando muita RAM devido à maneira como reservará grandes blocos de RAM do sistema antes de usá-la . Isso parece ao sistema operacional como o aplicativo realmente usando tanta RAM. O Java usa seu próprio Heap de memória, que funciona de forma independente do sistema operacional no qual está sendo executado. (ainda usará chamadas para aumentar o Heap)

    O carregamento de textura no minecraft é bastante baixo. O que também pode estar acontecendo é a maneira como seu driver OpenGL está alocando texturas. Por exemplo, no OpenGL 3.3, os buffers da GPU podem ser mapeados para a memória, de modo que uma gravação e uma descarga subsequente nessa seção de memória façam com que ela apareça automaticamente dentro da VRAM da GPU. A parte complicada disso é se esse buffer está realmente apenas no lado da GPU ou se está realmente no lado da CPU e da GPU e o driver está simplesmente copiando-o de um buffer para outro. A especificação OpenGL diz que o driver pode fazer a seu critério. O resultado é que o lado da CPU/Java aloca muito espaço de endereço para o buffer e podemos ter duas cópias do buffer: uma no lado da CPU e outra no lado da GPU.

    Também é possível que o programa java ainda esteja armazenando as imagens na RAM em seu próprio cache e, em seguida, carregando/descarregando para/da GPU conforme necessário. Isso exigiria que o uso de RAM fosse sempre pelo menos o mesmo, se não maior do que o uso de VRAM.

    Drivers de vídeo e iterações mais recentes do OpenGL oferecem suporte à arquitetura HSA , que permite que o VRAM atue como um cache - o programa nem mesmo "carrega" uma textura para a GPU - ele simplesmente passa um endereço de memória para uma textura já carregada ou até mesmo referencia a textura de um arquivo que foi alocado na memória virtual. Isso torna a avaliação do uso de recursos mais difícil porque agora, em vez de simplesmente usar RAM ou VRAM, podemos estar usando apenas faixas de endereço de memória em alguns casos, e algumas dessas faixas podem ser atribuídas à RAM e outras ao disco, e a VRAM pode parecer ilimitada ou zero usado, pois, como cache, ele armazena apenas páginas usadas recentemente que podem ser alteradas arbitrariamente!

    • 8
  4. Nathan Goings
    2020-04-21T20:06:00+08:002020-04-21T20:06:00+08:00

    Não se trata de codificação ruim.

    Eu gostaria de apontar algo. As placas gráficas modernas podem processar uma grande parte do Minecraft na própria placa. Sistemas como PhysX tentam fazer exatamente isso - CUDA, OpenCL etc. Consequentemente, isso aumentaria o uso de VRAM.

    Aqui estão algumas coisas que poderiam facilmente (relativamente falando) ser transferidas para o driver gráfico:

    • Marque atualizações de blocos (pense em blocos de folhas morrendo, atualizações de iluminação, etc.)
    • Geração processual
    • Atualizações fluidas
    • Redstone
    • Física

    No entanto, o processamento da GPU em uma linguagem shader (GLSL, HLSL, SPIR-V) é muito mais difícil e sujeito a erros do que uma linguagem de alto nível como Java. Assim, todas essas coisas são executadas na CPU.

    Embora vários jogos tenham implementado um pouco disso em GPUs antes, o Minecraft não tinha o grande pool de recursos qualificados que os títulos AAA têm.


    A matemática

    Suponha que o Minecraft use um esquema de cores de 32 bits.

    32 bits per color
    4 colors per pixel (red, green, blue, alpha)
    8 bits per byte
    (32 bits * 4 colors per pixel) / 8 bits per byte = 128 / 8 = 16 bytes per pixel.
    
    100MB / 16 bytes per pixel = 6,250,000 pixels
    sqrt(6250000) = 2500x2500 image resource in GPU (uncompressed)
    2500 pixels wide|tall / 16 pixels wide|tall = 156.25 tiles wide|tall (assuming 16x16 tile size)
    156.25 tiles wide * 156.25 tiles tall = ~24,414 16x16 tiles.
    

    Em resumo, você pode armazenar aproximadamente 24.414 blocos de 16 x 16 em um recurso de imagem descompactado de 32 bits na VRAM.

    Este exercício realmente me ajudou a compreender por que Factorio tinha problemas com suas folhas de sprite

    • 2

relate perguntas

  • Quantos monitores posso usar ao mesmo tempo?

  • Sistema que pode ler o disco rígido e gravar exclusivamente na RAM?

  • Comprando o tipo certo de RAM para laptop [fechado]

  • Ordem de instalação da RAM. 8GB E 16GB. Qual deles deve estar no slot 0?

  • CPU, RAM ou placa-mãe? (PEBCAK!)

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve