Ускорение вычислений на видеокарте от Microsoft, или кратко о Microsoft Accelerator
О вычислениях на видеокарте за последние годы не писал разве что ленивый. AMD/ATI представила свою StreamComputing, а в последствии и OpenCL, NVidia всячески продвигает свою CUDA. Не осталась в стороне и Microsoft. Итак, встречаем библиотеку Microsoft Accelerator, основная цель которой — ускорение на видеокарте и/или многоядерных процессорах обработки одно- и двухмерных массивов данных.
Плюсы:
- Написана под .NET, так что есть возможность вызовов из любых .NET-языков — C#, VB.NET и даже F# (возможно, я об этом еще напишу).
- Если в ваши задачи входит активная работа с матрицами — транспонирование, перемножение, gathering, суммирование и проч., то использовать эту библиотеку вам будет довольно удобно
Минусы:
- Шаг в сторону — попытка к бегству, т.е. если вам надо сделать над массивом данных какую-то операцию, не предусмотренную разработчиками, вся легкость использования куда-то испаряется.
- На передачу данных между видеокартой и оперативной памятью тратится солидное время, так что преимущества Accelerator'а можно оценить только на достаточно больших массивах данных.
Скачать и оценить эту библиотеку можно здесь: http://research.microsoft.com/en-us/projects/Accelerator/
Постскриптум: а еще у Майкрософта есть совершенно сектретный проект Accelerator v2, который якобы будет гораздо удобнее v1 и будет предоставлять возможность написания своих вычислительных шейдерах. Скачать его можно здесь, согласившись с кучей лицензионных соглашений, только я вам этого не говорил :)
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |