Różnice między VexCL, Thrust i Boost.Compute

Dzięki pobieżnemu zrozumieniu tych bibliotek wyglądają na bardzo podobne. Wiem, że VexCL i Boost.Compute używają OpenCl jako backendu (choć wersja VexCL w wersji 1.0 obsługuje także CUDA jako backend), a Thrust używa CUDA. Pomijając różne zalety, jaka jest różnica między nimi.

W szczególności, jaką przestrzeń problemową się zajmują i dlaczego chciałbym używać jednego nad drugim.

Również w FAQ na temat ciągu jest powiedziane, że

Podstawową barierą dla obsługi OpenCL jest brak kompilatora OpenCL i środowiska wykonawczego z obsługą szablonów C ++

Jeśli tak jest, jak to możliwe, że VexCL i Boost.Compute nawet istnieją.

questionAnswers(1)

yourAnswerToTheQuestion