0
Найти на сайте: параметры поиска

 

 

В микропроцессоре Tesla

20 апреля 2019 - natribamakom

В микропроцессоре Tesla используется мелкомодульная аппаратная многопоточность для диспетчеризации по времени 24 вампов, которые показаны вертикально в блоках из четырех тактовых циклов. Аналогично этому, UltraSPARC Т2 осуществляет диспетчеризацию по времени восьми аппаратно поддерживаемых потоков, показанных по вертикали, по одному в каждом цикле. Таким образом, так же, как оборудование Т2 осуществляет переключение между потоками для поддержания занятости ядра Т2, оборудование Tesla осуществляет переключение между варпами, чтобы сохранить занятость мультипроцессора Tesla. Основное различие состоит в том, что у ядра Т2 имеется один процессор, способный переключать потоки с каждым тактовым циклом, в то время как минимальной единицей переключения варпов в мультипроцессоре Tesla является интервал в два тактовых цикла параллельно для восьми потоковых ядрер. Хотя Tesla предназначен для программ с большим объемом параллелизма на уровне данных, разработчики считали, что между переключениями каждые два или четыре цикла по сравнению с переключениями на каждом цикле различий в производительности немного и что при ограничении частоты переключений оборудование было бы намного проще.

У среды программирования CUD А также есть своя собственная терминология. Программа CUDA является унифицированной С/С++-программой, предназначенной для гетерогенного центрального процессора и системы GPU. Она выполняется на центральном процессоре и осуществляет диспетчеризацию параллельной работы для GPU. Эта работа состоит из передачи данных от оперативной памяти и из диспетчеризации потоков. Поток является частью программы для GPIJ. Программисты указывают количество потоков в поточном блоке и количество поточных блоков, которое требуется запустить на выполнение на GPU. Программисты заботятся о поточных блоках, поскольку все потоки в блоке подвергаются диспетчеризации для запуска на одном и том же мультипроцессоре, поэтому они совместно используют одну и ту же локальную память. Благодаря этому они могут обмениваться данными через загрузки и сохранения, а не через сообщения. Компилятор CL'DA распределяет регистры каждому потоку при том ограничении, что количество регистров на один поток, умноженное на количество потоков на паточный блок, не должно превышать число, равное 8192 регистрам на один мультипроцессор.

Потоковый блок может иметь до 512 потоков. Каждая группа из 32 потоков в потоковом блоке запакована в варпы. Большие потоковые блоки более эффективны, чем небольшие, и они могут уменьшаться до одного блока. Как уже ранее упоминалось, потоковые блоки и варпы, состоящие менее чем из 32 потоков, работают менее эффективно, чем заполненные.

Аппаратная диспетчеризация старается, по возможности, спланировать выполнение нескольких потоковых блоков на мультипроцессоре. Если это удается, диспетчер также динамически делит 16 Кбайт локального запоминающего устройства между различными потоковыми блоками.

Комментарии (0)

Нет комментариев. Ваш будет первым!