cases not recommended to use the Library thrust


I’m new in the area of parallel programming on GPU, in my application i need to use dynamic vectors, because i use template classes , i want to use thrust library for facilitate the the task of programming , but in pdf document i found this sentence:

Thrust [1] solves a complementary set of problems, namely those that are (1) implemented efficiently without a detailed mapping of work onto the target architecture or those that (2) do not merit or simply will not receive significant optimization effort by the user.

Can any one explique to me what does it mean exactly , and tell me what are the cases not recommended for using this library ?

I want to note that by time i need optimisations in my code , and i don’t know exactly if the use of this library will prevent any optimisation

Thanks a lot for any help

Rather than worry about the wording in the documentation, try to use Thrust and examine the result. I know sorting via Thrust is significantly faster, provided you have a decent GPU. Also things like scans, reductions also are faster.

Things like a hash-tables or dynamic programming problems are thought to not map well to the GPU model, but recently there has been much more progress in this area. The graph algorithms I have been working on can be as much as 19 times faster than the serial CPU implementations. I have also see a hast-table implementation which is faster than many CPU versions.

Make sure with Thrust you get the memory copy aspect correct.