2011-04-15 72 views
2

我对GPGPU和编程非常陌生。我很想知道是否可以使用CUDA在GPGPU(SIMD)中实施像单样本Kolmogorov-Smirnov检验(K-S检验)和Levene检验的统计假设检验?如果是的话,会有什么限制?假设检验和GPGPU

+1

您是在谈论CPU的SIMD流扩展(SSE)指令,还是关于某种其他形式的SIMD?因为SSE不必对GPU做任何事情。 – Mehrdad 2011-04-15 05:39:15

+0

这可能有点帮助:http://marketing.skawa.hu/public/matserver_en.pdf?attredirects=1 – 2011-04-15 05:42:25

+1

@Mehrdad,我的意思是关于矢量化或数据并行GPU – user709158 2011-04-15 06:21:30

回答

1

我刚刚阅读了关于这些测试的网页定义,但是如果我理解正确,可以通过SIMD表达的并行性(特别是由CUDA实现)来适当加速它们。

在K-S检验中,必须计算N个样本函数和估计之间的差异,然后取最大差值。换句话说,必须对N个不同的值执行相同的操作,这正好是SIMD(单指令,多数据)。

在Levene的测试中,在N个不同的值上再次出现相同的差异,平方和乘法。

只要迭代彼此独立,SIMD可以做的是一种关于N值集合的FOR语句。因此,例如,在CUDA中,编译器可以将迭代分配给图形设备的处理元素,以便在单次迭代时为所有数据运行FOR循环,并行执行。

CUDA工具包提供了特定的C/C++编译器(NVCC),其中将特殊指令分派给GPGPU而不是CPU,因此分配给其并行处理元素。

+0

嗨Halberdier,你对此的见解很有帮助。 – user709158 2011-08-02 05:55:11

+0

然后点击上面的箭头:P. – Halberdier 2011-08-02 19:54:45