Scan
A = [a1, a2, a3, ... an], I, f(x, y)
∀ b: f(I, b) = b
Включающее сканирование:
Scan(A) = [reduce([a1]), reduce([a1, a2]), ..., reduce([a1, ... an])]
Исключающее сканирование:
Scan(A) = [I, reduce([a1]), ..., reduce([a1, ... an-1])]
HW tips
- "аллоцированы через механизм двумерных матриц" -
cudaMallocPitch и cudaMemcpy2D
- Если в коде допускается ошибка разобранная на лекциях/семинарах - такой код не будет принят
- Если что-то можно было эфективно посчитать на GPU (пусть это не основное задание), а вы считаете на CPU - такой код не будет принят
- Не стоит реализовывать умножение матрицы на вектор через перемножение матриц
- Графики достаточно построить для нескольких задач. Главное - чтобы они были показательны.
- В чате на 150+ человек лучше не указывать, кому и что делать, если об этом явно не просили. Особенно тем, от кого зависят ваши оценки)
- Ядро - функция с атрибутом
__global__