Различия между VexCL, Thrust и Boost.Compute
При простом понимании этих библиотек они выглядят очень похожими. Я знаю, что VexCL и Boost.Compute используют OpenCl в качестве бэкэнда (хотя VexCL версии 1.0 также поддерживает CUDA в качестве бэкэнда), а Thrust использует CUDA. Помимо разных бэкэндов, в чем разница между ними.
В частности, к какому проблемному пространству они относятся и почему я хотел бы использовать одно поверх другого.
Кроме того, в Thrust FAQ указано, что
Основным препятствием для поддержки OpenCL является отсутствие компилятора OpenCL и среды выполнения с поддержкой шаблонов C ++.
Если это так, то как возможно, что VexCL и Boost.Compute даже существуют.