1W个整数如何求最小

我写的内核中要对1W个整数如何求最小
偶想出来的有两种做法

1使用单线程两两比较,时间复杂度O(n),跌代一次即可,但其它线程等待
2使用1W个线程两两比较,随着迭代次数增加,空闲的线程数也会越来越多,但此时需迭代n-1次,
(1W个数据比较此时为O(1)),时间复杂度仍然为O(n),而且还需要空间O(W)的SHARED MEMORY,

所以以上两种做法都不好,请问有什么好的解决方案,快速求取1W个数据中的最小值

1W的话CPU更快更简单

上次测试20481024sizeof(int)的数据,cpu基本不花费什么时间。。我用gpu(不算数据copy时间)大概3ms。。

偶用GPU算了下,果然要慢,主要是大部分线程不做事呀,
更正,每2种方法为o(logn)

看sdk下的reduction

CUDA 官方的SDK里面的reduction的速度是很快的,2048*1024个数字基本上可以在0.2ms内搞定。

有这么快么?是哪个函数哦?

SDK 例子里面的doc有写的,也有代码的,LS看一下就可以了