В чем разница между CPU и GPU?
, отредактировано
CPU и GPU — это процессоры. Между ними есть много общего, однако сконструированы они были для выполнения разных задач. В чём конкретно выражается разница между CPU и GPU, вы узнаете из этой статьи.
Ключевые выводы:
- CPU оптимизирован для последовательного выполнения сложных инструкций с минимальной задержкой
- GPU содержит тысячи ядер для массовой параллельной обработки однотипных задач
- CPU использует большой кэш и предсказание ветвлений, GPU — массив исполнительных блоков
- Для майнинга GPU подходит лучше, потому что вычисление хэшей — это миллионы независимых однотипных операций
- CPU и GPU дополняют друг друга: CPU управляет логикой программы, GPU ускоряет параллельные вычисления
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
Содержание:
- Что такое CPU
- Что такое GPU
- Отличие CPU от GPU
- Почему для майнинга используется GPU, а не CPU
- Часто задаваемые вопросы
Что такое CPU
CPU — это центральный процессор (англ. central processing unit).
Основная функция — выполнение цепочки инструкций за максимально короткое время.
CPU спроектирован таким образом, чтобы выполнять несколько цепочек одновременно или разбивать один поток инструкций на несколько и, после выполнения их по отдельности, сливать их снова в одну, в правильном порядке. Каждая инструкция в потоке зависит от следующих за ней. Именно поэтому в CPU так мало исполнительных блоков, а весь упор делается на скорость выполнения и уменьшение простоев, что достигается при помощи кэш-памяти и конвейера.
Если вы хотите знать не только что такое CPU, но и как работает процессор, то прочтите эту статью.
Что такое GPU
GPU — это графический процессор (англ. graphics processing unit).
Основная функция — рендеринг 3D-графики и визуальных эффектов.
GPU получает на вход полигоны, а после проведения над ними необходимых математических и логических операций выдаёт координаты пикселей. По сути, работа GPU сводится к оперированию над огромным количеством независимых между собой задач. Поэтому он содержит огромное количество исполнительных блоков — в современных GPU их 2048 и более.
Отличие CPU от GPU
С понятиями разобрались, теперь посмотрим, в чём отличие CPU от GPU.
- Доступ к памяти. В GPU он связанный и легко предсказуемый — если из памяти читается элемент текстуры, то через некоторое время настанет очередь и соседних текселов. С записью ситуация аналогичная.
- Размер кэш-памяти. Графическому процессору, в отличие от универсальных процессоров, не нужна кэш-память большого размера. Для текстур требуются лишь 128–256 килобайт.
- Поддержка многопоточности. Центральный процессор исполняет 1––2 потока вычислений на одно ядро, а графический процессор может поддерживать несколько тысяч потоков на каждый мультипроцессор, которых в чипе несколько штук. И если переключение с одного потока на другой для CPU стоит сотни тактов, то GPU переключает несколько потоков за один такт.
- Архитектура. В CPU большая часть площади чипа занята под буферы команд, аппаратное предсказание ветвления и огромные объемы кэш-памяти, а в GPU большая часть площади занята исполнительными блоками.
Почему для майнинга используется GPU, а не CPU
Если CPU принимает решения в соответствии с указаниями программы, то GPU — производит огромное количество однотипных вычислений. Выходит, что если подавать на графический процессор независимые простейшие математические задачи, то он справится значительно быстрее, чем центральный процессор. Этим успешно пользуются майнеры биткоинов.
Суть майнинга заключается в том, что компьютеры решают математические задачи, в результате которых создаются биткоины. Все биткоин-переводы по цепочке передаются майнерам, чья работа состоит в том, чтобы подобрать из миллионов комбинаций один-единственный хэш, подходящий ко всем новым транзакциям и секретному ключу, который и обеспечит майнеру получение награды. Скорость вычисления напрямую зависит от количества исполнительных блоков. Поэтому GPU больше подходят для выполнения данного типа задачи, нежели CPU. Чем больше количество произведенных вычислений, тем выше шанс получить биткоины.
Часто задаваемые вопросы
Может ли GPU полностью заменить CPU?
Нет, GPU не может заменить CPU. Центральный процессор управляет операционной системой, обрабатывает ввод-вывод, принимает решения на основе условий и координирует работу всех компонентов. GPU эффективен только для массовых параллельных вычислений — рендеринга графики, обучения нейросетей, криптографии. Эти процессоры дополняют друг друга, а не конкурируют.
Почему в GPU так много ядер, а в CPU — мало?
CPU решает задачи, где каждая следующая инструкция зависит от предыдущей, поэтому ему нужны мощные ядра с большим кэшем и предсказанием ветвлений. GPU обрабатывает тысячи независимых задач одновременно (например, пиксели на экране), поэтому ему выгоднее иметь много простых ядер. Это фундаментальное различие архитектур: CPU — про скорость одного потока, GPU — про количество параллельных потоков.
Где ещё используется GPU кроме графики и майнинга?
GPU активно применяется в машинном обучении и обучении нейросетей (TensorFlow, PyTorch), научных вычислениях (моделирование молекул, прогноз погоды), обработке видео и рендеринге 3D-сцен, криптографии и шифровании. Технология GPGPU (General-Purpose computing on GPU) позволяет использовать видеокарты через фреймворки CUDA (NVIDIA) и OpenCL для любых параллельных вычислений.
Что такое CUDA и OpenCL?
CUDA — проприетарная платформа параллельных вычислений от NVIDIA, позволяющая программировать GPU как универсальный вычислитель. OpenCL — открытый стандарт, работающий на GPU разных производителей (NVIDIA, AMD, Intel). Оба фреймворка позволяют разработчикам запускать на GPU не только графические, но и произвольные параллельные вычисления, что используется в машинном обучении, обработке данных и научных расчётах.