Samara Portal Technology, Computers

Самарский портал "Технологии, компьютеры"

Галопом по вычислительным Европам. Часть 8. Хранение данных.

Приложение 1: «Параллельные миры, или немного о динозаврах»

Представьте себе, что динозавры не вымерли, и вполне успешно живут себе в своих экологических нишах, в таких, где мелким и шустрым млекопитающим ничего не светит. Ну да, я о «больших ЭВМ», сиречь, mainframe. И — да, они не вымерли. Из-за ряда факторов оказалось, что мигрировать на стремительно развивающиеся x86 решения сначала невозможно, потом несуразно дорого, а теперь это и вовсе, лишено большого смысла. Слишком далеко разошлись эволюционные ветви, и слишком по-разному теперь решаются задачи.

Галопом по вычислительным Европам. Часть 9. Параллельные миры и техпроцессы. Статья Ильи Вайцмана. 04.12.2023 г.

Вдаваться в полный анализ всей новой системы IBM Z/16 я не буду, это тема для большой монографии, а вот на процессоры последнего поколения от IBM и их сборки посмотрим повнимательнее. Итак, что у нас тут? У нас тут 7 nm (производимый на заводах Samsung) двухчиповый процессор шестнадцатого поколения IBM Telum, содержащий восемь CISC ядер с частотой до 5 GHz, у каждого ядра свой кэш L2 емкостью 32 MB (уже неплохо, да?) с латентностью 19 тактов или 3,8 наносекунды. А вот дальше начинается то, что отличает большие компьютеры от привычного мира PC и того, что из него выросло. Кэш третьего уровня у процессора виртуальный, в качестве него выступает логическое объединение кэшей второго уровня по двунаправленной кольцевой шине с пропускной способностью 320 GB/s и с задержкой, не превышающей 12 наносекунд[1]. Вместо полного переписывания данных L2, которые, по мнению ядра, больше не нужны, новыми порциями из оперативной памяти (как это обычно делается) — их, по возможности, вытесняют (перемещают) в незанятую кэш-память L2 другого ядра и помечают их как данные L3. При вновь возникшей необходимости в них — они вычитываются оттуда гораздо быстрее, чем из основной памяти, как тем же ядром, которое их туда поместило, так и любым другим.

Галопом по вычислительным Европам. Часть 9. Параллельные миры и техпроцессы. Статья Ильи Вайцмана. 04.12.2023 г.

Эта конструкция не только увеличивает формальный размер виртуального L3 до 256 мегабайт на кристалл, но и радикально ускоряет передачу данных между потоками, исполняющимися на разных ядрах[2]. Но на этом еще ничего не кончается. Схожим образом (по шине M-bus) связываются L2 и у процессоров на двух кристаллах в каждом сокете (512 мегабайт на сокет) и даже в нескольких сокетах (через X-bus), что позволяет говорить о появлении в четырехсокетной системе с 64 ядрами виртуального же кэша четвертого уровня, объемом до 2048 мегабайт (два гигабайта, да).

В одном мейнфрейме может быть до 4 таких[3] узлов CPC (Central Processor Complex) по 256 ядер объединенных архитектурно подобной двунаправленной кольцевой шиной[4] (называется A-bus) с пропускной способностью «всего» 45 GB/s. Такая степень связанности существенно ускоряет обработку определенных классов задач. В результате возникает ситуация, когда имеющая формально вполне себе среднюю суммарную производительность ядер[5] система показывает просто фантастические результаты при обработке больших массивов.

Галопом по вычислительным Европам. Часть 9. Параллельные миры и техпроцессы. Статья Ильи Вайцмана. 04.12.2023 г.

Но и это еще не всё. Что такое нейроускоритель, высокопараллельная система для приложений с элементами искусственного интеллекта, все примерно представляют. Нормальный AI-ускоритель, как правило, это отдельная плата с интерфейсом PCIe 16x. Но в финтехе, где в ходу мейнфреймы IBM, есть спрос на очень специфическое применение таких ускорителей: их используют для предотвращения мошенничества на этапе до совершения транзакции, и тут значение имеет не только производительность нейроускорителя, как таковая, но и общее время реакции системы. Нужно успеть, не внося существенной задержки, проанализировать транзакцию на предмет подозрительных признаков мошенничества и всякое такое — и времени на это меньше, чем потребуется только для передачи данных в ускоритель и обратно через PCIe 16x, даже считая саму обработку бесконечно быстрой. Поэтому в процессорах Telum нейроускоритель (вполне обычных параметров, но немного оптимизированный архитектурно[6] именно для финтеха) интегрирован в процессор и подключен к межъядерной шине в те самые 320 GB/s. Разумеется, каждому ускорителю доступна, помимо собственной системы кэширования с пропускной способностью 600 GB/s, и вся иерархия виртуальных кэшей «третьего», «четвертого» и «пятого» уровней процессора и системы в целом. Это позволяет добиться требуемой скорости реакции (от 1,1 до 1,2 миллисекунды) на больших потоках запросов.

Ну и по мелочи: вся оперативная память шифруется, применяется система RAIM5 (то же самое, что RAID5), только для памяти. Вышедший из строя модуль памяти не обваливает систему и может быть заменен прямо на ходу.

Приложение к приложению.

Но, конечно, денег хотят все. Производители «традиционных» процессоров прекрасно понимают пути повышения производительности и требования рынков. Так, например, анонсированная недавно серия Intel Xeon Max должна иметь 56 P-ядер, 128 MB L3 и 64 GB HBMе2 памяти., а высокопараллельные ускорители Max GPU (применяемые в системах ИИ и для визуализации) должны получить до 8 HBM2e-контроллеров на 128 GB памяти и обещают пиковую FP64-производительность на уровне 52 Тфлопс. Правда, за 600 ватт за единицу. Компания AMD готовит ответ в виде 96-ядерных AMD EPYC Genoa серии 9000 с 384 L3, а в следующем году размер L3 с многослойной упаковкой обещает дорасти до нескольких гигабайт. Ну, и с видеадаптерами/ИИ-ускорителями у компании AMD все традиционно хорошо. Ускоритель MI250X достигает производительности 95,7 Тфлопс (на матричных вычислениях).

В 2023 году на рынках высокопроизводительных вычислений будет интересно.

Приложение 2: «чем меньше — тем лучше», или Почему так важен техпроцесс?

В чем дело и почему все так переживают вокруг загадочного слова «техпроцесс»? Давайте разбираться. Что такое «техпроцесс»? Грубо говоря, характерный размер элемента. А что такое у нас этот размер в переводе на потрогать? Площадь, грубо говоря, элементов, контактов в элементах и между элементами. А площадь контактов мало того, что определяет необходимые токи, так еще и пропорциональна второй степени линейных размеров элемента. Т.е. если мы уменьшаем проектную норму в два раза, то можем уменьшить управляющий ток уже в четыре раза. Что, как вы понимаете, при равном напряжении дает в четыре раза меньшее потребление энергии отдельно взятым транзистором. Так ли это? Давайте проверим. У меня под рукой есть два ноутбука на процессорах очень близкой (чтобы исключить ее влияние) архитектуры: Intel® Core™ i7-3612QM Processor с проектной нормой 22 nm из 1400 миллионов транзисторов и Intel® Core™ i3-2350M Processor с проектной нормой 32 nm из 624 миллионов транзисторов.

Что у нас получается в цифрах? Давайте смотреть: Проектная норма у них отличается в 1,6 раза, т. е. мы ожидаем уменьшения потребления отдельно взятого транзистора в 1,62=2,56 раза, что при увеличении количества транзисторов в 2,24 раза при примерно равных частотах должно дать нам примерно одинаковое потребление энергии (вообще-то технически правильнее говорить о мощности). Так ли это? Именно так! TDP у обоих процессоров 35 ватт — но при этом i7-3612QM в разы быстрее. Все-таки, у i7-3612QM, при равном потреблении энергии, ровно вдвое больше вычислительных ресурсов — 4 ядра/8 потоков при 6 MB L3 против 2 ядер/4 потоков при 3 MB L3 у i3-2350M.

Вот вам и роль техпроцесса: при уменьшении проектной нормы в полтора раза при прочих равных (на таком же по площади кристалле и с таким же энергопотреблением) процессоры по производительности отличаются в 2-3 раза[7] (на разных задачах).

