sexta-feira, 15 de novembro de 2013

Nvidia revela CUDA 6, junta-se CPU-GPU partido memória compartilhada


Entrega Email: quatro passos para obter mais e-mail para a caixa de entrada


Nvidia anunciou a versão mais recente de sua linguagem de programação GPU, CUDA 6, que acrescenta uma capacidade de "memória Unificado" que, como o próprio nome indica, alivia os programadores dos ensaios e atribulações de ter que copiar manualmente os dados e para trás entre CPU separado e espaços de memória da GPU.


CUDA 6 Unified Memory schematic

CUDA 6 tolos CPU de um sistema e GPU em pensar que eles estão mergulhando no mesmo banco de memória compartilhada








"Os programadores sempre achei difícil de GPUs programa", Sumit Gupta , gerente geral da HPC focada Tesla biz da Nvidia disse ao The Reg ", e uma das maiores razões para isso - na verdade, esta é a razão - foi que havia sempre dois espaços de memória: a CPU ea memória e GPU e sua própria memória ".


Sendo software, CUDA, claro, não faz nada para unir fisicamente aqueles dois espaços de memória - a CPU ainda tem sua própria memória ea GPU tem o seu próprio pedaço. Para um programador usando CUDA 6, no entanto, essa distinção desaparece: todo o acesso à memória, entrega e gestão passa "debaixo das cobertas", para emprestar a frase Nandini Ramani da Oracle usado para descrever Java 8 de abordagem para programação paralela nesta semana AMD desenvolvedor conferência, APU13 .


Do ponto de vista do programador usando CUDA 6, os espaços de memória da CPU e GPU pode também ser fisicamente um e o mesmo. "O desenvolvedor agora pode apenas operar nos dados", diz Gupta.


Em outras palavras, se um dev quer adicionar A para B, e A é na memória da CPU, enquanto B está na memória da GPU, o recém-dev sorte agora pode simplesmente dizer "adicionar A para B", e não dar um figo sobre onde quer bit de dados reside - os activos subjacentes CUDA 6 encanamento vai cuidar de acesso A e B e munging-los juntos.


The 'super simplified' memory management code introduced in CUDA 6

Antes CUDA 6, da esquerda, e depois, à direita (clique para ampliar)



De acordo com Gupta, esta nova capacidade reduz o esforço de programação por quase 50 por cento. Não sendo um CUDA próprio programador, o repórter Reg vai ter que esperar por relatórios de campo - ou nos comentários do artigo - para julgar a veracidade da afirmação do chefão Tesla.


Para apoiar seu argumento, Gupta disse: "Temos vários programadores que nos disse que o seu maior ponto de dor no primeiro dia foi sempre gerir a movimentação de dados e da memória e do gerenciamento de memória. E, tomando o cuidado de que, fazendo isso automaticamente, temos melhorado significativamente a produtividade do programador. "


Há, obviamente, ainda alguns latência envolvida no movimento dos dados a partir dos quais, por exemplo, o processador pode trabalhar com ele para onde a GPU pode colocar as mãos - ou núcleos - nele, mas o promotor não tem que se preocupar sobre como escrever o código para transferi-lo, nem o compilador tem que lidar com as linhas extras de código que antes eram necessários para realizar esse movimento.


CUDA 6 acrescenta algumas outras sutilezas como novo drop-in bibliotecas que substituem algumas bibliotecas de CPU com GPU bibliotecas, e algumas bibliotecas GPU redesenhados que automaticamente escala em até oito GPUs em um único nó.


Mas Gupta disse-nos que o que devs têm clamado por mais avidamente é para ser liberado das tarefas de gerenciamento de memória, o que Unified Memória oferece.


Com CUDA 6, ele disse: "O programador apenas programas blissfuly". ®


Bootnote


Em um desenvolvimento relacionado, Mentor Graphics anunciou que está adicionando suporte para OpenACC 2.0 em seu compilador GCC, aumentando assim a capacidade de gerar instruções de nível de montagem para GPUs Nvidia em que a ferramenta padrão de indústria.







via Alimentar (Feed)

Nenhum comentário:

Postar um comentário