А ловко ты это придумал! Метод распараллеливания работы моделей на CPU и GPU

Если Вам приходится постоянно обучать модели, будь то Machine Learning, или задачи в области Computer Vision, искать и классифицировать какие-либо объекты, то Вы знаете, что ожидание результата и многочисленные итерации занимают безумно много времени. Хотите сократить время обучения и повысить эффективность работы?
Как правило при решении задач машинного обучения используется только одно вычислительное устройство, например, GPU. Но многие модели обучаются на видеокарте столько же времени, как и на процессоре. Я расскажу, как распараллелить процессы для реализации обучения моделей одновременно на GPU и CPU.
Создадим класс для запуска обучения на процессоре. Он будет выглядеть следующим образом:
class CPUManager: def __init__(self): self.env = os.environ['CUDA_VISIBLE_DEVICES'] = '-1' def trainer(self, train_test_data, model): res_dict = <> """ Тут ваш код """ return res_dict
В методе “__init__” указываем для ‘CUDA_VISIBLE_DEVICES’ значение ‘-1’, чтобы графический процессор не был использован, так как если несколько процессов будут пытаться использовать одно и то же устройство, то это может привести к ошибке OutOfMemoryError.
В методе “trainer” прописываем свою реализацию обучения модели или код для ее применения на тестовых данных.
Создадим класс для запуска обучения на графическом процессоре. Он будет выглядеть следующим образом:
class GPUManager: def __init__(self): self.env = os.environ['CUDA_VISIBLE_DEVICES'] = "0" def trainer(self, train_test_data, model): res_dict = <> """ Тут ваш код """ return res_dict
В методе “__init__” указываем для ‘CUDA_VISIBLE_DEVICES’ значение ‘0’, чтобы выбрать доступный графический процессор.
В методе “trainer” так же прописываем реализацию обучения модели или, как сказано выше, код для ее применения.
Перейдем к основному классу, который запускает наши модели и отвечает за их распараллеливание.
Для сбора итога выполнения нашего обучения или использования моделей использую класс Manager библиотеки Multiprocessing. Это реализация паттерна «заместитель», предназначенная для возможности использовать общий объект несколькими запущенными процессами. Используем его для сбора результатов выполнения кода применимых моделей так как это удобнее, чем отлавливать результаты каждого процесса по отдельности.
Используем “run”, как основной метод класса, для создания двух процессов. Первый будет принимать функцию “CPU”, указываем её как target и передаем саму модель и путь до общего датасета. Точно так же делаем со вторым методом, только передаем ему функцию “GPU”. Эти функции создают объекты своих классов, отвечающие за их реализации, после запускается метод “trained”, который также принимает датасет и саму модель. Сохраняем в наш прокси-объект результат выполнения функции и ожидаем окончание работы всех процессов.
class ParallelTeachModel: def __init__(self): self.manager = multiprocessing.Manager() self.return_dict = self.manager.dict() def CPU(self, data, model): """ Этот метод выполняется с использованием заданного пути до датасета упомянутой модели. Аргументы: data (str): путь до датасета model (object): CPU модель, которую хотим использовать """ obj_cpu_manager = CPUManager() output_res = obj_cpu_manager.trainer(data, model) self.return_dict['CPU_output'] = output_res def GPU(self, data, model): """ Этот метод выполняется с использованием заданного пути до датасета упомянутой модели. Аргументы: data (str): путь до датасета model (object): GPU модель, которую хотим использовать """ obj_gpu_manager = GPUManager() output_res = obj_gpu_manager.trainer(data, model) self.return_dict['GPU_output'] = output_res def run(self, dataset, cpu_model, gpu_model): """ Это основной код, который выполняет обработку. Аргументы: data (str): путь до датасета cpu_model (object): CPU модель, которую хотим использовать gpu_model (object): GPU модель, которую хотим использовать Результат: dict: результат обработки """ # запуск CPU модели process1 = multiprocessing.Process(target=self.CPU, args=(dataset, cpu_model,)) process1.start() # запуск GPU модели process2 = multiprocessing.Process(target=self.GPU, args=(dataset, gpu_model,)) process2.start() # Объединение процессов process1.join() process2.join() return self.return_dict
Запускаем! Создаем экземпляр класса “Parallel_Teach_Model”, указываем путь до датасета, прописываем модели для CPU и GPU, после вызываем функцию “run” того же класса. Функция возвращает выходные данные моделей в виде словаря, который мы можем использовать дальше.
if __name__ == '__main__': obj = ParallelTeachModel() dataset_path = "path" cpu_model = object() gpu_model = object() preds = obj.run(dataset_path, cpu_model, gpu_model) print(preds)
Разобрали способ оптимизации обучения или использования моделей, который необходим для сокращения времени обучения и повышения эффективности работы.
Как выбрать процессор
Центральный процессор (ЦП, CPU) — это «сердце» компьютера. Это основной элемент системы. Именно поэтому к его выбору необходимо отнестись максимально серьезно, особенно если вы планируете не купить готовый ПК, а собрать его самостоятельно.
Центральный процессор (ЦП, CPU) — это «сердце» компьютера. Это основной элемент системы. Именно поэтому к его выбору необходимо отнестись максимально серьезно, особенно если вы планируете не купить готовый ПК, а собрать его самостоятельно.
Конструктивно процессор представляет собой печатную плату, на которой размещен полупроводниковый кристалл, накрытый металлической теплораспределительной крышкой. На обратной стороне печатной платы предусмотрены контактные площадки, с помощью которых он соединяется с материнской платой.
У процессора есть ряд важных характеристик, которые нужно учесть: количество ядер и тактовая частота, архитектура и тепловыделение. Также ведущие производители распределяют компоненты, которые они выпускают, по сериям. Это упрощает выбор, так как разные серии, семейства и поколения позволяют решать разные задачи.
В этой статье мы предлагаем вам базовую информацию о том, как выбрать процессор. Если же вы не уверены в том, какой вариант оптимально подходит именно вам, обратитесь к специалисту интернет-магазина СИТИЛИНК. Он вам обязательно поможет.
Гибридные процессоры
Отдельно стоит упомянуть гибридные решения. В них центральный процессор объединен с графическим. Это позволяет уменьшить энергопотребление и снизить стоимость системы. На основе гибридных процессоров можно создавать компактные компьютеры, которым не нужно решать сложные задачи.
Некоторые процессоры со встроенным ядром обладают мощностью, которой достаточно для запуска нетребовательных игр. Однако для ресурсоемких игр или монтажа видео они не подойдут, вам понадобится дискретная видеокарта.

