Unterschiede zwischen VexCL, Thrust und Boost.Compute

Mit einem nur flüchtigen Verständnis dieser Bibliotheken sehen sie sich sehr ähnlich. Ich weiß, dass VexCL und Boost.Compute OpenCl als Backend verwenden (obwohl die Version 1.0 von VexCL auch CUDA als Backend unterstützt) und Thrust CUDA verwendet. Abgesehen von den verschiedenen Backends, was ist der Unterschied zwischen diesen.

Insbesondere, welchen Problembereich sie ansprechen und warum ich einen über den anderen verwenden möchte.

In den Thrust-FAQ heißt es außerdem:

Das Haupthindernis für die OpenCL-Unterstützung ist das Fehlen eines OpenCL-Compilers und einer Laufzeitumgebung mit Unterstützung für C ++ - Vorlagen

Wenn dies der Fall ist, wie ist es möglich, dass VexCL und Boost.Compute überhaupt existieren.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage