CUDA:结果总结

时间:2010-12-02 14:09:14

标签: cuda

我正在使用CUDA运行一个问题,我需要一个带有许多输入矩阵的复杂方程。每个矩阵的ID取决于其集合(1到30之间,有100,000个矩阵),每个矩阵的结果存储在float [N]数组中,其中N是输入矩阵的数量。

在此之后,我想要的结果是每个ID中此数组中每个浮点数的总和,因此有30个ID,有30个结果浮点数。

有关我应该如何做的任何建议?

现在,我从设备读取浮点数组(400kb)回主机并在主机上运行:

// Allocate result_array for 100,000 floats on the device
// CUDA process input matrices
// Read from the device back to the host into result_array
float result[10] = { 0 };
for (int i = 0; i < N; i++)
{
    result[input[i].ID] += result_array[i];
}

但我想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:3)

您可以使用cublasSasum()来执行此操作 - 这比调整其中一个SDK缩减(但当然不那么通用)要容易一些。查看CUDA SDK中的CUBLAS示例。