1 / 62

Параллельные вычисления в многоядерных мультитредовых структурах

Параллельные вычисления в многоядерных мультитредовых структурах. В.В. Корнеев. Основные препятствия на пути роста тактовой частоты и параллелизма обработки традиционных микропроцессоров. ограничение скорости распространения сигналов на кристалле энергопотребление тепловыделение.

floria
Download Presentation

Параллельные вычисления в многоядерных мультитредовых структурах

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Параллельные вычисления в многоядерных мультитредовых структурах В.В. Корнеев

  2. Основные препятствия на пути роста тактовой частоты и параллелизма обработки традиционных микропроцессоров • ограничение скорости распространения сигналов на кристалле • энергопотребление • тепловыделение

  3. Области распространения сигнала внутри кристалла за один такт длительностью 8 задержек вентилей с четырьмя нагрузками ( 8FO4)

  4. При технологических нормах 90нм на тактовой частоте 1ГГц • 64-разрядный блок операций с плавающей точкой занимает площадь менее, чем 1кв. мм и расходует около 50 pJ энергии на одну операцию • передача данных на расстояние, равное одной из сторон кристалла 14ммх14 мм , требует около 1 nJ

  5. Itanium II 421 mm2 130 W @ 1GHZ 1% - обработка 99% - управление пересылкой и хранением данных

  6. Переход к многоядерным кристаллам

  7. Однокристальная система

  8. ВЫХ1 ВХ1 вычислитель ВХ2 ВЫХ4 ВХ0 ВЫХ0 коммутатор 5х5 ВЫХ2 ВХ4 ВХ3 ВЫХ3

  9. Кристалл Tile64

  10. Ядро и структура кэш-памяти Tile 64

  11. Потоковая реализация операции накопления на двухядерном конвейере

  12. Intel 48 core chip

  13. число выводов кристалла, ограничивающее ширину линий энергетические затраты, требуемые приемопередат-чиками и линиями связи технологические ограничения разводки широких линий по кристаллу допустимое число уровней металлизации для разводки проводников в разных слоях выбор топологии межпроцессорных связей Ограничения межкристальных и накристальных сетей

  14. GP GPU Fermi

  15. Fermi: 512 (16x32) op или 32-bit flop за такт L2 cache (768KB in size for a 512-corechip)

  16. Fermi provides six 64-bit DRAM channels that support SDDR3 and GDDR5DRAMs. Up to 6GB of GDDR5 DRAM can be connected to the chip • Fermi provides ECC (error correcting code) protection for DRAM; • The chip’s register files, shared memories, L1 and L2 caches are also ECC protected. • The level of protection is known as SECDED: single (bit) error correction, double error detection.

  17. Fermi debuts the Parallel Thread eXecution (PTX) 2.0 instruction-set architecture (ISA). • All addresses in the GPU are allocated from a continuous 40-bit (one terabyte) address space. Global, shared, and local addresses are defined as ranges within this address space and can be accessed by common load/store instructions. The load/store instructions support 64-bit addresses to allow for future growth. • All instructions support predication. Each instruction can be executed or skipped based on condition codes. Predication allows each thread—each core—to perform different operations as needed while execution continues at full speed.

  18. Multiple threads are grouped into thread blocks containing up to 1,536 (32х48) threads.All of the threads in a thread block will run on a single SM, so within the threadblock, threads can cooperate and share memory. • Thread blocks can coordinate theuse of global shared memory among themselves but may execute in any order,concurrently or sequentially.

  19. Thread blocks are divided into warps of 32 threads. The warp is thefundamental unit of dispatch within a single SM. In Fermi, two warps from differentthread blocks (even different kernels) can be issued and executed concurrently, increasing hardware utilization and energy efficiency.

  20. The L2 cache subsystem also implements another feature not found on CPUs: aset of memory read-modify-write operations that are atomic—that is,uninterruptible—and thus ideal for managing access to data that must be sharedacross thread blocks or even kernels. Normally this functionality is providedthrough a two-step process; a CPU uses an atomic test-and-set instruction tomanage a semaphore, and the semaphore manages access to a predefined locationor region in memory.

  21. Пути преодоления разрыва в быстродействии элементов памяти и логики

  22. Темп роста быстродействия процессоров и памяти

  23. Использование временной и пространственной локализации кодов программ и обрабатываемых данных • виртуальная адресация • кэш-память

  24. Организация потока запросов к памяти • расслоение памяти с заданной схемой распределения адресов по N блокам памяти (блок i: AmodN=i, скремблирование) • процессоры с суперскалярной и VLIW-архитектурами

  25. Мультитредовость как средство повышения параллелизма и потока запросов к памяти • процессы, • треды POSIX pthreads, • «лёгкие» треды qthread

  26. FE бит • значение FE бита full\empty устанавливает, что слово памяти имеет содержимое или нет • команды writeef, readfe, readff и writeff могут выполняться только при определенном в них в первом компоненте суффикса значении бита FE и оставляют после выполнения значение этого бита, заданное компоненте суффикса команды • writeff требует, чтобы перед её выполнением значение FE бита слова памяти, в которое будет запись, было full и оставляет после выполнения это же значение

  27. традиционные специальные переменные (замки, семафоры, сигналы) неделимые последовательности команд системные запросы ОС Full/Empty биты введение в каждое слово памяти Full/Empty битов синхронизация при каждом обращении к памяти: writeef, readfe, readff и writeff Межтредовая синхронизация и коммуникации

  28. язык XMTC • PRAM (Parallel Random Access Model) • eXplicit Multi-Threading (XMT) • язык программирования: С + 3 оператора: Spawn, Join и PS (Prefix-Sum) • PS(e, x) – атомарно возвращает текущее значение х, сохраняя новое х+e • $-номер текущего треда

  29. структура мультитредовой программы • возможность синхронного и асинхронного выполнения тредов

  30. пример программы • psBaseReg x =0; • spawn(0,n-1){ • int e; • e = 1; • if(A[$]) != 0){ • ps(e,x); • B[x] = A[$]; • } • }

  31. Basic Threading qthread_init qthread_finalize - qthread_fork, Futures future_init future_fork future_join_all future_exit FEB qthread_feb_status qthread_readFE qthread_readFF qthread_writeEF, qthread_writeEF_const qthread_writeF, qthread_writeF_const Mutex qthread_lock, qthread_unlock Qthread Library

  32. Сортировка миллиарда чисел на 48-процессорной Itanium 1.5 ГГц SGI Altix SMP

  33. Умножение матрицы на вектор

  34. Умножение матрицы на вектор с оптимизацией

  35. Мультиядерные мультитредовые потоковые вычисления

  36. Структура программы

More Related