Основные производители процессоров
Фактически рынок процессоров для компьютеров сегодня поделен между двумя крупными производителями: Intel и AMD. Они предлагают решения для разных типов компьютеров. У каждого из этих производителей есть и бюджетные решения, и наиболее мощные флагманские процессоры, и модели среднего класса.
Например, компания Intel предлагает бюджетные линейки Celeron и Pentium. Процессоры Core — решения старшей категории, но и у них есть своя иерархия:

Core i3
Для игровых и мультимедийных компьютеров начального уровня.

Core i5
Для более мощных игровых систем.

Core i7 и Core i9
Для требовательных геймеров, а также для решения сложных профессиональных задач.
У AMD есть следующие основные линейки:

A-серия и Athlon
Для ПК начального уровня.

Ryzen Threadripper
Профессиональные решения, имеющие наиболее высокую мощность.

Ryzen
Для компьютеров, которыми будут пользоваться требовательные геймеры и разработчики цифрового контента.
Что такое сокет?
Разъем на материнской плате, в который устанавливается процессор, называется сокетом. Определенные типы CP совместимы только с определенными разновидностями сокетов. Не существует никаких адаптеров или переходников, поэтому решить проблему несовместимости никак не получится. Можно только приобрести новую материнскую плату с подходящим разъемом.
На рынке сегодня представлены материнские платы с сокетами разных типов. Наиболее востребованные:
Сокеты AMD
SocketAM3+ и SocketAM4
Предназначены для создания офисных и домашних компьютеров, а также геймерских систем небольшой и средней мощности.
TR4 и sTRX4
Cокеты Intel
LGA 1151
Универсальный вариант для процессоров разных типов и мощности (Celeron, Pentium Gold, Core i3, Core i5, Core i7), позволяющий создавать как офисные системы для нетребовательных пользователей, так и мощные домашние компьютеры для развлечений.
LGA 2066
Обратите внимание! Процессоры Coffee Lake несовместимы с системными платами с сокетом LGA 1151, выпускавшимися до середины 2017 года. Для работы этих ЦП необходима материнская плата с чипсетом 300-й серии и обновленной ревизией разъема LGA 1151. Несмотря на то, что новый сокет имеет такое же количество подпружиненных контактов и идентичные ключи, по заявлению разработчиков, он электрически несовместим с первой ревизией LGA 1151.
Новую версию сокета неофициально называют LGA 1151v2. Однако и у компании Intel, и у различных производителей материнских плат она выпускается под названием LGA 1151, как и предыдущий вариант. Это создает путаницу, поэтому при выборе, если у вас есть сомнения, лучше уточнять совместимость процессора и материнской платы у консультанта.
Выберите в каталоге
Количество ядер
В современном процессоре несколько ядер. В решениях для потребительских компьютеров их количество варьируется от 2 до 32. Многоядерный процессор делит нагрузку между несколькими «вычислительными центрами», поэтому производительность компьютера растет. Он решает несколько задач одновременно и не тормозит, не зависает, когда сталкивается с особенно сложной задачей.
Но это в теории. На практике все несколько сложнее. Многое зависит от тактовой частоты CPU, его архитектуры, а также от того, используете ли вы программное обеспечение, которое поддерживает многопоточность обработки данных. Поэтому в реальности двухъядерный процессор может продемонстрировать более высокие результаты, чем четырехъядерный.
При выборе ЦП можно ориентироваться на следующие принципы:
2 ядра
Для решения несложных задач дома и в офисе: можно работать с текстами, таблицами и презентациями, выходить в интернет, смотреть видео и слушать музыку, пользоваться базами данных.
4-6 ядер
Для решения ресурсоемких задач, в том числе для игр и для работы с графикой на профессиональном уровне.
8 и более ядер
Для создания наиболее мощных игровых компьютеров, а также для решения сложных рабочих задач, связанных с обработкой видео и звука.
Тактовая частота
Упрощенно, тактовая частота — это количество операций, которые процессор способен выполнить за секунду. Чем выше этот показатель, тем более производительным будет процессор. Однако производительность зависит и от ряда других параметров, в том числе от архитектуры и объема кэша первого, второго и третьего уровней. По этому параметру можно разделить все процессоры на несколько групп:
До 3 ГГц
Бюджетные процессоры, предназначенные для работы с офисными программами и решения прочих несложных задач.
От 3 до 4 ГГц
Универсальные решения для работы, игр и развлечений.
Более 4 ГГц
CPU, созданные для решения сложных задач и позволяющие запускать ресурсоемкие игры и профессиональные программы.
Сегодня в продаже представлены процессоры, производительность которых можно наращивать. Это модели с открытым или разблокированным множителем. Процесс увеличения производительности называют разгоном или оверклокингом. В зависимости от конкретного ЦП, его можно выполнить через BIOS или в приложении, использующемся для регулировки настроек компьютера. При этом необходимо иметь в виду, что разгон увеличивает не только производительность, но и энергопотребление, а это может привести к перегреву.
Кэш-память
Кэш (или сверхоперативная память) позволяет уменьшить среднее время доступа к компьютерной памяти и за счет этого увеличить быстродействие процессора. В современных CPU она, как правило, многоуровневая.
Чем выше уровень кэша, тем больше его объем, но при этом уменьшается скорость. То есть кэш-память L1 особенно быстро отзывается на запрос процессора, но по объему она уступает уровням L2 и L3.
Тепловыделение
Чем выше мощность процессора, тем больше тепла он выделяет во время работы. К тому же тепловыделение увеличивается, когда возрастает нагрузка, и перегрев может стать причиной снижения производительности.
Это значит, что CPU нуждается в эффективном охлаждении. Тепловыделение ЦП обычно считается равным его максимальному энергопотреблению, и этот параметр измеряется в ваттах (Вт). Чем оно выше, тем более мощный кулер вам потребуется.

