На этом шаге мы рассмотрим регистровую память.
Наиболее простым видом памяти является регистровая память (регистры). Каждый потоковый мультипроцессор содержит 8192 или 163843-битовых регистров (для обозначения всех регистров потокового мультипроцессора используется термин register file).
Имеющиеся регистры распределяются между нитями блока на этапе компиляции (и, соответственно, влияют на количество блоков, которые может выполнять один мультипроцессор).
Каждая нить получает в свое использование некоторое количество регистров, которые доступны как на чтение, так и на запись (read/write). Нить не имеет доступа к регистрам других нитей, но свои регистры доступны ей на протяжении выполнения данного ядра.
Поскольку регистры расположены непосредственно в потоковом мультипроцессоре, то они обладают максимальной скоростью доступа.
Если имеющихся регистров не хватает, то для размещения локальных данных (переменных) нити используется так называемая локальная память, размещенная в DRAM. Поэтому доступ к локальной памяти характеризуется очень высокой латентностью - от 400 до 600 тактов.
На следующем шаге мы рассмотрим разделяемую память.