Галопом по вычислительным Европам. Часть 9. Параллельные миры и техпроцессы.
Приложение 3: «китайский путь, или как минимизировать риски»
Чем интересны китайцы, кроме как становлением там почти нечеловеческой роевой цивилизации безличностного типа? Прагматичностью. Вот, к примеру, решили они создавать собственные процессоры — но никакого «особого пути» выдумывать не стали. Взяли (сначала спиратили, а потом — убедившись, что получается нормально — даже лицензировали) вполне работоспособные решения MIPS (из которых выросли процессоры Loongson). Причем, китайцы изначально сознательно взяли самую простую в плане системы команд архитектуру, позволившую им максимально быстро добиться результата в кремнии, одновременно получив «на блюдечке» готовые операционные системы и приложения, разработанные для этой архитектуры. Выбор был правильный, они довольно быстро (за пару лет) выпустили первые процессоры. Далее они стали их спокойно совершенствовать как в архитектурном плане, так и в плане расширения под современные требования системы команд — и имеют сегодня пристойную в смысле производительности и практически суверенную архитектуру. Если присмотреться, то Loongson в версии архитектуры loongarch64 настолько отличается от хорошей, но к 2020 году сильно устаревшей MIPS64, что процессоры уже несовместимы со своими предками.
Насколько рационален этот китайский путь, и не интереснее было бы им разработать вообще что-то свое, отдельное? Чисто теоретически, наверное, такая задача была бы интересна — но зачем? Китайцам потребовалось получить собственные процессоры достаточной производительности, а не переизобрести велосипед. Воспользовавшись мировым опытом в разработках архитектур (и, надо заметить, в производстве микроэлектроники) они сэкономили себе несколько десятков лет и несчетные миллиарды долларов. Что же касается успехов по абсолютной шкале — то в Intel заявили, что через 3-5 лет им придется рассматривать китайских производителей процессоров в качестве основных конкурентов. Конечно, некоторое кокетство и желание пнуть AMD тут есть, но еще несколько лет назад подобное заявление было бы немыслимым.
Когда же им потребовалось создать совместимые с мировыми разработками ПО процессоры (в смысле, x86-64) — они одной рукой отлицензировались у AMD (быстро и недорого получив клоны процессоров архитектуры Zen 1 (правда, судя по всему, инструкции для шифрования им не лицензировали и даже не показали), а другой — вложились в развитие старой-доброй компании VIA, которая когда-то давным-давно делала[1] х86 процессоры. Чтобы не складывать все яйца в одну корзину. И, смотрите: они уже выпустили семейство х86-64 процессоров Kaisheng, имеющие от 4 (для ноутбуков) до 32 (для серверов) ядер и очень даже годной[2] производительности. Китайцы не кукарекали про неимеющееаналогов, они реально добились независимости от Intel и AMD. А ведь у них есть и вполне приличные разработки архитектуры ARM и RISC-V.
Нормально у китайцев и с высокопараллельными вычислителями. Семейство Biren BR100, например, еще не самый топ мирового рейтинга, но уже совсем неплохо выглядят рядом с ускорителями AMD и Nvidia. В принципе, набрать любую требуемую мощность из чисто китайских вычислителей сегодня уже можно. Да, это будет дороже, «горячее» и займет больше места, чем аналогичный комплекс на западных компонентах, но разница тут уже (а) только количественная и (б) уже вполне преодолимая.
Приложение 4: «Обыкновенное чудо XBox 360».
Вышедшая в 2005 году игровая консоль Microsoft XBox 360 удивила пользователей тем, что имея относительно скромные по компьютерным меркам параметры производительности показывала удивительно высокую скорость во всех играх, которые были для нее выпущены. Казалось бы: 90 nm техпроцесс, что тут сделаешь? Вот если Pentium 4 Prescott взять: одноядерный двухпоточный процессор, частота до 3,8 GHz, 2 MB кэша, 169 миллионов транзисторов — практический топ на тот момент, так он и далеко ничего подобного в играх показать не мог. Каким образом IBM Xenon из 165 миллионов транзисторов на частоте 3,2 GHz с кэшем L2 всего в 1 MB (и то, половинной частоты) обгонял его в играх со свистом? Давайте посмотрим.
Архитектура XBox 360
Во-первых, как вы видите, IBM Xenon трехядерный. Как? Помните, я говорил, что RISC ядра гораздо проще, чем CISC уже только за счет отсутствия декодера команд и более простого ядра? Вот именно настолько ядро получилось проще — и IBM Xenon, базирующийся на RISC-архитектуре PowerPC, получил в том же количестве транзисторов три исполнительных ядра вместо одного. Причем ядра двухпоточные. Да, конечно, IPC «на поток» у такого процессора получалось меньше, чем у Intel Prescott, но хорошо распаралливаемый и качественно оптимизированный игровой код мог использовать все шесть потоков одновременно, так что общая производительность использовалась в полной мере. Опять же: у Pentium 4 пропускная способность шины 6,4 GB/s, а у IBM Xenon, как видите, 21,6 GB/s. Т.е., ядра процессора приставки не простаивают.
Огромный вклад в общую производительность системы внес и модуль eDRAM, емкостью 10 MB, который используется в качестве фреймбуфера для видеоадаптера. Благодаря этому устройству[3] Xenos поддерживает тяжелейшие для производительности режимы 4x MSAA, Z-буферизацию, Альфа-блендинг без потерь в производительности GPU, несмотря на то, что видеоадаптер работает, как и у других интегрированных видеоадаптеров, с основной оперативной памятью, конкурируя за ее пропускную способность с CPU.
Конечно, надо обратить внимание и на основную память: распаянная на плату GDDR3 отличается от современной ей DDR2 существенно большими частотами, «шириной» и, соответственно, пропускной способностью. Как видите, у XBox пропускная способность памяти составляет 22,4 GB/s, против 6,4 GB/s для двухканальной DDR2, и, разумеется, это не в последнюю очередь позволяло обеспечить эффективное использование производительности всех трех ядер и шести потоков IBM Xenon, и еще для Xenos GPU осталось достаточно ПСП.
P.S. Отдельно надо заметить, что единообразие конфигураций приставок очень сильно упрощает работу программистов, которые могут идеально оптимизировать свои игры для полного использования аппаратуры. Разработчикам же игр для PC приходится исходить из того, что игра должна работать на очень большом количестве различных конфигураций, причем, эти конфигурации не обязательно окажутся хотя бы сбалансированными.
Приложение 5: Про неувеличение энтропии Вселенной в приложении к персональной безопасности и инструментам шифрования.
Интересный и неочевидный аспект использования VPN - это применяемые в них алгоритмы шифрования. В настоящее время стандартом де-юре и де-факто является абсолютно надежный AES-256, но что называется: "есть нюанс". Если у вас относительно новый процессор, в котором реализована аппаратная поддержка этого алгоритма (инструкции AES-NI, об эффекте от которых я писал выше), то все хорошо. Но если у вас процессор в компьютере или телефоне старый, то реализация алгоритма AES без этих новых инструкций получается очень затратной - процессор греется (и жрет батарею).
Сравнительная производительность шифрования AES-256 и ChaCha-20 на процессоре без аппаратного ускорения AES.
Что делать, если это становится критичным (ноутбук греется, а батарея телефона при использовании VPN садится на глазах)? Можно попробовать подобрать VPN, который использует другой криптоалгоритм, например, ChaCha20-Poly1305, он гораздо легче и быстрее для старых процессоров. Его криптостойкость несколько меньше, чем AES256 (но больше, чем AES128), но это не страшно. Не переживайте, его криптостойкости на вашу жизнь вполне хватит, за ближайшие лет 200 ваш трафик вряд ли вскроют, так что ваша и ваших внуков безопасность не пострадает.
Какое именно решение можно попробовать на старом процессоре? Я бы предложил начать ChaCha20-эксперименты с nthLink, это удобное, кроссплатформенное решение (ну да, перекидывает на свою страницу, это нормально для бесплатных приложений - просто закройте ее и работайте дальше). И - да: старый AMD А8-3500M, например, при интенсивном использовании сети греется с ним ощутимо меньше.
P.S. Если в описании используемых алгоритмов шифрования вы видите буковки DES или TripleDES (3DES, TDES), то таким инструментом пользоваться нельзя! В 2022 году эти виды шифрования безнадежно устарели и ломаются моментально (за единицы минут, максимум) сравнительно недорогим многоядерным десктопом! И это даже без привлечения к работе высокопараллельных GPU.
[1]И надо сказать, что у них были довольно интересные процессоры. Провально проигрывая конкурируюшим процессорам Intel в каждый момент времени в плавающей точке — в целочисленных операциях (и, соответственно, в офисных пакетах) процессоры Cyrix/Via показывали очень достойную производительность при минимальной цене и сравнительно небольшом нагреве. Сборка из Cyrix 6x86MX на чипсете VIA при двух мегабайтах L2 была довольно популярна в одно время. Выходило «дешево и сердито», особенно с разгоном.
[2]Ноутбучный KX-6000G в тесте geecbench 5 показывает производительность на уровне моего i7-3612QM. Не бог весть что, но работать можно. За счет восьми потоков мой проц все еще быстрее, но один поток уже лучше у китайцев.
[3]Обратите внимание: пропускная способность самой eDRAM целых 256 GB/s, а «наружу» попадает всего 32 GB/s. О чем это говорит? Говорит это о том, что читалась память только большими блоками (как в GDDR или HBMe), а потом некоторая логика выбирает и передает для обработки уже именно то, что было по нужному адресу.
Ссылки на все 10 статей цикла «Галопом по вычислительным Европам»:
Галопом по вычислительным Европам. Часть 1. Что такое процессор.
Галопом по вычислительным Европам. Часть 2. Пути повышения IPC.
Галопом по вычислительным Европам. Часть 3. Оптимизация.
Галопом по вычислительным Европам. Часть 4. Как накормить процессор.
Галопом по вычислительным Европам. Часть 5. Память.
Галопом по вычислительным Европам. Часть 6. Спецпроцессоры.
Галопом по вычислительным Европам. Часть 7. Ввод-вывод.
Галопом по вычислительным Европам. Часть 8. Хранение данных.
Галопом по вычислительным Европам. Часть 9. Параллельные миры и техпроцессы.
Галопом по вычислительным Европам. Часть 10. Китайский путь и персональная безопасность.