主要内容

推力示例

借助GPU Coder™中的推力库支持,金宝app您可以利用GPU加速的原始词,例如排序以实现复杂的高性能并行应用程序。当你的matlab®代码使用gpucoder.sort功能而不是种类,GPU编码器可以生成对推力排序的调用。

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

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

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

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

生成的CUDA代码

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

... 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);...