Я работаю над статистическим приложением, содержащим приблизительно 10-30 миллионов значений с плавающей запятой в массиве.
Несколько методов, выполняющих разные, но независимые вычисления в массиве в вложенных циклах, например:
Dictionary<float, int> noOfNumbers = new Dictionary<float, int>();
for (float x = 0f; x < 100f; x += 0.0001f) {
int noOfOccurrences = 0;
foreach (float y in largeFloatingPointArray) {
if (x == y) {
noOfOccurrences++;
}
}
noOfNumbers.Add(x, noOfOccurrences);
}
Текущее приложение написано на С#, работает на процессоре Intel и требует нескольких часов. Я не знаю концепций программирования GPU и API, поэтому мои вопросы:
- Возможно ли (и имеет ли смысл) использовать графический процессор для ускорения таких вычислений?
- Если да: Кто-нибудь знает какой-либо учебник или получил какой-либо пример кода (язык программирования не имеет значения)?
Любая помощь будет высоко оценена.