Пропорция примерно сохраняется и дальше, вот только теперь процессоры делают по технологии 7 nm, 5 nm, а в недалеком будущем обещают и до 1 nm дойти. Желающие могут сами пересчитать, во сколько раз более мощные процессоры сегодня можно упаковать в ноутбучные теплопакеты 10, 15 и 35 ватт.

Дополнительным бонусом от уменьшения размеров является уменьшение времени прохождения[8] сигнала по линиям связи, что упрощает синхронизацию на повышенных частотах.

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

К сожалению, потребление энергии растет тоже пропорционально квадрату частоты, так что сегодня больше 5-5,5 GHz не получается, даже при 5 nm техпроцессе. Критичным становится уже удельное тепловыделение, даже не на квадратный миллиметр теплоотвода, а на кубический миллиметр кристалла, теплопроводности кремния не хватает. Поэтому процессоры в последнее время больше «растут в ширину», чем по частоте, увеличивая количество конвейеров, ядер и, соответственно, IPC при ограничении частоты величиной 4-4,7 GHz регулярной частоты (с кратковременным турборежимом до 5,5 GHz).

Что мы, собственно, и наблюдаем последние лет 40: каждый новый техпроцесс примерно удваивает количество транзисторов на единицу площади (производительность на равной частоте) и позволяет увеличить рабочую частоту.

Галопом по вычислительным Европам. Часть 9. Параллельные миры и техпроцессы. Статья Ильи Вайцмана. 04.12.2023 г.

Конечно, как видно из таблицы, процесс шел неровно. Дело в том, что на рубеже 2010-2011 годов энергопотребление процессоров частотой около 5 GHz стало совершенно чудовищным (95-125 ватт, что является предельной величиной для применения воздушного[11] охлаждения кулерами разумных размеров и шумности), и производительность следующих поколений процессоров постарались нарастить за счет архитектурных усовершенствований, а не простым увеличением частоты. Кроме того, при смене технологии увеличилась с 70-80°С до 100-105°С допустимая температура кристаллов, а это существенно облегчило теплоотвод. Ну и материнские платы перепланировали — на них стали помещаться кулеры побольше.

Есть у меня «знакомый» компьютер на AMD A10-5800K (32 nm техпроцесс). Даже по меркам 2022 года (после установки SSD и нормального объема памяти) его производительности достаточно для комфортной работы и развлечений (кроме современных игр, конечно). Но какой же он горячий!!! При увеличении нагрузки (особенно, одновременно на CPU и встроенный GPU) он, даже с огромным кулером, за 10-15 секунд улетает за критические для себя 70°С, а вентилятор оглашает помещение напряженным воем. 125 ватт в турборежиме, никуда не денешься. Теоретически, можно было бы установить жидкостное охлаждение — и в свое время многие так и делали, но сегодня вкладываться в такую систему для старого процессора уже нерационально.

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

Если ли предел уменьшению техпроцесса и повышению производительности? Есть. До бесконечности уменьшать проектную норму не получится. Размер атома кремния 0.143 nm, т. е., переход транзистора с характерным размером (техпроцессом) 1,4 nm состоит всего лишь из 10x10=100 атомов, примерно. Даже меньше, потому что там не квадратное пятно, а скорее округлое. Работа там происходит уже со считаным в штуках количеством электронов, так что дальше уменьшаться практически некуда. Ну, 1 nm, и это уже около 50-60 атомов в пятне контакта (и те еще ходуном ходят при температурах, отличающихся от абсолютного нуля), дальше-то куда уменьшаться?

Так что я предполагаю, что дезагрегация архитектур и вычислений путь не только естественный, но и неизбежный. Если мы не сможем (а скоро уже не сможем) делать еще более быстрые процессоры, то придется распределять задачу на несколько процессоров. Собственно, путь решения описан выше, в Приложении 0, он состоит в выносе из CPU на сами периферийные устройства всех возможных задач ввода/вывода (и даже задач по какой-то предобработке данных) — и мы уже движемся по этому пути. Что делать, когда и этот ресурс вычерпаем, установив «предельные процессоры» с проектной нормой 1 mn на все устройства? Не знаю…

Мысли и прогнозы на эту тему есть, но они выходят далеко за рамки общеознакомительной статьи.

