Проверка гипотез и ГПГПУ - PullRequest
2 голосов
/ 15 апреля 2011

Я очень новичок в GPGPU и программировании. Мне интересно знать, можно ли реализовать статистическую проверку гипотез, например однократный критерий Колмогорова-Смирнова (критерий K – S) и критерий Левена, в GPGPU (SIMD) с использованием CUDA? Если да, какие будут ограничения?

1 Ответ

1 голос
/ 02 августа 2011

Я только что прочитал веб-определения об этих тестах, но, если я правильно понял, они могут быть должным образом ускорены с помощью параллелизма, выраженного SIMD (в частности, как реализовано в CUDA).

В тесте KSнужно вычислить разницу между функцией и оценкой по N выборкам, а затем взять максимальную разницу.Другими словами, необходимо выполнить одну и ту же операцию с N различными значениями, что в точности равно SIMD (одна инструкция, несколько данных).

В тесте Левена снова есть та же самая разница, квадрат и умножение по Nразные значения.

То, что может сделать SIMD, является своего рода оператором FOR для N наборов значений при условии, что итерации не зависят друг от друга.Таким образом, например, в CUDA компилятор может распределять итерации элементам обработки графического устройства, так что при параллельном выполнении цикл FOR выполняется для всех данных во время одной итерации.

Инструментарий CUDA предоставляет специальный компилятор C / C ++ (NVCC), в котором специальные инструкции отправляются в GPGPU, а не в CPU, поэтому распределяются по его параллельным элементам обработки.

...