假设检验和GPGPU

问题描述 投票:2回答:1

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

statistics gpgpu simd
1个回答
1
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.