На конференции AMD Fusion Developer Summit – вот здесь PDF-ка на 39 страниц. А здесь видеозапись выступления.
PDF-ку просмотрел. Речь идет о чем-то под названием C++ Accelerated Massive Parallelism (C++ AMP).
Ничего не понял, нахожусь совершенно не в теме. Но добавление новых ключевых слов в какой-то из диалектов C++ (не важно, от Microsoft или еще от кого-то) – не есть хорошо.
Они действительно хотят сделать расширение языка... обещают в очередной студии из коробки.
ОтветитьУдалитьРасширение будет юзать всяческие мультикоры - CPU, GPU...
Это и из презентации понятно.
Типа интегрированная CUDA...
Ну как раз с очевидными вещами все понятно. У меня сложилось впечатление, что ключевое слово restrict у них определяет контекст. В одном случае контекст указывает, где могут использоваться функции. В другом случае -- какие функции могут использоваться (т.е. уточнение при выборе перегруженной функции). Т.е. можно создать какой-нибудь map_reduce с restrict(many_core), а затем вызвать этот map_reduce из лямбды, которая помечена как restrict(many_core).
ОтветитьУдалитьВот с array_view как-то менее понятно.
Но, поскольку я далек от массивно-параллельных вычислений, то не понимаю главного -- насколько C++ AMP действительно будет выгоден в данной области. Например, по сравнению с OpenMP и MPI.
Мне кажется этот restrict не страшен, что-то типа __declspec(dllexport) что вряд ли может поломать совместимость с чем либо, тем более в новых лямбдах.
ОтветитьУдалить