Como julgar nan:
https://blog.csdn.net/jacke121/article/details/123836382
Thrust é uma biblioteca C++ que vem com o cuda. Após a instalação do cuda, esta biblioteca também é instalada por padrão.
Esta biblioteca adota basicamente o método de interface semelhante ao STL, por isso é muito amigável para os desenvolvedores, e os desenvolvedores não precisam mais prestar atenção aos problemas relacionados à memória e à memória de vídeo.
Exemplo introdutório de classificação
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
#include <thrust/generate.h>
#include <thrust/sort.h>
#include <thrust/copy.h>
#include <algorithm>
#include <vector>
#include <time.h>
int main(void)
{
thrust::host_vector<int> h_vec(1024*1024);
std::generate(h_vec.begin(), h_vec.end(), rand);
std::vector<int> vec(h_vec.size());
thrust::copy(h_vec.begin(), h_vec.end(), vec.begin());
thrust::device_vector<int> d_vec = h_vec;
clock_t time1,time2