Я последовал следующий пример: multi-GPU basic usageCUDA мульти - GPU функции добавить
Кодекс делает суммирование:
Люди, который ответил проверили, как принято, посылают добавить функцию следующим образом:
for(int i=0;i<10000;++i) {
for(int dev=0; dev<2; dev++) {
cudaSetDevice(dev);
add<<<NB,NT>>>(dev_a[dev], dev_b[dev], dev_c[dev], Ns[dev]);
}
}
В приведенном выше кодексе он добавил NS[dev]
также, чтобы добавить функцию, но, человек, который отправляет вопрос, добавляет функцию следующим образом:
__global__ void add(double *a, double *b, double *c){
int tid = threadIdx.x + blockIdx.x * blockDim.x;
while(tid < N){
c[tid] = a[tid] + b[tid];
tid += blockDim.x * gridDim.x;
}
}
Что является функцией Ns[dev]
в вышеуказанной функции. Потому что, когда я удалить Ns[dev]
в коде ниже, как это:
add<<<NB,NT>>>(dev_a[dev], dev_b[dev], dev_c[dev]);
Добавить функция не работает. Я имею в виду, что он не добавляет значения.
Как я могу использовать Ns[dev]
в функции добавления здесь?