Re[9]: В CUDA кто нибудь разбирается?
От: BulatZiganshin  
Дата: 30.09.15 14:19
Оценка:
Здравствуйте, elmal, Вы писали:

E>Я тупо убрал явно косячное условие if (tid == curVal). Не убирал return.


так ведь нужно не только обнулить sdata в начале, но и записать его значение в конце

E>Текущее мое представление о работе всего этого следующее. Эти все SMX — это обычные SIMD операции. Соответственно при компиляции это все загоняется в данные и выполняются инструкции. А барьер — это просто указание, что перед запуском команды чтоб все данные были готовы. Потоков в понимании как в CPU там нет ни черта, на низком уровне все примитивно, все навороты компилятор делает. Соответственно если я делаю return в начале, у компилятора в принципе достаточно инфы чтоб понять и разрулить это все достаточно корректно.


в одном smx — 4 ядра. каждое имеет 1 alu с органзиацией 32*32bit. но для эффективности одно ядро выполняет с десяток потоков одновременно. соответственно весь твой код преобразуется в simd-команды, если есть расхождения внутри одного варпа — то они закрываются маскированием соответствующих линий

1024 псевдопотока — это 32 реальных потока. вот их и приходится синхронизировать. а в целом titan x с его 24 smx может выполнять порядка 1000 (24*4*10) потоков одновременно, т.е. 30 тыщ скалярных псевдопотоков

вообще там вполне обычный процессор, от avx3 отличается уже не так сильно
Люди, я люблю вас! Будьте бдительны!!!
Отредактировано 30.09.2015 14:21 BulatZiganshin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.