C++ AMPC++ Accelerated Massive Parallelism (сокращенно C++ AMP) — библиотека, использующая DirectX 11, и открытая спецификация, созданные Microsoft для реализации параллельных программ для гибридных систем на языке C++. Система C++AMP позволяет переносить вычисления на GPU (видеоускорители) без внесения большого количества изменений в программы. Код, который не может запуститься на GPU, например, из-за своей сложности, будет автоматически запущен на центральном процессоре с применением SIMD (SSE) инструкций. Реализация системы от Microsoft (единственная на настоящий момент) включена в Visual Studio 2012 и включает в себя отладчик и профилировщик. Поддержку других платформ и оборудования могли бы реализовать компания Microsoft или другие в будущем. Для изначального релиза C++ AMP от Microsoft требуется ОС Windows 7 или Windows Server 2008 R2.[1] В язык добавлена синтаксическая конструкция « Пример использования: void myFunc() restrict(amp)
{
// Код функции
}
Microsoft или другие будущие производители систем, совместимых с C++ AMP могли бы добавить другие спецификаторы restrict, в дополнение к «amp». Остальная часть C++ AMP доступна через заголовочный файл Также определена глобальная функция Пример C++ функции, использующей C++ AMP для суммирования двух двумерных массивов: void AddArrays(int n, int m, int * pA, int * pB, int * pSum)
{
concurrency::array_view<int,2> a(n, m, pA), b(n, m, pB), sum(n, m, pSum);
concurrency::parallel_for_each(sum.extent, [=](concurrency::index<2> i) restrict(amp)
{
sum[i] = a[i] + b[i];
});
}
См. такжеПримечания
Литература
Ссылки
|
Portal di Ensiklopedia Dunia