Выберите в каталоге
Классификация процессоров по назначению
Все разнообразие компьютеров можно разделить на две категории:
И рабочие, и игровые ПК также можно разделить по мощности. Есть компьютеры, которые подходят для решения несложных повседневных задач, например, набора текста, редактирования таблиц и поиска информации в интернете, а есть те, что предназначены для выполнения сложной работы, например, редактирования 3D-графики. Игровые компьютеры могут быть рассчитаны на нетребовательного геймера-новичка или на опытного киберспортсмена — при этом они будут различаться по характеристикам.
Соответственно, разным компьютерам требуются разные процессоры.
Для офисного или домашнего ПК подойдут двух- или четырехъядерные CPU из серий Intel Celeron, Intel Pentium и Intel Core i3 либо AMD Athlon и AMD Ryzen.
Если вы планируете комбинировать офисную работу с нечастым решением сравнительно сложных задач, стоит обратить внимание на следующие решения с количеством ядер от 4 до 8:
- Intel Core i3, Intel Core i5 и Intel Core i7
- AMD Ryzen 5 и AMD Ryzen 7
Компьютер, предназначенный для 3D-рендеринга, редактирования видео или обработки большого массива данных, можно собрать на базе процессоров из линеек Intel Core i9 и AMD TR4.
Для геймерского компьютера понадобится процессор с количеством ядер не менее четырех. Это должны быть модели из линеек Intel Core, AMD FX или AMD Ryzen. Чем старше линейка, тем мощнее будет компьютер, который вы можете создать, однако и стоимость ЦП при этом тоже будет расти.
От процессора во многом зависят и скорость работы ПК, и его производительность. Если компьютер будет медленно загружаться, зависать при запуске нескольких программ и тормозить при открытии новых приложений, то вряд ли пользование устройством будет доставлять удовольствие и маловероятно, чтобы вам удалось вовремя решить все рабочие задачи. Следовательно, выбору CPU нужно уделить как можно больше внимания, и экономить здесь стоит лишь в том случае, если вы планируете собрать ПК для несложной повседневной работы.
На сайте СИТИЛИНК с помощью онлайн-фильтра можно подобрать процессор по любым параметрам: по бренду и серии, сокету и количеству ядер, тактовой частоте и типу памяти. А если у вас остались вопросы, обратитесь к нашим онлайн-консультантам.
9 команд для проверки информации о CPU в Linux

