Различия между VexCL, Thrust и Boost.Compute

При простом понимании этих библиотек они выглядят очень похожими. Я знаю, что VexCL и Boost.Compute используют OpenCl в качестве бэкэнда (хотя VexCL версии 1.0 также поддерживает CUDA в качестве бэкэнда), а Thrust использует CUDA. Помимо разных бэкэндов, в чем разница между ними.

В частности, к какому проблемному пространству они относятся и почему я хотел бы использовать одно поверх другого.

Кроме того, в Thrust FAQ указано, что

Основным препятствием для поддержки OpenCL является отсутствие компилятора OpenCL и среды выполнения с поддержкой шаблонов C ++.

Если это так, то как возможно, что VexCL и Boost.Compute даже существуют.

Ответы на вопрос(1)

Ваш ответ на вопрос