CUDA 用大数组的内容填充小数组
CUDA populate small array with contents of larger array
我是 CUDA 编程的新手,所以如果这是一个愚蠢的问题,请原谅我。
在 CUDA 中,我试图用大型设备阵列 A(~2000 万 int
元素)的内容填充小型设备阵列 B(~20000 int
元素)。 A 主要包含零,但有大约 ~20000 个非零元素,位于数组中的随机和未知位置。我想使用 CUDA 用 A 的非零内容填充 B。 B 中元素的顺序并不重要。
我查看了 SDK,发现了一些 "reduce" 策略,例如,数组的并行求和,但这些方法中的每一种都将数组缩减为标量,而我试图 "reduce" 一个数组到一个更小的数组。网上搜索也没有任何结果。我不是在寻找完整的代码,而是在寻找一些 ideas/links 如何实现它。我正在使用 C,如果可能的话,我想在不使用任何 C++ 类 或结构的情况下执行此操作。
提前感谢您的帮助。
我是 CUDA 编程的新手,所以如果这是一个愚蠢的问题,请原谅我。
在 CUDA 中,我试图用大型设备阵列 A(~2000 万 int
元素)的内容填充小型设备阵列 B(~20000 int
元素)。 A 主要包含零,但有大约 ~20000 个非零元素,位于数组中的随机和未知位置。我想使用 CUDA 用 A 的非零内容填充 B。 B 中元素的顺序并不重要。
我查看了 SDK,发现了一些 "reduce" 策略,例如,数组的并行求和,但这些方法中的每一种都将数组缩减为标量,而我试图 "reduce" 一个数组到一个更小的数组。网上搜索也没有任何结果。我不是在寻找完整的代码,而是在寻找一些 ideas/links 如何实现它。我正在使用 C,如果可能的话,我想在不使用任何 C++ 类 或结构的情况下执行此操作。
提前感谢您的帮助。