[1]Примерно такую же латентность обеспечивает L2 у Core i7 с частотой около 3,5 GHz. Но у него при такой латентности размер 256 килобайт, а не мегабайт. Почувствуйте разницу в 1024 раза.

[2]В привычных PC-процессорах этот процесс осуществляется через реальный кэш третьего уровня, который существенно медленнее, чем второго, все-таки.

[3]Каждый CPC может нести до 10 TB памяти, а всего получается, 40 TB оперативной памяти на систему.

[4]Т.о., можно говорить и про пятый уровень аппаратного кэширования, общим объемом восемь гигабайт на систему.

[5]256 ядер, пускай даже многопоточных — вполне нормально для средненького двухсокетного сервера, правда? Ну да, у IBM технология SMT позволяет запускать до восьми потоков на ядро, а не привычные нам два, но и это не дает ничего такого уж выдающегося. Ну четыре PC-серверочка, что такого? 2048 потоков команд.

[6]Микропрограммы для ускорителей могут быть модифицированы под конкретного заказчика, за их своевременную загрузку отвечает одно из ядер CPU.

[7]Видеоадаптер у нового процессора тоже помощнее, но прирост его мощности я оценить не могу — у «старшего» ноутбука используется только дискретное видео.

[8]Проблема, на самом деле, приобретает со временем все большую остроту. Сегодня разрабатываются оптронные линии связи между частями кристалла и отдельными чиплетами, потому что чисто электрические методы уже не позволяют создавать сохраняющие изохронность процессоры. При частотах 7 GHz и выше в достаточно большом процессоре сигнал за время одного такта (0,000000000143 с) просто не успевает распространиться на весь кристалл, и тем более — на всю микросборку с характерным размером в сантиметры.

[9]Надо отметить, что такой разброс обусловлен разницей в архитектурах (RISC ядра, как мы помним, разгоняются проще) и в подходах к проектированию. Так, например, в одно и то же время вышли CSIC процессоры Intel Pentium проектной нормы 500 nm с частотами 60 и 66 MHz, чья топология была сгенерирована автоматически, и RISC процессоры DEC Alpha с частотами от 200 до 500 MHz, разведенные вручную. А на техпроцессе 350 nm Alpha показали частоту уже 766 MHz.

[10]Режим кратковременного авторазгона, отменяемый при достижении ядром предельной температуры.

[11]Процессор AMD Threadripper с TDP до 180...280 ватт является только условно «десктопным», он используются с системами жидкостного охлаждения, или как минимум, монструозными системами с тепловыми трубками, не всегда помещающимися в стандартные корпуса.

Ссылки на все 10 статей цикла «Галопом по вычислительным Европам»:

Галопом по вычислительным Европам. Часть 1. Что такое процессор.

Галопом по вычислительным Европам. Часть 2. Пути повышения IPC.

Галопом по вычислительным Европам. Часть 3. Оптимизация.

Галопом по вычислительным Европам. Часть 4. Как накормить процессор.

Галопом по вычислительным Европам. Часть 5. Память.

Галопом по вычислительным Европам. Часть 6. Спецпроцессоры.

Галопом по вычислительным Европам. Часть 7. Ввод-вывод.

Галопом по вычислительным Европам. Часть 8. Хранение данных.

Галопом по вычислительным Европам. Часть 9. Параллельные миры и техпроцессы.

Галопом по вычислительным Европам. Часть 10. Китайский путь и персональная безопасность.

----

Информационная гигиена в эпоху интернета

Информационная гигиена в эпоху интернета. Статья Владислава Боярова. 12.08.2024 г.

Blood, Sweat & Tears, или Кровь, пот и слёзы – часть четвёртая

Blood, Sweat & Tears, или Кровь, пот и слёзы – часть четвёртая. Статья Владислава Боярова. 12.03.2024 г.

«КАТЮША» в «Пастернаке»: «КАТЮША»

«КАТЮША» в «Пастернаке»: «КАТЮША». Статья Владислава Боярова. 08.04.2024 г.

Pantum в Самаре: business as usual

Галопом по вычислительным Европам. Часть 10. Китайский путь и персональная безопасность.

Галопом по вычислительным Европам. Часть 10. Китайский путь и персональная безопасность. Статья Ильи Вайцмана. 11.12.2023 г.