Комментировать

регистры vs shared

Насколько я понимаю, передать данные через регистры между тредами не получится никак. Поэтому регистры - для локальных переменных, shared memory - для обмена внутри блока, global - для обмена между блоками.