Statistics 假设检验与GPGPU

Statistics 假设检验与GPGPU,statistics,gpgpu,simd,Statistics,Gpgpu,Simd,我对GPGPU和编程非常陌生。我很想知道是否可以使用CUDA在GPGPU(SIMD)中实现统计假设检验,如单样本Kolmogorov-Smirnov检验(K-S检验)和Levene检验?如果是这样的话,限制是什么?我刚刚阅读了关于这些测试的web定义,但是,如果我理解正确,SIMD表示的并行性(特别是CUDA实现的并行性)可以适当地加速这些测试 在K-S检验中,必须计算一个函数与N个样本上的估计值之间的差值,然后取最大差值。换句话说,必须对N个不同的值执行相同的操作,这正是SIMD(单指令多数据

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

我刚刚阅读了关于这些测试的web定义,但是,如果我理解正确,SIMD表示的并行性(特别是CUDA实现的并行性)可以适当地加速这些测试

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

在Levene的测试中,在N个不同的值上又有相同的差,平方和乘法

SIMD可以做的是N个值集上的一种FOR语句,前提是迭代彼此独立。因此,例如,在CUDA中,编译器可以将迭代分配给图形设备的处理元素,以便并行执行,在单个迭代的时间内针对所有数据运行for循环


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

您是在谈论CPU的数据流单指令多数据扩展指令集(SSE)指令,还是其他形式的单指令多数据集?因为SSE不需要对GPU做任何事情。这可能会有点帮助:@Mehrdad,我的意思是关于GPUHi Halberdier的矢量化或数据并行性,您对这一点的了解非常有用。然后单击上方的箭头:P