C-如何用cuda做排序呢?

需求定制 需求定制 主题:1050 回复:2283

C-如何用cuda做排序呢?

晚风撩人 发布于 2017-06-09 字数 107 浏览 1354 回复 2

我需要在核函数里对数据做排序,之前在cpu里很容易,我用的是STL的sort函数,如何用cuda核函数实现排序呢?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

灵芸 2017-09-30 2 楼

这里有一个CUDA实现奇偶冒泡排序的例子,有代码~你可以参考参考。

CUDA实现奇偶冒泡排序

浮生未歇 2017-07-22 1 楼

cuda是支持C语言的,但是不支持C++,所以STL肯定不能用了,用C语言实现一个sort还是很容易的,附上代码一份,快速排序算法

void quick(int *a,int i,int j)

{

int m,n,temp;

int k;

m=i;

n=j;

k=a[(i+j)/2]; /选取的参照/

do {

while(a[m]<k&&m<j) m++; / 从左到右找比k大的元素/

while(a[n]>k&&n>i) n--; / 从右到左找比k小的元素/

if(m<=n) { /若找到且满足条件,则交换/

temp=a[m];

a[m]=a[n];

a[n]=temp;

m++;

n--;

}

}while(m<=n);

if(m<j) quick(a,m,j); /运用递归/

if(n>i) quick(a,i,n);

}