Корпорация Microsoft опубликовала новые спецификации C++ AMP или Accelerated Massive Prallelism - новой системы гетерогенного программирования на C++, предназначенной для создания программ с параллельным программным кодом. Подобные программы эффективно загружают современные многоядерные процессоры несколькими одновременными потоками данным, выполняемых независимо друг от друга. Впервые C++ AMP появилась в июне прошлого года, тогда в Microsoft заявили, что готовы сделать спецификации AMP открытыми для всех.
Сам формат AMP был создан в Microsoft, но при активной поддержке компаний AMD и Nvidia. Спецификации AMP поддерживают написание программ, одновременно загружающих как мощности центрального процессора(ов), так и графических чипов с поддержкой Direct 3D. В ближайших версия обещана также поддержка форматов OpenGL/OpenCL.
По словам представителей компании, нынешний вариант содержит только открытые методы и не использует каких-либо патентов, а также прочих ограничительных моментов, которые бы могли затруднить его использование. На практике это означает, что независимых программистов за использование C++ AMP к суду не привлечет ни Microsoft, ни кто-либо другой.
С концептуальной точки зрения AMP несколько напоминает OpenCL, так как последний тоже создавался для гетерогенного параллельного программирования и также не привязан к оборудованию какого-то одного производителя. Однако OpenCL - это существенно более низкоуровневая система и она не работает на основе вызова регулярных функций, а вручную компилируется в среде выполнения. Кроме того, буферы данных OpenCL должны в явном виде поддерживаться видеокартой.
Спецификации и более подробное описание доступны по адресу http://blogs.msdn.com/b/nativeconcurrency/archive/2012/02/03/c-amp-open-spec-published.aspx
Источник: CyberSecurity
|