主要内容

gpucoder.sort

优化的GPU实施MATLAB排序功能

描述

例子

b= gpucoder.sort(一个分类一个按顺序排列。排序操作是借助推力库在GPU上执行的。推力是CUDA的C ++模板库®并配有CUDA工具包。排序输出b具有与一个。如果一个是矢量,gpucoder.sort(a)按升顺序分类一个元素。如果一个是矩阵,gpucoder.sort(a)按升顺序分组A的每一列。如果一个是n维数组,gpucoder.sort(a)沿着第一个非单明子维度进行分类。

b= gpucoder.sort(一个,,,,暗淡有可选的论点暗淡这指定了执行排序操作的尺寸。

b= gpucoder.sort(一个,,,,方向有可选的论点方向这指定了排序方向。方向可以采用两个值之一:

  • “上升”- 按顺序排列。这是默认选项

  • “下降”- 按降序排列。

[[b,,,,] = gpucoder.sort(一个,...))返回排序索引它指定了如何一个被重新排列以获得排序的输出b

  • 如果一个是一个向量,然后b = a(i)

  • 如果一个是m-b-n矩阵,DIM = 1, 然后

    为了j = 1:n b(:,j)= a(i(:,j),j);结尾

排序订购是稳定的。也就是说,当多个元素具有相同的值时,相等元素的顺序将保留在排序的输出B中,并且与等值元素有关的索引正在上升。

什么时候gpucoder.sort从Matlab称为®,它使用内置种类功能。

例子

全部收缩

此示例生成CUDA代码以降序排序矩阵的列。

在一个文件中,写一个入口点功能迈索特接受矩阵输入一个。使用gpucoder.sort函数以对列进行排序一个按顺序下降。

功能b =迈索(a)b = gpucoder.sort(a,1,“下降”);结尾

使用代码根生成CUDA MEX功能的功能。

代码根-configcoder.gpuconfig('mex')-args{一个(1024,1024,'double')}-报告迈索特

以下是生成代码的片段。推力库呼叫由推力

... cudamalloc(&gpu_indims,8ull);cudamalloc(&gpu_b,8388608ull);cudamalloc(&gpu_a,8388608ull);mysort_kernel1 <<< dim3(1u,1u,1u),dim3(32u,1u,1u,1u)>>>(*gpu_indims);cudamemcpy(gpu_a,(void *)&a [0],8388608ull,cudamemcpyHostTodeVice);mySort_Kernel2 <<< dim3(2048u,1u,1u),dim3(512u,1u,1u,1u)>>>( *gpu_a, *gpu_b);cudamemcpy(&indims [0],gpu_indims,8ull,cudamemcpydevicetohost);throustsortimpl(&(*gpu_b)[0],2,&indims [0],1,'d',false);cudamemcpy(&b [0],gpu_b,8388608ull,cudamemcpydevicetohost);...

输入参数

全部收缩

输入阵列,指定为向量,矩阵或多维数组。

数据类型:双倍的|单身的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64|逻辑|char

沿着操作的维度,指定为正整数标量。如果未指定值,则默认值是第一个数组维度,其大小不等于1。

种类返回一个如果暗淡大于ndims(a)暗淡不支持什么时候金宝app一个是一个单元格数组,也就是说种类仅沿着大小不等于1的第一个数组维度操作。

数据类型:双倍的|单身的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64

分类方向,指定为“上升”或者“下降”方向不支持什么时候金宝app一个是一个单元格数组,也就是说种类仅按顺序排列。

输出参数

全部收缩

排序的数组,作为向量,矩阵或多维数组返回。b是相同的大小和类型一个。元素的顺序b保留任何平等要素的顺序一个

数据类型:双倍的|单身的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64|逻辑|char

排序索引,作为向量,矩阵或多维数组返回。大小与一个。索引向量沿着相同的维度定向种类操作。例如,如果一个是2 x-3矩阵,然后[b,i] =排序(a,2)分类每一行的元素一个。输出是描述每一行的重排的1 x-3行索引向量的集合一个

限制

  • gpucoder.sort不支持复数。金宝app

  • gpucoder.sort不支持金宝app“缺失”“比较method”MATLAB支持的名称值对金宝app种类功能。

版本历史记录

在R2018B中引入