BT

A sua opinião é importante! Por favor preencha a pesquisa do InfoQ!

Especificação do C++ AMP da Microsoft: buscando diminuir barreiras ao paralelismo de dados

| por Jeff Martin Seguir 6 Seguidores , traduzido por Reinaldo Braga Seguir 0 Seguidores em 14 fev 2012. Tempo estimado de leitura: 2 minutos |

Para melhorar a experiência das pessoas que acessam o InfoQ Brasil, nós criamos uma série de funcionalidades que te permitem ficar pode dentro das últimas tendências e das novidades de seu interesse, sem que você seja incomodado por coisas irrelevantes. Receba e-mails periódicos e notificações sobre seus tópicos favoritos!

O lançamento da especificação (PDF em inglês) do C++ AMP, ou Paralelismo Maciço Acelerado na sigla em inglês, coincide com o evento GoingNative 2012 da empresa. O C++ AMP é descrito como "um modelo de programação que permite a aceleração de código C++, em hardware com paralelismo de dados". O exemplo mais comum deste tipo de hardware seria a GPU (unidade de processamento gráfico) de uma placa gráfica separada, além da capacidade de usar CPUs com vários núcleos e tecnologia SSE como alternativa.

A Microsoft afirma que o modelo de programação C++ AMP:

Traz controle explícito sobre: copiar dados entre a CPU e o acelerador, e os cálculos realizados na GPU. Pode-se gerenciar explicitamente toda a comunicação entre a CPU e o acelerador, e essa comunicação pode ser síncrona ou assíncrona. As operações executadas no acelerador são representadas por arrays multidimensionais, funções de alto-nível para manipulação de matrizes, operações de indexação multidimensional e outras abstrações de alto nível, tudo isso toma como base um grande subconjunto da linguagem de programação C++. O modelo de programação contém múltiplas camadas, de modo que se possa balancear o custo/benefício entre facilidade de uso e máximo desempenho.

A implementação da Microsoft pode ser usada em qualquer sistema rodando DirectX 11; se o DirectX não estiver instalado, uma implementação não-C++ seria executada. A Microsoft não pretende que o C++ AMP seja somente para Windows, uma vez que "apoia e incentiva qualquer pessoa a implementar a especificação do C++ AMP em qualquer plataforma" (veja o original). Até agora, o projeto recebeu contribuições da Nvidia e da AMD. Para incentivar outras implementações, a Microsoft lançou a toda especificação do C++ AMP sob os termos da Microsoft Community Promise.

A interoperabilidade entre o C++ AMP e o Direct 3D é suportada na implementação da Microsoft, mas não é exigida pela especificação. A interoperabilidade com OpenGL não é suportada, e uma recente postagem pelo desenvolvedor Daniel Moth indica que esta implementação não está próxima, pois, segundo ele, ninguém da equipe do projeto tem experiência com OpenGL.

Os desenvolvedores que desejam experimentar o novo modelo de programação C++ AMP podem fazer o download do Visual Studio Developer Preview 11 e analisar o código de exemplo apresentado por esta entrada do blog MSDN. (Este código também inclui exemplos de como os desenvolvedores .NET podem utilizar o C++ AMP a partir do C#.)

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT