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 / 1545812
Accepted
SuperCiocia
SuperCiocia
Asked: 2020-04-27 00:29:50 +0800 CST2020-04-27 00:29:50 +0800 CST 2020-04-27 00:29:50 +0800 CST

A GPU pode usar a RAM principal do computador (como uma extensão)?

  • 772

Eu tenho um laptop com uma GPU dedicada, Nvidia Quadro P3200. Tem 6 GB de RAM.

O laptop também possui 32 GB de RAM “normal” (CPU?).

Estou planejando usar a GPU para computação paralela, executando simulações de física. Alguns deles envolvem arrays bem grandes.

Eu só estou querendo saber, se a memória total (todas as variáveis ​​e todas as matrizes) no meu kernel atingir 6 GB da RAM da GPU, posso de alguma forma usar a da CPU?

Eu não usaria o laptop para mais nada durante o cálculo, portanto, a RAM principal não deveria estar ocupada.

Ps Estou usando um Dell Precision 7530, windows 10.

gpu
  • 5 5 respostas
  • 58434 Views

5 respostas

  • Voted
  1. Best Answer
    Gordan Bobić
    2020-04-27T01:13:32+08:002020-04-27T01:13:32+08:00

    Resposta curta: Não, você não pode.

    Resposta mais longa: a largura de banda e, mais importante, a latência entre a GPU e a RAM no barramento PCIe é uma ordem de grandeza pior do que entre a GPU e a VRAM; CPU.

    A CPU pode usar uma parte da VRAM (parte mapeada na abertura PCI, geralmente 256 MB) diretamente como RAM, mas será mais lenta que a RAM normal porque o PCIe é um gargalo. Usá-lo para algo como troca pode ser viável.

    Costumava ser possível aumentar o tamanho da abertura da memória alterando os bits de cinta no BIOS da GPU, mas não tentei isso desde as GPUs Nvidia Fermi (GeForce 4xx). Se ainda funcionar, também é necessário que seu BIOS esteja preparado para mapear aberturas maiores que o padrão (é altamente improvável que tenha sido testado em um laptop).

    Por exemplo, uma placa de computação Xeon Phi precisa mapear toda a sua RAM na abertura PCI, portanto, precisa de um BIOS com capacidade de 64 bits no host que saiba como mapear aberturas acima do limite tradicional de 4 GB (32 bits).

    • 45
  2. Mokubai
    2020-04-27T01:04:24+08:002020-04-27T01:04:24+08:00

    Sim. Esta é a memória "compartilhada" entre a CPU e a GPU, e sempre haverá uma pequena quantidade necessária como buffers para transferir dados na GPU, mas também pode ser usada como um "backup" mais lento para a placa gráfica em muitos casos. da mesma forma que um arquivo de paginação é um armazenamento de backup mais lento para sua memória principal.

    Você pode encontrar a memória compartilhada em uso no Gerenciador de Tarefas integrado do Windows acessando a guia Desempenho e clicando em sua GPU.

    insira a descrição da imagem aqui

    A memória compartilhada será mais lenta que a memória da GPU, mas provavelmente mais rápida que o disco. A memória compartilhada será a memória da CPU, que pode operar até 30 GB/s em uma máquina razoavelmente nova, mas a memória da GPU provavelmente é capaz de fazer 256 GB/s ou mais. Você também será limitado pelo link entre sua GPU e CPU, a ponte PCIe. Esse pode ser o seu fator limitante e você precisará saber se possui um PCIe Gen3 ou Gen4 e quantas faixas (geralmente "x16") ele está usando para descobrir a largura de banda teórica total entre a memória da CPU e da GPU.

    • 11
  3. Armando Herrera
    2020-04-27T09:53:16+08:002020-04-27T09:53:16+08:00

    Tanto quanto eu sei, você pode compartilhar a RAM do host, desde que seja memória bloqueada por página (fixada) . Nesse caso, a transferência de dados será muito mais rápida porque você não precisa transferir dados explicitamente, apenas precisa sincronizar seu trabalho (com cudaDeviceSynchronize, por exemplo, se estiver usando CUDA).

    Agora, para esta pergunta:

    Eu só estou querendo saber, se a memória total (todas as variáveis ​​e todas as matrizes) no meu kernel atingir 6 GB da RAM da GPU, posso de alguma forma usar a da CPU?

    Não sei se existe uma maneira de "estender" a memória da GPU. Não acho que a GPU possa usar memória fixa maior que a dela, mas não tenho certeza. O que eu acho que você poderia fazer neste caso é trabalhar em lotes. Seu trabalho pode ser distribuído para que você trabalhe apenas em 6 GB por vez, salve o resultado e trabalhe em outros 6 GB? Nesse caso, trabalhar em lotes pode ser uma solução.

    Por exemplo, você pode implementar um esquema de lote simples como este:

    int main() {
    
        float *hst_ptr = nullptr;
        float *dev_ptr = nullptr;
        size_t ns = 128;  // 128 elements in this example
        size_t data_size = ns * sizeof(*hst_ptr);
    
        cudaHostAlloc((void**)&hst_ptr, data_size, cudaHostAllocMapped);
        cudaHostGetDevicePointer(&dev_ptr, hst_ptr, 0);
    
        // say that we want to work on 4 batches of 128 elements
        for (size_t cnt = 0; cnt < 4; ++cnt) {
            populate_data(hst_ptr);  // read from another array in ram
            kernel<<<1, ns>>>(dev_ptr);
            cudaDeviceSynchronize();
            save_data(hst_ptr);  // write to another array in ram
        }
    
        cudaFreeHost(hst_ptr);
    
    }
    
    • 11
  4. Overmind
    2020-04-29T03:53:28+08:002020-04-29T03:53:28+08:00

    Qualquer GPU pode usar a RAM do sistema quando estiver sem sua própria VRAM.

    De maneira semelhante à falta de RAM em um sistema e à paginação de todos os dados em excesso para unidades de armazenamento (SSD/HDD), as GPUs modernas podem extrair texturas ou outros dados da RAM do sistema. Os dados de textura podem ser usados ​​da RAM do sistema pelo barramento PCIe para compensar a falta da VRAM mais rápida.

    Como a RAM do sistema é algumas vezes mais lenta que a VRAM e tem latência muito maior, ficar sem VRAM se traduziria em perda de desempenho e o desempenho também seria limitado pela largura de banda do PCIe.

    Portanto, não é uma questão se é possível ou não, é uma questão de desempenho ao fazê-lo.

    Observe também que muitas GPUs integradas usam RAM do sistema, nem mesmo possuem a sua própria.

    No caso das GPUs, o principal fator em seu desempenho é o software. Um software bem projetado usará a GPU perto de seus limites de FLOPS de saída, enquanto um mal projetado não. Normalmente, o software de computação e hash vem na 1ª categoria. O mesmo vale para alocar VRAM.

    • 3
  5. Rok
    2021-01-19T06:08:32+08:002021-01-19T06:08:32+08:00

    Esta pergunta é atualmente um dos principais resultados de pesquisa ao usar palavras-chave como: Os jogos podem usar RAM em vez de VRAM?

    Então, achei que vale a pena acrescentar que muitos problemas relacionados ao uso de RAM vs. VRAM mudaram com a tecnologia Smart Access Memory, que atualmente é suportada por CPUs AMD Zen 3 (como Ryzen 5 5600X e Ryzen 7 5800X) , e GPUs da série AMD 6000 (como o AMD Radeon RX 6800) e serão suportados nas próximas semanas pelas GPUs da série Nvidia RTX 3000 e, posteriormente, pelas CPUs Intel de 11ª geração, mas a versão da tecnologia da Intel, e o nome usado até mesmo em algumas placas-mãe AMD é Resizable BAR.

    A tecnologia essencialmente fornece mais acesso VRAM à CPU, mas resta saber se as coisas também funcionarão da maneira oposta, onde a GPU pode acessar mais RAM.

    • 0

relate perguntas

  • É seguro manter a GPU em 100% de utilização por muito tempo?

  • Carregamento de GPU NVIDIA 970 a 100% - um NVIDIA 1050 funcionará para esta carga?

  • Ubuntu controla a velocidade do ventilador em várias GPUs Nvidia

  • As pistas PCIe são atribuídas dinamicamente?

  • Erro de barramento encontrado ao tentar executar o código em CUDA

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