Глубокое обучение требует значительных вычислительных ресурсов, поэтому вам понадобится быстрый процессор со многими ядрами, верно? Или это может быть расточительно покупать быстрый процессор? Одна из худших вещей, которые вы можете сделать при создании системы глубокого обучения, это тратить деньги на ненужное оборудование. Здесь я шаг за шагом проведу вас по аппаратному обеспечению, которое вам потребуется для дешевой высокопроизводительной системы.
За эти годы я построил в общей сложности 7 различных рабочих станций с глубоким обучением, и, несмотря на тщательные исследования и рассуждения, я допустил большую долю ошибок при выборе аппаратных компонентов. В этом руководстве я хочу поделиться своим опытом, который я приобрел за эти годы, чтобы вы не делали те же ошибки, что я делал раньше.
Сообщение в блоге упорядочено по серьезности ошибки. Это означает, что ошибки, когда люди обычно тратят больше всего денег, на первом месте.
В этом посте предполагается, что вы будете использовать графический процессор для глубокого изучения. Если вы строите или модернизируете свою систему для глубокого изучения, не стоит оставлять GPU. Графический процессор - это только сердце приложений глубокого обучения - улучшение скорости обработки слишком велико, чтобы его игнорировать.
Я подробно говорил о выборе GPU в моем блоге с рекомендациями по GPU, и выбор вашего GPU, вероятно, самый важный выбор для вашей системы глубокого обучения. При выборе графического процессора вы можете сделать три основные ошибки: (1) плохая цена / производительность, (2) недостаточно памяти, (3) плохое охлаждение.
Для хорошей цены / производительности я обычно рекомендую RTX 2070 или RTX 2080 Ti. Если вы используете эти карты, вы должны использовать 16-битные модели. В противном случае, GTX 1070, GTX 1080, GTX 1070 Ti и GTX 1080 Ti от eBay являются справедливым выбором, и вы можете использовать эти графические процессоры с 32-разрядными (но не с 16-разрядными).
Будьте осторожны с требованиями к памяти при выборе графического процессора. Карты RTX, которые могут работать в 16-битном формате, могут обучать модели, которые в два раза больше с той же памятью, чем карты GTX. Так как такие RTX-карты имеют преимущество в памяти, а выбор RTX-карт и умение эффективно использовать 16-битные модели уйдут вам далеко. В целом требования к памяти примерно следующие:
- Исследование, которое охотится за современными показателями:>= 11 ГБ
- Исследования, которые охотятся за интересными архитектурами:>= 8 ГБ
- Любое другое исследование: 8 ГБ
- Kaggle: 4–8 ГБ
- Запуски: 8 ГБ (но проверьте конкретную область применения для размеров модели)
- Компании: 8 ГБ для прототипирования,>= 11 ГБ для обучения
Другая проблема, на которую стоит обратить внимание, особенно если вы покупаете несколько RTX-карт, это охлаждение. Если вы хотите вставить GPU в слоты PCIe, которые находятся рядом друг с другом, вы должны убедиться, что вы получаете GPU с вентилятором в стиле вентилятора. В противном случае вы можете столкнуться с проблемами температуры, и ваши графические процессоры будут работать медленнее (около 30%) и быстрее умирать.
Подозреваемый состав Можете ли вы определить аппаратную часть, виновную в плохой работе? Один из этих графических процессоров? Или, может быть, это вина процессора?
Основные ошибки с оперативной памятью - покупка оперативной памяти со слишком высокой тактовой частотой. Вторая ошибка - покупать недостаточно оперативной памяти, чтобы иметь опыт плавного создания прототипов.
Тактовые частоты ОЗУ - это маркетинговые ограничения, когда компании, занимающиеся ОЗУ, заманивают вас к покупке «более быстрой» ОЗУ, которая практически не приводит к увеличению производительности. Это лучше всего объяснить видео «ОЗНАКОМЧИНА ли скорость ОЗУ?» в оперативной памяти von Linus Tech Tips.
Кроме того, важно знать, что скорость оперативной памяти практически не имеет значения для быстрой передачи ОЗУ ЦП -> ОЗУ. Это так, потому что (1) если вы использовали закрепленную память, ваши мини-пакеты будут перенесены в GPU без участия ЦП, и (2) если вы не используете закрепленную память, выигрыш в производительности быстрой и медленной ОЗУ составляет около 0-3% - тратьте деньги в другом месте!
Объем оперативной памяти не влияет на производительность глубокого обучения. Тем не менее, это может помешать вам комфортно выполнять код вашего GPU (без переключения на диск). У вас должно быть достаточно оперативной памяти для комфортной работы с вашим графическим процессором. Это означает, что у вас должно быть как минимум количество оперативной памяти, соответствующее вашему большому графическому процессору. Например, если у вас есть Titan RTX с 24 ГБ памяти, у вас должно быть как минимум 24 ГБ ОЗУ. Однако, если у вас больше графических процессоров, вам не обязательно нужно больше оперативной памяти.
Проблема с этой стратегией «совпадение с самой большой памятью GPU в ОЗУ» заключается в том, что вы все равно можете не хватать ОЗУ, если обрабатываете большие наборы данных. Лучшая стратегия здесь - соответствовать вашему GPU, и если вы чувствуете, что вам не хватает оперативной памяти, просто купите еще.
Психология влияет на другую стратегию: психология говорит нам, что концентрация - это ресурс, который со временем истощается. ОЗУ - это одна из немногих аппаратных частей, которая позволяет вам сэкономить ресурсы для решения более сложных задач программирования. Вместо того, чтобы тратить много времени на преодоление узких мест в оперативной памяти, вы можете сосредоточиться на более насущных вопросах, если у вас больше оперативной памяти. Благодаря большому объему оперативной памяти вы можете избежать этих узких мест, сэкономить время и повысить производительность при решении более насущных проблем. Особенно в соревнованиях Kaggle, я нашел дополнительную оперативную память очень полезной для разработки функций. Так что, если у вас есть деньги и вы делаете большую предварительную обработку, тогда хорошим выбором может быть дополнительная оперативная память. Таким образом, с этой стратегией вы хотите иметь больше дешевой оперативной памяти сейчас, а не позже.
Основная ошибка, которую совершают люди, заключается в том, что люди слишком много внимания уделяют линиям PCIe процессора. Вы не должны заботиться о линиях PCIe. Вместо этого просто посмотрите, поддерживает ли комбинация вашего процессора и материнской платы количество графических процессоров, которые вы хотите запустить. Вторая самая распространенная ошибка - получить слишком мощный процессор.
Люди сходят с ума по PCIe переулкам! Однако дело в том, что это почти не влияет на результаты глубокого обучения. Если у вас один GPU, то линии PCIe нужны только для быстрой передачи данных из вашего процессора в оперативную память GPU. Однако для пакета ImageNet из 32 изображений (32x225x225x3) и 32-разрядных требуется 1,1 миллисекунды с 16 линиями, 2,3 миллисекунды с 8 линиями и 4,5 миллисекунды с 4 линиями. Это теоретические цифры, и на практике вы часто видите, что PCIe работает в два раза медленнее - но это все еще молниеносно! Каналы PCIe часто имеют задержку в наносекундном диапазоне, и, таким образом, задержку можно игнорировать.
Собирая это вместе, мы имеем для мини-партии ImageNet 32 изображения и ResNet-152 следующие сроки:
- Прямой и обратный проход: 216 миллисекунд (мс)
- 16 линий PCIe CPU-> GPU передача: около 2 мс (теоретически 1,1 мс)
- 8 линий PCIe CPU-> GPU передачи: около 5 мс (2,3 мс)
- 4 линии PCIe CPU-> GPU передача: около 9 мс (4,5 мс)
Таким образом, переход от 4 до 16 линий PCIe даст вам увеличение производительности примерно на 3,2%. Однако если вы используете загрузчик данных PyTorch с закрепленной памятью, вы получаете производительность ровно 0%. Так что не тратьте свои деньги на линии PCIe, если вы используете один графический процессор!
Когда вы выбираете линии PCIe CPU и линии PCIe материнской платы, убедитесь, что вы выбрали комбинацию, которая поддерживает желаемое количество графических процессоров. Если вы покупаете материнскую плату, которая поддерживает 2 графических процессора, и в конечном итоге вы хотите иметь 2 графических процессора, убедитесь, что вы покупаете процессор, который поддерживает 2 графических процессора, но не обязательно смотрите на линии PCIe.
Важны ли линии PCIe, если вы обучаете сети на нескольких графических процессорах с параллелизмом данных? Я опубликовал статью по этому вопросу на ICLR2016 и могу сказать вам, если у вас 96 графических процессоров, тогда линии PCIe действительно важны. Однако, если у вас 4 или меньше GPU, это не имеет большого значения. Если вы распараллелите по 2-3 графическим процессорам, мне бы наплевать на линии PCIe. С 4 графическими процессорами, я бы удостоверился, что смогу получить поддержку 8 линий PCIe на каждый графический процессор (всего 32 линии PCIe). Поскольку практически никто не использует систему с более чем четырьмя графическими процессорами, как правило: не тратьте дополнительные деньги, чтобы получить больше линий PCIe на каждый графический процессор - это не имеет значения!
Чтобы сделать разумный выбор для ЦП, нам нужно сначала понять ЦП и как он связан с глубоким обучением. Что процессор делает для глубокого обучения? Процессор мало вычисляет, когда вы запускаете свои глубокие сети на GPU. В основном он (1) инициирует вызовы функций графического процессора, (2) выполняет функции процессора.
Безусловно, наиболее полезным приложением для вашего процессора является предварительная обработка данных. Есть две разные общие стратегии обработки данных, которые имеют разные потребности процессора.
Первая стратегия - это предварительная обработка во время тренировки:
Цикл:
- Загрузка мини-партии
- Предварительная обработка мини-партии
- Тренировка мини-партии
Вторая стратегия - это предварительная обработка перед любой тренировкой:
- Предварительная обработка данных
- Цикл: 1. Загрузка предварительно обработанной мини-партии 2. Тренировка мини-партии
Для первой стратегии хороший процессор со многими ядрами может значительно повысить производительность. Для второй стратегии вам не нужен очень хороший процессор. Для первой стратегии я рекомендую минимум 4 потока на один графический процессор - обычно это два ядра на один графический процессор. Я не проводил жестких тестов для этого, но вы должны получить примерно 0-5% дополнительной производительности на дополнительное ядро / графический процессор.
Для второй стратегии я рекомендую минимум 2 потока на один графический процессор - обычно это одно ядро на один графический процессор. Вы не увидите значительного прироста производительности, когда у вас будет больше ядер, если вы используете вторую стратегию.
Когда люди думают о быстрых процессорах, они обычно сначала думают о тактовой частоте. 4 ГГц лучше, чем 3,5 ГГц, или это так? Обычно это справедливо для сравнения процессоров с одинаковой архитектурой, например «Ivy Bridge», но он не очень хорошо сравнивается между процессорами. Кроме того, это не всегда лучший показатель эффективности.
В случае глубокого изучения ЦП выполняет очень мало вычислений: увеличьте несколько переменных здесь, оцените некоторое логическое выражение там, сделайте несколько вызовов функций на GPU или в программе - все это зависит от тактовой частоты ядра ЦП.
Хотя это рассуждение кажется разумным, существует тот факт, что процессор работает на 100%, когда я запускаю программы глубокого обучения, так в чем же проблема? Я провел несколько экспериментов по разгону частоты ядра процессора, чтобы выяснить это.
Разгон ЦП в MNIST и ImageNet: производительность измеряется как время, затраченное на 200 эпох MNIST или четверть эпохи в ImageNet с разными тактовыми частотами ядра ЦП, где максимальная тактовая частота берется в качестве базовой линии для каждого ЦП. Для сравнения: обновление с GTX 680 до GTX Titan составляет около + 15% производительности; от GTX Titan до GTX 980 еще + 20% производительности; Разгон GPU дает около + 5% производительности для любого GPU
Обратите внимание, что эти эксперименты проводятся на оборудовании, которое устарело, однако эти результаты должны быть такими же для современных процессоров / графических процессоров.
Жесткий диск обычно не является узким местом для глубокого изучения. Однако, если вы делаете глупости, это причинит вам боль: если вы читаете данные с диска, когда они необходимы (блокируя ожидание), тогда жесткий диск 100 МБ / с обойдется вам в 185 миллисекунд для мини-пакета ImageNet размером 32 - ой! Однако, если вы асинхронно извлекаете данные перед их использованием (например, torch vision loaders), то вы загрузите мини-пакет за 185 миллисекунд, в то время как время вычислений для наиболее глубоких нейронных сетей в ImageNet составляет около 200 миллисекунд. Таким образом, вы не столкнетесь с какой-либо потерей производительности, так как загружаете следующую мини-партию, пока ток еще вычисляется.
Тем не менее, я рекомендую SSD для комфорта и производительности: программы запускаются и реагируют быстрее, а предварительная обработка больших файлов происходит немного быстрее. Если вы купите твердотельный накопитель NVMe, у вас будет еще более приятный опыт по сравнению с обычным SSD.
Таким образом, идеальная установка - иметь большой и медленный жесткий диск для наборов данных и SSD для производительности и комфорта.
Как правило, вам нужен блок питания, достаточный для размещения всех ваших будущих графических процессоров. Графические процессоры, как правило, со временем становятся более энергоэффективными; поэтому, в то время как другие компоненты должны быть заменены, блок питания должен работать долго, поэтому хороший блок питания - это хорошая инвестиция.
Вы можете рассчитать требуемые ватты, сложив ватты вашего ЦП и графических процессоров с дополнительными 10% ватт для других компонентов и в качестве буфера для скачков мощности. Например, если у вас есть 4 графических процессора с каждым 250-ваттным TDP и ЦП с 150-ваттным TDP, то вам потребуется блок питания с минимальной мощностью 4×250 + 150 + 100 = 1250 Вт. Я обычно добавляю еще 10%, просто чтобы убедиться, что все работает, что в этом случае даст 1375 Вт. Я бы округлил в этом случае блок питания на 1400 Вт.
Важно помнить, что даже если блок питания имеет требуемую мощность, ему может не хватить 8-контактного или 6-контактного разъема PCIe. Убедитесь, что на блоке питания достаточно разъемов для поддержки всех ваших графических процессоров!
Еще одна важная вещь - это купить блок питания с высокой энергоэффективностью, особенно если вы используете много графических процессоров и будете использовать их в течение более длительного времени.
Использование системы с 4 графическими процессорами на полной мощности (1000-1500 Вт) для обучения сверточной сети в течение двух недель составит 300-500 кВт-ч, что в Германии - при довольно высоких затратах на электроэнергию в 20 центов за кВт-ч - будет сумма до 60-100 евро (66-111 долларов). Если эта цена для 100% эффективности, то тренировка такой сети с 80%-ым источником питания увеличит затраты еще на 18–26 лет! Это гораздо меньше для одного графического процессора, но суть в том, что тратить немного больше денег на эффективный источник питания имеет смысл.
Использование нескольких графических процессоров круглосуточно значительно увеличит ваш углеродный след, а также затмит транспортировку (в основном самолеты) и другие факторы, влияющие на ваш след. Если вы хотите быть ответственным, пожалуйста, подумайте о том, чтобы стать углеродно-нейтральным, как Машинное обучение для языковой группы NYU (ML2) - это легко делать, дешево, и должно быть стандартом для глубоких исследований исследователей.
Охлаждение важно, и оно может стать существенным узким местом, которое снижает производительность больше, чем плохой выбор оборудования. У вас должно быть все в порядке со стандартным радиатором или универсальным (AIO) водяным охлаждением для вашего процессора, но что касается вашего графического процессора, вам нужно будет сделать особые соображения.
Воздушное охлаждение безопасно и надежно для одного GPU или если у вас есть несколько GPU с промежутком между ними (2 GPU в корпусе 3-4 GPU). Однако одна из самых больших ошибок может быть допущена, когда вы пытаетесь охладить 3-4 графических процессора, и вам необходимо тщательно продумать свои варианты в этом случае.
Современные графические процессоры увеличивают свою скорость - и, следовательно, потребляемую мощность - до своего максимума, когда они запускают алгоритм, но как только графический процессор преодолевает температурный барьер - часто 80 ° C - графический процессор уменьшит скорость, чтобы температурный порог не был нарушен. Это обеспечивает лучшую производительность, сохраняя при этом ваш графический процессор в безопасности от перегрева.
Однако типичные заранее запрограммированные графики скорости вращения вентиляторов плохо разработаны для программ глубокого обучения, поэтому этот температурный порог достигается в течение нескольких секунд после запуска программы глубокого обучения. В результате снижается производительность (0-10%), что может быть значительным для нескольких графических процессоров (10-25%), где они нагревают друг друга.
Поскольку графические процессоры NVIDIA - это, прежде всего, игровые графические процессоры, они оптимизированы для Windows. Вы можете изменить расписание поклонников несколькими щелчками в Windows, но не в Linux, и, поскольку большинство библиотек глубокого изучения написаны для Linux, это проблема.
Единственный вариант в Linux - использовать для настройки конфигурации вашего сервера Xorg (Ubuntu), где вы устанавливаете опцию «coolbits». Это очень хорошо работает для одного графического процессора, но если у вас есть несколько графических процессоров, где некоторые из них не имеют головы, то есть к ним не подключен монитор, вы должны эмулировать жесткий и хакерский монитор. Я пробовал это в течение долгого времени, и у меня были разочаровывающие часы с живым загрузочным CD, чтобы восстановить мои настройки графики - я никогда не мог правильно запустить его на безголовых графических процессорах.
Самый важный момент, который необходимо учитывать при использовании 3-4 графических процессоров при воздушном охлаждении, - обратить внимание на конструкцию вентилятора. Конструкция вентилятора с воздуходувкой выталкивает воздух в заднюю часть корпуса, так что свежий, более холодный воздух подается в графический процессор. Вентиляторы без воздуходувки всасывают воздух в vincity GPU и охлаждают GPU. Однако, если у вас есть несколько графических процессоров рядом друг с другом, то вокруг нет прохладного воздуха, и графические процессоры с вентиляторами без воздуходувки будут нагреваться все больше и больше, пока они не уляжутся, чтобы достичь более низких температур. Избегайте вентиляторов без воздуходувки в настройках 3-4 GPU любой ценой.
Другой, более дорогой и хитрый вариант - использование водяного охлаждения. Я не рекомендую водяное охлаждение, если у вас один графический процессор или если у вас есть пространство между двумя графическими процессорами (2 графических процессора на плате 3-4 графических процессоров). Тем не менее, водяное охлаждение гарантирует, что даже самые мощные графические процессоры сохраняют прохладу при настройке 4 графических процессоров, что невозможно при охлаждении воздухом. Другое преимущество водяного охлаждения заключается в том, что оно работает намного тише, что является большим плюсом, если вы используете несколько графических процессоров в местах, где работают другие люди. Водяное охлаждение обойдется вам примерно в 100 долларов за каждый графический процессор и дополнительные начальные расходы (около 50 долларов). Водяное охлаждение также потребует некоторых дополнительных усилий для сборки вашего компьютера, но есть много подробных руководств по этому вопросу, и в общей сложности это займет всего несколько часов. Техническое обслуживание не должно быть таким сложным или трудоемким.
Я купил большие башни для моего кластера глубокого обучения, потому что у них есть дополнительные вентиляторы для графического процессора, но я обнаружил, что это в значительной степени не имеет значения: снижение примерно на 2-5 ° C, не стоит вложений и громоздкости корпусов. Самая важная часть - это решение по охлаждению непосредственно на вашем графическом процессоре - не выбирайте дорогостоящий корпус из-за его возможности охлаждения на GPU. Дешевле здесь. Корпус должен соответствовать вашим графическим процессорам, но это так!
Итак, в конце концов, все просто: для 1 GPU лучше охлаждать воздухом. Для нескольких графических процессоров вы должны получить воздушное охлаждение в виде вентилятора и принять крошечный штраф за производительность (10-15%), или вы платите дополнительную плату за водяное охлаждение, которое также сложнее правильно настроить, и у вас нет потери производительности. Воздушное и водяное охлаждение - все это разумный выбор в определенных ситуациях. Однако я бы порекомендовал воздушное охлаждение для простоты - получить GPU в стиле вентилятора, если вы используете несколько GPU. Если вы хотите использовать водяное охлаждение, попробуйте найти универсальные (AIO) решения для водяного охлаждения для графических процессоров.
Ваша материнская плата должна иметь достаточно портов PCIe для поддержки количества графических процессоров, которые вы хотите запустить (обычно ограничено четырьмя графическими процессорами, даже если у вас больше слотов PCIe); помните, что большинство графических процессоров имеют ширину двух слотов PCIe, поэтому купите материнскую плату, на которой достаточно места между слотами PCIe, если вы собираетесь использовать несколько графических процессоров. Убедитесь, что ваша материнская плата не только имеет слоты PCIe, но и фактически поддерживает настройку GPU, которую вы хотите запустить. Обычно вы можете найти информацию в этом, если вы ищете вашу материнскую плату по выбору newegg и посмотрите раздел PCIe на странице спецификации.
Выбирая корпус, вы должны убедиться, что он поддерживает полноразмерные графические процессоры, расположенные на верхней части материнской платы. В большинстве случаев поддерживаются полноразмерные графические процессоры, но вы должны быть подозрительны, если покупаете маленький корпус. Проверьте его размеры и технические характеристики; Вы также можете попробовать поиск картинок Google этой модели и посмотреть, если вы найдете изображения с графическими процессорами в них.
Если вы используете специальное водяное охлаждение, убедитесь, что в вашем корпусе достаточно места для радиаторов. Это особенно верно, если вы используете водяное охлаждение для своих графических процессоров. Радиатору каждого графического процессора потребуется некоторое пространство - убедитесь, что ваша установка действительно соответствует графическому процессору.
Сначала я подумал, что было бы глупо писать и о мониторах, но они имеют огромное значение и настолько важны, что мне просто нужно написать о них.
Деньги, которые я потратил на свои 27-дюймовые мониторы, вероятно, самые лучшие, которые я когда-либо тратил. При использовании нескольких мониторов производительность значительно возрастает. Я чувствую себя отчаянно искалеченным, если мне приходится работать с одним монитором. Не останавливайтесь на достигнутом. Что хорошего в быстрой системе глубокого обучения, если вы не можете эффективно ее использовать?
Типичная раскладка монитора при глубоком изучении: Слева: документы, поиски в Google, gmail, stackoverflow; середина: код; справа: окна вывода, R, папки, системные мониторы, мониторы GPU, список дел и другие небольшие приложения.
Многие люди боятся строить компьютеры. Аппаратные компоненты дороги, и вы не хотите делать что-то не так. Но это действительно простые компоненты, которые не принадлежат друг другу, не подходят друг другу. В руководстве по материнской плате часто очень подробно рассказывается, как собрать все, и есть тонны руководств и пошаговых видео, которые проведут вас через процесс, если у вас нет опыта.
Самое замечательное в создании компьютера состоит в том, что вы знаете все, что нужно знать о создании компьютера, когда вы делали это один раз, потому что все компьютеры построены таким же образом, поэтому создание компьютера станет жизненным навыком. что вы сможете подать заявку снова и снова. Так что нет причин сдерживаться!
GPU: RTX 2070 или RTX 2080 Ti. GTX 1070, GTX 1080, GTX 1070 Ti и GTX 1080 Ti от eBay тоже хороши!
CPU: 1-2 ядра на графический процессор в зависимости от того, как вы обрабатываете данные. > 2 ГГц; CPU должен поддерживать количество графических процессоров, которые вы хотите запустить. PCIe полосы не имеют значения.
RAM :
- Тактовые частоты не имеют значения - покупайте самую дешевую оперативную память.
- Купите как минимум столько же ОЗУ процессора, сколько ОЗУ вашей самой большой видеокарты.
- Покупайте больше оперативной памяти только при необходимости.
- Больше оперативной памяти может быть полезно, если вы часто работаете с большими наборами данных.
Жесткий диск / SSD:
- Жесткий диск для данных (> = 3 ТБ)
- Используйте SSD для комфорта и предварительной обработки небольших наборов данных.
БП:
- Добавить ватт графических процессоров + процессор. Затем умножьте общую сумму на 110% для требуемой мощности.
- Получить рейтинг высокой эффективности, если вы используете несколько графических процессоров.
- Убедитесь, что в блоке питания достаточно разъемов PCIe (6 + 8 контактов)
Охлаждение:
- ЦП: получите стандартный процессорный кулер или универсальное (AIO) решение для водяного охлаждения
- ГПУ:
- Используйте воздушное охлаждение
- Приобретите несколько графических процессоров с вентиляторами в стиле «воздуходувки»
- Установите флаг coolbits в вашей конфигурации Xorg для управления скоростью вращения вентилятора
Материнская плата :
- Получите столько слотов PCIe, сколько вам нужно для ваших (будущих) графических процессоров (один графический процессор занимает два слота; максимум 4 графических процессора на систему)
Мониторы:
- Дополнительный монитор может сделать вас более производительным, чем дополнительный графический процессор.
Обновление 2018-12-14: переработан весь блог с актуальными рекомендациями. Обновление 2015-04-22: удалена рекомендация для GTX 580