Путаница на CUDA/openCL и С++ AMP

Я читал, что Microsoft тесно сотрудничает с Nvidia для улучшения характеристик AMP.

Но мой вопрос: является ли AMP заменой CUDA на Microsoft? Или AMP использует драйверы CUDA, когда доступна видеокарта NVIDIA CUDA? Является ли AMP заменой openCL?

Я все еще довольно смущен.

Ответ 1

С++ AMP - это библиотека (и в ее составе также было добавлено расширение языка клавиш). Поскольку С++ AMP является открытой спецификацией, она может быть реализована на любых других языках низкого уровня. Реализация Microsoft основывается на DirectCompute (и, следовательно, на HLSL), но полностью скрыта от вас, когда вы используете С++ AMP (поэтому С++ AMP может быть открытой спецификацией, она не предоставляет DirectX на поверхности API). Для получения дополнительной информации о С++ AMP, пожалуйста, следуйте ресурсам справа от нашего блога (хорошо продолжайте добавлять к этому): http://blogs.msdn.com/b/nativeconcurrency/

Вы сделали выражение о том, что Microsoft работает с NVIDIA для улучшения производительности С++ AMP - это неверно. Microsoft создала открытую спецификацию С++ AMP с NVIDA и AMD и другими партнерами. Microsoft также работает с поставщиками оборудования, чтобы убедиться, что у поставщиков оборудования есть стабильные драйверы видеокарты, которые необходимы для правильной работы любой вычислительной технологии графического процессора.

Вы также выразили путаницу и бросили некоторые термины. OpenCL - это подход к вычислениям на GPU (от Khronos), как и DirectCompute (Microsoft), а также CUDA (от NVIDIA). Это все отдельные технологии, каждый из которых имеет свой собственный путь к графическому процессору (всегда через какой-то драйвер), каждый со своими достоинствами, сильными сторонами и недостатками. Один не заменяет другого, и один не универсален лучше другого. Теперь у вас также есть С++ AMP в этом соединении, как еще один выбор, и к этому относятся те же утверждения. Выбор за вами, который вы решили использовать.

Ответ 2

С++ AMP - это набор языковых расширений и API для поддержки технологии параллельного программирования, включая CUDA.

Так как у Microsoft также есть прямой конкурент CUDA (Direct Compute) и, как правило, предпочла ее собственные собственные графические стандарты, нам нужно будет увидеть, что на самом деле происходит с ней.

Для просмотра Microsoft на нем см. эти лекции