How does Thrust know how to automatically tune the kernels it launches?

Thrust is able to hide a lot of detail from the encoder, and it is claimed that Thrust to some extent sets parameters regarding the technical characteristics of the system. How does Thrust choose the best parameterization and how does it handle different codes on different machines? What is the Thrust approach for implementing such a shared library?

+4
source share
1 answer

Thrust uses a heuristic that attempts to maximize the potential load of the CUDA cores that it runs.

Here's a standalone version of the Thrust heuristic using:

https://github.com/jaredhoberock/cuda_launch_config

+2
source

Source: https://habr.com/ru/post/1482713/


All Articles