Информация о CPU (Central Processing Unit. Центральный процессор) включает в себя подробные сведения о процессоре, такие как архитектура, название производителя, модель, количество ядер, скорость каждого ядра и т.д.
В linux существует довольно много команд для получения подробной информации о CPU.
В этой статье мы рассмотрим некоторые из часто встречающихся команд, которые можно использовать для получения подробной информации о CPU.
1. /proc/cpuinfo
Файл /proc/cpuinfo содержит подробную информацию об отдельных ядрах CPU.
Выведите его содержимое с помощью less или cat .
$ less /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz stepping : 10 microcode : 0xa07 cpu MHz : 1998.000 cache size : 2048 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 4 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority bogomips : 5303.14 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
Каждый процессор или ядро перечислены отдельно, а различные подробности о скорости, размере кэша и названии модели включены в описание.
Чтобы подсчитать количество процессоров, используйте grep с wc
$ cat /proc/cpuinfo | grep processor | wc -l 4
Количество процессоров, показанное в /proc/cpuinfo, может не соответствовать реальному количеству ядер процессора. Например, процессор с 2 ядрами и гиперпоточностью будет показан как процессор с 4 ядрами.
Чтобы получить фактическое количество ядер, проверьте идентификатор ядра на наличие уникальных значений
$ cat /proc/cpuinfo | grep 'core id' core id : 0 core id : 2 core id : 1 core id : 3
Соответственно, есть 4 разных идентификатора ядра. Это указывает на то, что существует 4 реальных ядра.
2. lscpu — отображение информации об архитектуре CPU
lscpu — это небольшая и быстрая команда, не требующая никаких опций. Она просто выводит информацию об аппаратном обеспечении CPU в удобном для пользователя формате.
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 23 Stepping: 10 CPU MHz: 1998.000 BogoMIPS: 5303.14 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 2048K NUMA node0 CPU(s): 0-3
3. hardinfo
Hardinfo — это gui инструмент на базе gtk, который генерирует отчеты о различных аппаратных компонентах. Но он также может запускаться из командной строки, в случае если отсутствует возможность отображения gui (Graphical User Interface — графический интерфейс пользователя).
$ hardinfo | less
Он создаст большой отчет о многих аппаратных частях, читая файлы из каталога /proc. Информация о CPU находится в начале отчета. Отчет также может быть записан в текстовый файл.
Hardinfo выполняет несколько эталонных тестов, занимающих несколько минут, прежде чем вывести отчет на экран.
4. lshw
Команда lshw может отобразить ограниченную информацию о CPU. lshw по умолчанию показывает информацию о различных аппаратных частях, а опция ‘ -class ‘ может быть использована для сбора информации о конкретной аппаратной части.
$ sudo lshw -class processor *-cpu description: CPU product: Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz vendor: Intel Corp. physical id: 0 bus info: cpu@0 version: Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz slot: LGA 775 size: 1998MHz capacity: 4GHz width: 64 bits clock: 333MHz capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx x86-64 constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority cpufreq
Производитель, модель и скорость процессора отображаются правильно. Однако из приведенного выше результата невозможно определить количество ядер в процессоре.
Чтобы узнать больше о команде lshw, ознакомьтесь с этой статьей:
5. nproc
Команда nproc просто выводит количество доступных вычислительных блоков. Обратите внимание, что количество вычислительных блоков не всегда совпадает с количеством ядер.
$ nproc 4
6. dmidecode
Команда dmidecode отображает некоторую информацию о CPU, которая включает в себя тип сокета, наименование производителя и различные флаги.
$ sudo dmidecode -t 4 # dmidecode 2.12 SMBIOS 2.4 present. Handle 0x0000, DMI type 4, 35 bytes Processor Information Socket Designation: LGA 775 Type: Central Processor Family: Pentium D Manufacturer: Intel(R) Corporation ID: 7A 06 01 00 FF FB EB BF Signature: Type 0, Family 6, Model 23, Stepping 10 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) DS (Debug store) ACPI (ACPI supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) SS (Self-snoop) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz Voltage: 1.6 V External Clock: 333 MHz Max Speed: 4000 MHz Current Speed: 2666 MHz Status: Populated, Enabled Upgrade: Socket LGA775 L1 Cache Handle: 0x0003 L2 Cache Handle: 0x0001 L3 Cache Handle: Not Provided Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified
7. cpuid
Команда cpuid собирает информацию CPUID о процессорах Intel и AMD x86.
Программа может быть установлена с помощью apt на ubuntu
$ sudo apt-get install cpuid
А вот пример вывода
$ cpuid . Vendor ID: "GenuineIntel"; CPUID level 13 Intel-specific functions: Version 0001067a: Type 0 - Original OEM Family 6 - Pentium Pro Model 7 - Pentium III/Pentium III Xeon - external L2 cache Stepping 10 Reserved 4 Extended brand string: "Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz" CLFLUSH instruction cache line size: 8 Initial APIC ID: 2 Hyper threading siblings: 4 Feature flags bfebfbff: FPU Floating Point Unit VME Virtual 8086 Mode Enhancements DE Debugging Extensions PSE Page Size Extensions TSC Time Stamp Counter MSR Model Specific Registers PAE Physical Address Extension MCE Machine Check Exception CX8 COMPXCHG8B Instruction APIC On-chip Advanced Programmable Interrupt Controller present and enabled SEP Fast System Call MTRR Memory Type Range Registers PGE PTE Global Flag MCA Machine Check Architecture CMOV Conditional Move and Compare Instructions FGPAT Page Attribute Table PSE-36 36-bit Page Size Extension CLFSH CFLUSH instruction DS Debug store ACPI Thermal Monitor and Clock Ctrl MMX MMX instruction set FXSR Fast FP/MMX Streaming SIMD Extensions save/restore SSE Streaming SIMD Extensions instruction set SSE2 SSE2 extensions SS Self Snoop HT Hyper Threading TM Thermal monitor 31 reserved .
8. inxi
Inxi — это скрипт, который использует другие программы для создания хорошо структурированного легко читаемого отчета о различных аппаратных компонентах системы. Ознакомьтесь с полным руководством по inxi.
$ sudo apt-get install inxi
Вывод соответствующей информации о CPU/процессоре
$ inxi -C CPU: Quad core Intel Core2 Quad CPU Q8400 (-MCP-) cache: 2048 KB flags: (lm nx sse sse2 sse3 sse4_1 ssse3 vmx) Clock Speeds: 1: 1998.00 MHz 2: 1998.00 MHz 3: 1998.00 MHz 4: 1998.00 MHz
Чтобы узнать больше о команде inxi и ее использовании, ознакомьтесь с этой статьей:
9. Hwinfo
Команда hwinfo — это программа для получения информации об оборудовании, которая может быть использована для сбора подробных сведений о различных аппаратных компонентах в системе Linux.
Она также отображает информацию о процессоре. Вот быстрый пример:
$ hwinfo --short --cpu cpu: Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz, 2275 MHz Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz, 2262 MHz Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz, 2058 MHz Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz, 2133 MHz $
Если не использовать опцию «—short», команда отобразит гораздо больше информации о каждом ядре CPU, например, архитектуру и характеристики процессора.
Чтобы более подробно изучить команду hwinfo, ознакомьтесь с этой статьей:
Заключение
Это были некоторые команды для проверки информации о CPU в системах на базе Linux, таких как Ubuntu, Fedora, Debian, CentOS и др.
Примеры других команд для проверки информации о CPU смотрите в этой статье:
Большинство команд обрабатываются с помощью интерфейса командной строки и выводятся в текстовом формате. Для GUI интерфейса используйте программу Hardinfo.
Она показывает подробности об аппаратном обеспечении различных компонентов в простом для использования GUI интерфейсе.
Если вы знаете какую-либо другую полезную команду, которая может отображать информацию о CPU, сообщите нам об этом в комментариях ниже
Материал подготовлен в рамках курса Administrator Linux. Professional.
Если вы хотели бы узнать подробнее о формате обучения и программе, познакомиться с преподавателем курса — приглашаем на день открытых дверей онлайн. Регистрация здесь.
А если вам интересно развитие в этой сфере с нуля до pro, рекомендуем ознакомиться с учебной программой специализации.
- linux administration
- linux команды
- linux server
- cpu
- Блог компании OTUS
- Настройка Linux
Что такое центральный процессор?

