BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Especificação do C++ AMP da Microsoft: buscando diminuir barreiras ao paralelismo de dados

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

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

Conteúdo educacional

BT