Имам бърз въпрос относно активните деформации в GPU (предпочитам да го знам във Fermi). За конкретно ядро, броят на активните деформации във всеки цикъл в SM еднакъв ли е за цялото време на изпълнение на ядрото? Докато експериментирах, има известна зависимост между общия брой активни деформации (за цялото изпълнение) и броя на синхронизациите в ядрото на програмата. Може ли някой да изясни тази връзка? Благодаря
Брой активни деформации в GPU (Fermi)
Отговори (2)
Броят на активните деформации може да варира с течение на времето, тъй като:
- Други блокове от нишки могат да завършат или започнат на същия SM, така че ако имате четири изкривявания на блок от нишки, тогава ако само един блок от нишки е резидентен на SM, ще имате до четири изкривявания, но с два или три блока от нишки ще имате до осем или дванадесет респ.
- Ако деформирането достигне края на техния код, то вече няма да изпълнява код (естествено)
Броят на активните деформации за изпълнение на цялата програма ще зависи от редица фактори, но не забравяйте, че той се увеличава с броя на активните деформации за всеки цикъл. Това означава, че ако увеличите броя на синхронизациите, което също би увеличило броя на циклите, които всяко изкривяване изисква за изпълнение на ядрото, тогава бихте очаквали по-висок брой активни изкривявания.
Също така имайте предвид, че някои извлечени статистики в профилиращия са приблизителни, тъй като те често използват стойности от повече от едно изпълнение, следователно може да има известна променливост.
Връзката между бариерната синхронизация и обвиването е обяснена в този документ, Демистифициране на GPU микроархитектурата чрез микробенчмаркинг.