Центральный процессор (ЦПУ) – это аппаратный компонент, который является основным вычислительным блоком сервера. Серверы и другие интеллектуальные устройства преобразуют данные в цифровые сигналы и выполняют над ними математические операции. Центральный процессор является основным компонентом, который обрабатывает сигналы и делает возможными вычисления. Он действует как мозг любого вычислительного устройства. Он извлекает инструкции из памяти, выполняет необходимые задачи и отправляет выходные данные обратно в память. Он выполняет все вычислительные задачи, необходимые для работы операционной системы и приложений.
Как развивалась технология ЦПУ с течением времени?
В самых ранних компьютерах для обработки использовались вакуумные трубки. Такие машины, как ENIAC и UNIVAC, были большими и громоздкими, потребляли много энергии и выделяли значительное количество тепла. Изобретение транзисторов в конце 1940-х годов произвело революцию в технологии ЦПУ. Транзисторы заменили вакуумные трубки, сделав компьютеры компактнее, надежнее и энергоэффективнее. В середине 1960-х годов были разработаны интегральные схемы, которые объединили несколько транзисторов и других компонентов на одном компьютерном чипе. ЦПУ стали еще меньше и быстрее, что привело к появлению микропроцессоров.
Микропроцессоры
Микропроцессоры объединили весь ЦПУ на одном микрочипе, что сделало компьютеры более доступными и привело к разработке персональных компьютеров. Первоначально ЦПУ могли обрабатывать от 16 до 32 бит данных одновременно. В начале 2000-х годов появились 64-разрядные ЦПУ, которые обеспечивали большую адресацию памяти и поддерживали более интенсивную обработку данных.
По мере увеличения плотности транзисторов повышение производительности одноядерных ЦПУ усложнилось. Вместо этого производители ЦПУ начали использовать архитектуры многоядерных процессоров для интеграции нескольких ядер в один чип.
Современные процессоры
С появлением мобильных устройств энергоэффективность стала играть решающую роль. Теперь производители ЦПУ разрабатывают маломощные и энергоэффективные ЦПУ для современных портативных устройств, таких как смартфоны и планшеты.
По мере распространения задач, связанных с искусственным интеллектом и графической обработкой, для обработки рабочих нагрузок стали использоваться специализированные ЦПУ, такие как графические процессоры и ускорители искусственного интеллекта.
Непрерывные исследования и разработки в области нанотехнологий и материаловедения проложили путь к созданию микроскопических транзисторов и более мощных ЦПУ. Квантовые вычисления и другие новые технологии могут способствовать дальнейшему развитию компьютерных процессорных технологий.
Из каких компонентов состоит ЦПУ?
ЦПУ – это сложная электронная схема, состоящая из нескольких ключевых компонентов, обрабатывающих данные и исполняющих инструкции. Ниже описаны основные компоненты ЦПУ.
Блок управления
Блок управления контролирует обработку инструкций и координирует поток данных внутри процессора и между другими компьютерными компонентами. Он содержит декодировщик команд, который интерпретирует инструкции, извлеченные из памяти, и преобразует их в микрооперации, которые может выполнить процессор. Блок управления направляет другие компоненты процессора на выполнение необходимых операций.
Регистры
Регистры – это небольшие высокоскоростные места хранения внутри процессора. Они содержат данные, с которыми работает процессор в данный момент, и обеспечивают к ним быстрый доступ. Процессоры имеют несколько типов регистров, в частности такие:
- регистры общего назначения, содержащие оперативные данные;
- регистры инструкций, содержащие текущую обрабатываемую инструкцию;
- счетчик команд, содержащий адрес памяти следующей инструкции, которую нужно извлечь.
Регистры обеспечивают более быстрый доступ к данным по сравнению с другими уровнями памяти, такими как ОЗУ или кэш-память.
ALU
Арифметико-логическое устройство (ALU) выполняет над данными основные арифметические (сложение, вычитание, умножение и деление) и логические операции (AND, OR и NOT). Оно получает данные из регистров процессора, обрабатывает их на основе инструкций блока управления и выдает результат.
Блок управления памятью
Процессор может быть оснащен отдельным интерфейсным блоком или блоком управления памятью в зависимости от его архитектуры. Эти компоненты выполняют задачи, связанные с памятью, такие как управление взаимодействием процессора и оперативной памяти. Этот компонент также управляет кэш-памятью, небольшим блоком быстрой памяти, расположенным внутри процессора, и виртуальной памятью, используемой процессором для обработки данных.
Генератор синхроимпульсов
Процессор использует тактовый сигнал для синхронизации внутренних операций. Генератор синхроимпульсов вырабатывает устойчивые импульсы с определенной частотой, и эти тактовые циклы координируют операции процессора. Тактовая частота измеряется в герцах (Гц) и определяет количество команд, которое процессор может выполнять в секунду. Современные процессоры имеют переменную тактовую частоту, которая регулируется в зависимости от рабочей нагрузки, для сбалансирования производительности и энергопотребления.
Каков принцип работы ЦПУ?
Компьютерные процессоры работают на базе других аппаратных компонентов и программного обеспечения для обработки данных и управления потоком информации в электронных устройствах. Обычно они работают циклически, при этом каждый цикл команд представляет собой три основных этапа.
Цикл базового процессора
Ниже приведены основные этапы цикла команд.
Выборка команд
ЦПУ получает команды из памяти. Команды – это двоичные коды, представляющие конкретные задачи или операции ЦПУ. Блок управления интерпретирует команду и определяет операцию, которую необходимо выполнить. При этом также определяются конкретные компоненты ЦПУ, необходимые для выполнения задачи.
Обработка команд
ЦПУ выполняет указанную операцию с полученными данными. Он выполняет математические вычисления, логические сравнения, манипуляции с данными или передачу данных между регистрами или ячейками памяти.
Хранение результатов
После выполнения команд ЦПУ может потребоваться сохранить результаты в памяти или обновить определенные регистры новыми данными. Счетчик команд обновляется и указывает адрес следующей команды, которую нужно получить. ЦПУ повторяет цикл и последовательно загружает, декодирует и выполняет команды.
Дополнительные функции процессора
ЦПУ также может обрабатывать команды потока управления, такие как переходы и ответвления, а также прерывания, сигналы, генерируемые внешними устройствами, или события, требующие немедленного внимания. При прерывании ЦПУ временно приостанавливает выполнение текущей задачи, сохраняет ее состояние и переходит к процедуре обслуживания прерываний. После обработки прерывания ЦПУ возобновляет выполнение предыдущей задачи.
Современные ЦПУ часто используют такие методы, как параллелизм и конвейерная обработка команд, для повышения производительности. Несколько команд могут одновременно находиться на разных стадиях цикла, что позволяет более эффективно использовать ресурсы ЦПУ.
Каковы расширенные функции ЦПУ?
Лучший ЦПУ отличается производительностью, эффективностью и гибкостью, что позволяет эффективно выполнять широкий спектр вычислительных задач. Далее мы опишем несколько дополнительных функций.
Ядра
Ранее одноядерный процессор был стандартным решением, однако сегодня все ЦПУ имеют несколько физических ядер. Ядро – это отдельный процессор в ЦПУ. Большее количество ядер позволяет ЦПУ обрабатывать несколько потоков (последовательностей команд) параллельно, что значительно повышает общую производительность. Приложения могут использовать преимущества многоядерной архитектуры, разделяя задачи на более мелкие подзадачи, которые можно выполнять одновременно.
Гиперпоточность
Гиперпоточность – это одновременная многопоточная реализация, разработанная Intel, которая позволяет каждому ядру ЦПУ запускать несколько потоков одновременно. Таким образом, каждое физическое ядро в операционной системе имеет вид двух виртуальных ядер. Программное обеспечение более эффективно использует доступные аппаратные ресурсы.
Расширенные наборы команд
Современные ЦПУ также оснащены расширенными наборами команд и технологиями, предназначенными для ускорения выполнения определенных задач. Эти наборы команд выходят за рамки фундаментальных арифметических и логических операций и предоставляют дополнительные возможности для более эффективной обработки сложных вычислений.
Например, ЦПУ могут включать наборы команд, специально предназначенных для описанных ниже задач.
- Мультимедийные задачи, такие как декодирование видео, кодирование звука и обработка изображений.
- Алгоритмы шифрования и дешифрования, такие как AES и SHA.
- Задачи типа SIMD, требующие одновременного выполнения ЦПУ одной и той же операции с большими наборами данных. Это такие задачи, как графический рендеринг, научное моделирование и цифровая обработка сигналов.
- Виртуализация, позволяющая виртуальным машинам (VM) работать более эффективно.
- Рабочие нагрузки ИИ, такие как операции с нейронными сетями.
Как AWS обеспечивает соответствие вашим требованиям к процессорам?
У Amazon Web Services (AWS) предлагает решения для реализации ваших требований к процессорам.
Эластичное вычислительное облако Amazon (Amazon EC2) предлагает самую масштабную и разноплановую вычислительную платформу. Она насчитывает более 600 инстансов и позволяет выбрать новейший процессор, систему хранения данных, сетевую систему, операционную систему и модель покупки, которые помогут вам наилучшим образом удовлетворить потребности вашей рабочей нагрузки. Мы первый крупный облачный провайдер, который поддерживает работу процессоров Intel, AMD и Arm, а также единственное облако с инстансами EC2 Mac по требованию.
При использовании Amazon EC2 вы мгновенно получаете следующие преимущества:
- лучшее соотношение цены и производительности машинного обучения, а также самая низкая стоимость инстансов логических выводов в облаке;
- возможность выбора оптимального сочетания ЦПУ, памяти, хранилища и сетевых ресурсов для ваших приложений;
- возможность выбора предварительно настроенного шаблона образа машины Amazon (AMI) для мгновенного начала работы.
Начните работу с пользовательскими инстансами и процессорами на AWS, создав аккаунт уже сегодня.