Я планирую распараллелить следующее l oop в графическом процессоре:
for (i = 1; i <= s; i++) {
memcpy(&p[5][i][0], &zero[0][0][0], sizeof(int)*15));
for (j = 1; j < 5; j++) {if (i == V[j]) continue;}
for (k = 1; k <= 10; j++) {++p[5][i][k];}
}
"s" может принимать значения до 1000, но все это l oop повторяется более миллиона раз в программа (и рекурсивно, поэтому нет возможности распараллелить это, по крайней мере, с моими навыками), следовательно, необходимо ускорить процесс Трехмерный массив «ноль» используется для того, чтобы просто инициализировать значения трехмерного «р» массива равными 0 (это был самый быстрый способ, который я мог придумать). Все переменные являются целыми числами без знака. Из-за того времени, которое требуется для копирования данных в память устройства и обратно, Cuda собирается замедлять работу? Если нет, может кто-нибудь помочь с кодом Cuda необходимо? Должен ли я использовать упорный или низкоуровневый код ядра (ни один из которых я не умею, кстати)?