У меня возникли проблемы с пониманием выполнения SIMT на графическом процессоре.Пока что у меня есть потоки, помещенные в «деформации» (например, 32 потока / деформация).Эти потоки будут одного типа и могут работать параллельно (но могут ветвиться и работать независимо).
Книга, которую я читаю, смущает меня.'It is then up to the instruction unit to select warps that are ready to execute their next instruction, and this instruction is then issued to the active threads of the warp. Each SP core executes an instruction for four individual threads of a warp using four clocks'.
В выбранной архитектуре было 8 SP и 32 потока на основу.Поэтому каждому ИП назначается 4 потока.Почему бы просто не назначить 1 поток / SP?Что значит «использовать четыре часа»?каждая инструкция занимает 1 час и делает это 4 раза (по 1 для каждого потока)?
Другая проблема, с которой я столкнулся, заключается в том, что если у вас есть деформация с 32 потоками, каждый из которых содержит условное выражение.Что, если половина ответвляется в одну сторону, а половина в другую?Из того, что я прочитал, потоки выполняют оба результата?Как это работает?т.е. как он подчиняется правилам программы