2016-01-23 3 views
19

Я работаю над высокопроизводительным кодом на C++ и использовал как CUDA, так и OpenCL, а в последнее время C++ AMP, которые мне очень нравятся. Тем не менее, я немного обеспокоен тем, что он не разрабатывается и не расширяется и не умрет.Каков текущий статус C++ AMP

Что приводит меня к этой мысли, так это то, что даже блоги MS C++ AMP молчали около года. Глядя на библиотеку алгоритмов C++ AMP http://ampalgorithms.codeplex.com/wikipage/history, похоже, ничего больше не происходит уже больше года.

Единственное, что я увидел, это то, что теперь LLVM поддерживает C++ AMP, поэтому это не только окна, но и все, а не то, что было сказано далеко и широко.

Какая работа происходит, если таковая имеется, о которой вы знаете?

+2

Возможно, вы захотите найти OpenMP 4.0, которые поддерживают экспорт на устройство. Я видел на clang ML, что они работают над генерацией кода GPU, но я не знаю текущего состояния. Как OpenMP 3.0 пришел в clang 3.6, я думаю, что другой придет позже. –

+1

Спасибо за подсказку. Я не знал, что openmp теперь поддерживает gpu. Это не «каркас», который у меня есть личный опыт, но он выглядит интересным. Посмотрев на него еще немного, я действительно задаюсь вопросом, почему вы хотите использовать CUDA, OpenCL или AMP поверх OpenMP? Кажется, что он предлагает большую часть того же в общем виде, но, возможно, я просто не знаю достаточно, чтобы увидеть проблемы. – JoeTaicoon

+0

OpenMP будет генерировать код для вас. Это здорово, но это может быть не так эффективно, как ожидалось. В этом случае вы можете написать код CUDA, чтобы сделать его более эффективным. Так же, как вы можете написать код sse/avx, потому что компилятору не удалось векторизовать цикл. Но я согласен с тем, что в долгосрочной перспективе будет действительно лучше, если мы сможем положиться на эти функции! –

ответ

11

Что приводит меня к этой мысли, так это то, что даже блоги MS C++ AMP молчали около года. Глядя на библиотеку алгоритмов C++ AMP http://ampalgorithms.codeplex.com/wikipage/history, похоже, ничего больше не происходит уже больше года.

Раньше я работал в библиотеке алгоритмов C++ AMP. После первоначального релиза, который Microsoft собрал вместе, я создал ряд дополнительных функций и портировал его на более новые версии VS. Казалось, что у C++ AMP была потеря импульса. У меня нет планов продолжить работу над проектом.

Сделайте это, как хотите. Возможно, кто-то из Microsoft может прояснить ситуацию?

+5

Спасибо, что ответили несколько ясным ответом. Вы являетесь одним из авторов книги «The C++ AMP» и теперь не работаете над этим, делает это довольно ясным аргументом в пользу того, что C++ amp более или менее мертв. Слишком плохо. На мой взгляд, это была очень обещающая инициатива, но я думаю, что CUDA и OpenCL не хотели отступать. Интересно, что вы теперь видите как лучший инструмент для массивного параллелизма? – JoeTaicoon

+1

Жаль, что ms молчит об этом, так как я думаю, что это действительно хорошая библиотека (за исключением сложной опции черепицы). – gast128

1

Я обнаружил, что AMD по-прежнему использует C++ AMP .. http://developer.amd.com/community/blog/2015/09/15/programming-models-for-heterogeneous-systems/ http://developer.amd.com/community/blog/2015/01/19/bolt-1-3-whats-new/ и есть некоторые ссылки на форуме, где Intel упоминает его тоже.

Главное, что я вижу, это то, что мы, программисты, наконец, начали играть с идеей о том, что мы также можем использовать графический процессор для обычных задач. Особенно сейчас, когда HBM приходят в APU, вы можете многое сделать на относительно дешевой системе. Не копируйте данные на графическую карту или основную память, а сохраняйте ее в кеше BIG HBM, где к ней можно получить доступ в режиме реального времени, то есть без задержки графического процессора.

Таким образом, Microsoft создает действительно очень приятную технологию, которая станет актуальной только в ближайшие несколько лет, то есть когда аппаратное обеспечение наконец станет «удобным для пользователя». Но это может стать устаревшим, если они не будут продвигаться, как это делают другие. Не то, чтобы что-то не работало в C++ AMP, а потому, что скорость изменения настолько велика в последнее время, что программисты не рискуют начать использовать ее, если они не видят каких-то продвижений ... по крайней мере, блог или два в год, где они что-то тестировали, чтобы вы видели, что Microsoft все еще верит в это.

0

Я по-прежнему использую усилитель. Прямо сейчас я делаю трассировщик пути gpu (надеюсь) для использования игр.

У этого усилителя нет большого количества документации на данный момент или много новых обновлений к сожалению. Его определенно то, что я хотел бы видеть обновленным и использовать больше, но он замирает.

0

FWIW Мы также используем C++ AMP в финансовом мире. очень успешный относительно простой код. CUDA, вероятно, является более безопасным выбором, но если кто-то подумывает об изучении AMP, я предлагаю сначала очистить свой базовый STL, а затем читать на представлениях массива.

+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/17044014) –

Смежные вопросы