2011-04-15 43 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