Я сосредоточился на проблеме банковского конфликта, показанной на слайдах Марка Харриса Оптимизация параллельного сокращения в CUDA , и я пришел к этому вопросу:
На слайдах 8 и 12, которые демонстрируют проблему расходящегося ветвления и не расходящегося решения соответственно, есть проблема конфликт банка .Но эта проблема только , упомянутая на слайде 12.
Насколько я знаю, каждые 4 байта данных (в данном случае целые числа) хранятся в одном банке памяти.В этом случае:
10 -> bank 1
1 -> bank 2
8 -> bank 3
.
.
.
и проблема конфликт банка возникает всякий раз, когда потоки деформации запрашивают байты в одном и том же банке.На слайде 8 все 6 потоков (одной и той же основы) запрашивают байты из разных банков (нет конфликта банков).Кроме того, на слайде 12 все 6 потоков (опять же, с одинаковой деформацией) запрашивают байты из разных банков (по-прежнему нет конфликтов между банками).Кто-нибудь уточнит, когда именно возникнет эта проблема?