Машинное обучение с TensorFlow на графическом процессоре за 200 долларов (Nvidia Tesla K80)

Nvidia Tesla K80 — это графический процессор примерно 2014 года, созданный для центров обработки данных. В настоящее время их можно купить на eBay примерно за 200 фунтов стерлингов, поэтому я решил установить их на свой компьютер, чтобы посмотреть, как они справляются с задачами машинного обучения.

Почему они такие дешевые?

Спецификации этой видеокарты на самом деле впечатляют: 24 ГБ памяти и 4992 ядра CUDA. Память разделена между двумя графическими процессорами на одной плате (по 12 ГБ каждый). Насколько я могу судить, причина того, что эта карта в настоящее время такая дешевая, заключается в следующем:

  • Они устарели в CUDA 11 (которая в настоящее время является самой последней версией) и поэтому могут быть несовместимы с CUDA 12.
  • Они не очень хороши для игр (у них нет графических выходных портов), поэтому вам понадобится дополнительный графический процессор для отображения, если вы установите этот.
  • У них нет активного охлаждения, поэтому для их установки на настольный ПК требуется немного «доморощенного» решения для охлаждения.

Производительность

Я использовал эту карту для запуска AlphaFold 2 (который использует TensorFlow и JAX), и это ускорило время обработки примерно в 9 раз по сравнению с работой на процессоре: время, необходимое для прогнозирования одной структуры белка, сократилось с 30 минут до примерно 3,3 минуты. Я обнаружил, что скорость примерно такая же, как при работе алгоритма на Nvidia GTX1080ti, а также примерно такая же, как при работе на ноутбуке GoogleColab Pro (с неизвестной спецификацией графического процессора). Запуск AlphaFold для прогнозирования иногда приводил к ошибкам памяти, которых не было при обучении нейронных сетей гораздо меньшего размера. И требуется некоторое программирование, если вы хотите использовать преимущества обоих графических процессоров на K80. Если вы хотите получить представление о том, как K80 будет выполнять вашу конкретную задачу, вы можете запустить машину на Google Cloud Platform с K80 примерно за 0,35 доллара в час. Сравнительный анализ производительности K80 в одной задаче классификации XGBoost (где размер данных в памяти составлял около 1 ГБ) показывает, что карта работает в 5 раз быстрее, чем ЦП, но при обучении на меньших наборах данных разница в производительности уменьшается.

Монтаж

Карта подходит для стандартных слотов PCI-E, и, несмотря на то, что она предназначена для серверов, устанавливаемых в стойку, ее размер подходит для ПК.

Власть

K80 потребляет около 300 Вт, поэтому вам нужно убедиться, что вашего блока питания достаточно для его питания. Кроме того, разъем питания для графического процессора представляет собой 8-контактный разъем (иногда называемый разъемом EPS и часто обозначаемый на блоках питания как разъем ЦП). Стандартный 6-контактный или 6+2-контактный разъем PCI-E не подходит, но вы можете приобрести адаптер.

Я перешел на блок питания Corsair RM850, который имеет достаточную мощность и поддерживает до трех 8-контактных разъемов ЦП.

Действия по установке были такими:

  1. Включите «Декодирование выше 4G» в BIOS (мой компьютер отказывался загружаться, если графический процессор был установлен до выполнения этого шага)
  2. Физически установить карту
  3. Установите драйверы Нвидиа
  4. Установите инструментарий CUDA
  5. Переустановите Tensorflow и Jax

Охлаждение

Вам нужно будет немного обдувать это устройство, решение, которое я выбрал, было снять пластиковую крышку, тем самым обнажив радиатор, и установить охлаждающие вентиляторы, которые дуют прямо на устройство.

Другие подробности моей установки

Операционная система: Ubuntu 20.04.3 LTS
ЦП: Intel I7–6900K
Материнская плата: ASUS X99-E
1-й графический процессор (используется для дисплея): Nvidia GeForce GT 710
Блок питания: Корсар RM850

В этой статье используются партнерские ссылки.