Оглавление
Технологии развиваются очень быстро и иногда не успеваешь уследить за ними. В результате возникает недопонимание. В этой статье будут описаны наиболее частые заблуждения относительно компьютеров. Также будет рассказано, как ситуация обстоит на самом деле.
Можно сравнивать процессоры по количеству ядер и тактовой частоте
Если вы следите за рынком компьютеров не первый день, то могли слышать сравнения вроде «Процессор А обладает четырьмя ядрами с тактовой частотой 4 ГГц, процессор Б 6-ядерный с тактовой частотой 3 ГГц. Поскольку 4 х 4 = 16 и это меньше, чем 6 x 3 = 18, процессор Б должен быть лучше».
Это заблуждение. В процессорах столько переменных и параметров, что их невозможно сравнивать так примитивно.
Если всё остальное одинаковое, 6-ядерный процессор быстрее 4-ядерного на такой же архитектуре. Процессор на частоте 4 ГГц при прочих равных быстрее, чем 3 ГГц. Однако, если рассматривать реальные процессоры с их сложным строением, подобное сравнение становится бессмысленным.
Существуют нагрузки, где есть выигрыш от высокой тактовой частоты и большего количества ядер. Некоторые процессоры расходуют столько энергии, что повышение производительности у них неоправданно. У некоторых процессоров кэш больше, чем у других, у каких-то более оптимизированные каналы данных.
Это длинный список, который затрудняет прямое сравнение процессоров. Поэтому не стоит сравнивать их только по количеству ядер и тактовой частоте.
Главным чипом компьютера является центральный процессор
Это было абсолютной правдой, но теперь это не так. Под словом «процессор» скрывается разная функциональность, которая на самом деле охватывает больше компонентов. Нынешний тренд называется «гетерогенные вычисления» и представляет собой объединение многих вычислительных компонентов внутри одного чипа.
Чипы на большинстве настольных компьютеров и ноутбуков являются процессорами (CPU). Если же смотреть на другие электронные устройства, там используются системы на чипе (SoC).
На материнской плате компьютера есть пространство для установки десятков отдельных чипов, каждый из которых нужен для определённой работы. В большинстве других устройств столько места нет. Разработчики пытаются внедрить максимум функциональных возможностей в один чип, чтобы добиться лучшей производительности и энергоэффективности.
Кроме центрального процессора, система на чипе в смартфонах обычно содержит графический процессор, оперативную память, блок кодирования и декодирования мультимедиа, сетевой блок, управление электропитанием и десятки других компонентов.
Все всё равно воспринимают это как процессор, но на самом деле центральный процессор является лишь одним из компонентов этого чипа.
Тактовая частота является самым важным показателем производительности
На основе предыдущего мифа родился следующий. Нужно понимать, что тактовая частота решает не всё. Два процессора в одной ценовой категории на одной тактовой частоте могут сильно отличаться по скорости работы.
Конечно, частота вычислительных ядер играет роль, но достигнув определённого уровня, в дело вступают другие факторы. Процессоры могут тратить много времени в ожидании данных от других компонентов компьютера. Поэтому важен размер кэша и архитектура. Они могут сократить время ожидания и повысить производительность процессора.
Архитектура системы в целом также играет огромную роль. Возможно, что медленный процессор может обрабатывать больше данных, чем быстрый, если внутренняя архитектура лучше оптимизирована. Производительность на единицу энергопотребления уже становится доминирующим фактором для определения производительности процессорной архитектуры.
Технологические процессы и размеры компонентов помогают сравнивать чипы
В последнее время было много новостей о том, что Intel задерживается с распространением своего следующего технологического процесса. Когда разработчики вроде Intel или AMD создают свои продукты, они производятся на определённом технологическом процессе. Чаще всего говорят о размере транзисторов, из которых состоит процессор.
Измерения делаются в нанометрах. В последние годы используются техпроцессы 14, 10, 7, 3 нм. Кажется, что можно вместить два транзистора размера 7 нм в чип такого же размера, в котором помещается один транзистор 14 нм, но это не всегда правда.
Существует множество потерь, поэтому количество транзисторов и вычислительная мощь не всегда масштабируются в зависимости от техпроцесса.
Ещё один подвох в том, что не существует стандартной системы измерения. Когда-то все крупные компании измеряли одинаково, но теперь они используют разные средства измерения. Это означает, что размер чипа не является определяющим при сравнении. Если два чипа находятся примерно в пределах одного поколения, меньший необязательно лучше.
Количество ядер графического процессора определяет производительность
Если сравнивать центральный процессор и графический, главное отличие заключается в количестве ядер. Центральный процессор обладает несколькими очень мощными ядрами, а графический сотнями или тысячами менее мощных. Это позволяет им производить параллельные вычисления.
Как 4-ядерный процессор одной компании может обладать не такой производительностью, как 4-ядерный процессор другой компании, так различаются и графические процессоры.
Нет единственно правильного способа сравнивать их по количеству ядер. Каждый производитель использует разные архитектуры, что делает такие измерения бессмысленными.
Например, одна компания может выбрать меньшее количество ядер, но добавить функциональность. Другая предпочтёт больше ядер за счёт сокращения функциональности. Как и в случае с CPU, можно сравнить графические процессоры одного производителя и одной линейки продуктов.
Сравнение FLOPs помогает измерять производительность
Когда запускается новый высокопроизводительный чип или суперкомпьютер, в его описании фигурирует параметр FLOPs. Он означает число операций над числами с плавающей запятой в секунду и измеряет, сколько инструкций может выполнять система.
Данная единица измерения кажется достаточно простой, но производители могут указывать её так, чтобы заставить свои продукты выглядеть более быстрыми.
Например, вычислить 1.0 + 1.0 намного проще, чем сложить 1234.5678 + 8765.4321. Компании могут запутывать типами вычислений и связанной с ними точностью, обещая производительность.
FLOPs показывает только чистую вычислительную производительность CPU/GPU, не обращая внимания на другие важные факторы, вроде пропускной способности памяти. Компании могут оптимизировать результаты бенчмарков в пользу своих продуктов.
ARM против x86
Двумя доминирующими архитектурами являются x86 и ARM. Их наборы команд определяют, как работают и взаимодействуют компьютерные компоненты. Архитектура ARM используется в мобильных устройствах и встраиваемых системах, x86 применяется в компьютерах, ноутбуках и серверах. Есть и другие архитектуры, но они встречаются редко.
Когда говорят о наборе команд, речь идёт о внутреннем строении процессора. Это напоминает перевод книги на другой язык. Вы можете передавать одни идеи, но записывать их разными словами. Можно написать программу и скомпилировать её одним способом для процессора x86 и другим для ARM.
Между двумя этими архитектурами есть ряд ключевых отличий и в результате они предназначаются для разного типа устройств. ARM отличается гибкостью и широким набором технологий. Когда создаётся процессор на ARM, инженеры словно играют в конструктор Лего. Они могут выбирать разнообразные компоненты для создания идеального процессора под свои потребности.
Если нужен процессор для обработки большого объёма видео, можно добавить более мощный графический процессор. Если нужны безопасность и шифрование, можно добавить выделенные ускорители. ARM продаёт лицензии на свои технологии вместо производства и продажи самих процессоров.
Это одна из причин того, почему архитектуры этого производителя так распространены. Intel и AMD использовали другой подход и не успели сориентироваться на рынке мобильных устройств.
Intel создала архитектуру x86, на ней же работают процессоры AMD. Если вы видите описание x86-64, это 64-разрядная версия x86. Если вы работаете на Windows, то можете увидеть разные папки Program Files и Program Files (x86). Это не означает, что программы в первой папке не работают не на архитектуре x86. Это значит, что перед нами 64-разрядные программы, а в папке Program Files (x86) 32-разрядные.
Другим запутанным вопросом может быть производительность двух архитектур. Многие уверены, что процессоры x86 всегда быстрее по сравнению с ARM и поэтому последние не применяются в мощных компьютерах.
Обычно это так, но это неравноценное сравнение. Сам принцип ARM нацелен на эффективность и низкий расход энергии.
Разработчики из ARM не пытаются конкурировать на рынке высокопроизводительных компьютеров, поскольку такая задача не стоит. Intel и AMD стараются предложить самые производительные процессоры, а ARM предлагает максимальную производительность на ватт.
ARM производит процессоры
Почти все процессоры с низким энергопотреблением и встраиваемые системы работают на архитектуре ARM. Эта компания сама не занимается производством процессоров. Она разрабатывает их схемы, показывая, как процессоры должны работать, а производством занимаются другие.
Например, A13 SoC в последних iPhone использует архитектуру ARM, но процессор произведён Apple. Это как дать авторам словарь и разрешить им что-то написать. Затем автор создаёт блоки и должен придерживаться определённых правил использования слов, но писать он может что хочет.
Продавая лицензии на свою интеллектуальную собственность, ARM позволяет Apple, Qualcomm, Samsung и многим другим производителям создавать свои чипы. Разработчики чипов для телевизоров могут сконцентрироваться на кодировании и декодировании мультимедиа, разработчики чипов для беспроводной мыши сосредоточатся на низком расходе энергии.
Чип ARM внутри мыши не нуждается в мощном графическом процессоре. Поскольку все процессоры на архитектуре ARM используют одинаковый набор команд, они могут запускать одни приложения. Это облегчает жизнь разработчикам приложений и повышает совместимость.
Графические процессоры быстрее центральных
В последние годы наблюдается большой рост производительности графических процессоров и их задействуют всё чаще. Многие традиционные для центральных процессоров задачи теперь выполняются на графических, получая преимущество от параллельных вычислений.
Если в задаче есть множество небольших частей, которые могут выполняться одновременно, графический процессор справится быстрее центрального. Но это не всегда так, поэтому центральные процессоры никуда не денутся.
Чтобы правильно использовать центральный или графический процессор, разработчики должны писать код с применением специальных компиляторов и интерфейсов с оптимизацией для выбранной платформы. Внутренние вычислительные ядра графического процессора, которых могут быть тысячи, очень простые по сравнению с центральным процессором.
Они созданы для выполнения небольших операций, которые повторяются снова и снова.
Ядра центрального процессора созданы для выполнения самых разных сложных операций. Если программа не может выполняться параллельно, центральный процессор всегда быстрее. При использовании правильного компилятора можно запускать код для центрального процессора на графическом и наоборот, но преимущество есть только в том случае, если программа оптимизирована под определённую платформу.
Если посмотреть на цену, самые дорогие процессоры могут стоить $50000, тогда как самые дорогие графические процессоры вдвое дешевле. В общем, CPU и GPU отлично справляются с задачами под них и нет смысла говорить, что один быстрее другого.
Процессоры всегда становятся быстрее
Одним из наиболее известных представителей технологической отрасли является закон Мура. Он гласит, что количество транзисторов на чипах примерно удваивается каждые два года. Закон действовал на протяжении последних сорока лет, но эти времена подходят к концу и рост количества транзисторов замедляется.
Нельзя добавить больше транзисторов в чип, но можно попробовать сделать чипы крупнее. Проблема в том, что нужно подводить достаточное количество энергии и устранять тепло. Современные процессоры потребляют сотни ампер тока и генерируют сотни ватт тепла.
Системы охлаждения и электропитания испытывают проблемы и близки к пределу своих возможностей. Поэтому нельзя просто делать более крупные чипы.
Раз так, нельзя ли сделать транзисторы меньше и добавить им производительности? Это было возможно на протяжении нескольких последних десятилетий, но сейчас разработчики приближаются к физическим пределам размера.
В новых техпроцессах 7 нм и 3 нм большой проблемой становится квантовый эффект и транзисторы перестают вести себя как должны. Пока ещё есть небольшой запас для уменьшения размеров, но без серьёзных инноваций намного уменьшить транзистор не получится. Если нельзя сделать чип крупнее и транзисторы меньше, можно ли заставить существующие транзисторы работать быстрее? В прошлом это было возможно, но вряд ли это возможно сейчас.
Скорость процессоров на протяжении многих лет увеличивалась в каждом новом поколении. В последнем десятилетии тактовая частота сохраняется на уровне 3-5 ГГц. На это влияют несколько факторов.
Во-первых, рост частоты повышает расход энергии, но главная проблема снова заключается в законах физики и невозможности уменьшить транзисторы.
Когда транзисторы делают меньше, нужно делать меньше подходящие к ним проводники, что увеличивает сопротивление. Обычно скорость транзисторов повышали, размещая компоненты ближе, но сейчас между ними осталась всего пара атомов. Ближе уже просто некуда.
Из всех этих причин очевидно, что производительность процессоров соседних поколений не будет различаться так сильно, как прежде. Впрочем, над решением этой проблемы работают множество очень умных людей, так что беспокоиться не стоит.