Вам не хватает места на вашем компьютере, но вы не хотите снижать производительность машинного обучения из-за медленного диска? SSD-накопители Thunderbolt 3 - вот ответ.

Недавно я начал обучать модели в TensorFlow на некоторых довольно больших наборах данных. На моем внутреннем твердотельном накопителе, уже облагаемом налогом, вскоре закончилось оставшееся мало места, что побудило меня найти другое решение.

У меня был старый внешний SSD, поэтому я попытался переместить на него свой набор данных 20 ГБ. К сожалению, время тренировок увеличилось почти вдвое. Быстрый тест скорости диска на этом диске по сравнению с внутренним диском в моем компьютере четко выявил проблему.

Внутренний диск

Внешний SSD

Внешний SSD может иметь такую ​​же сырую производительность, что и SSD внутри моего MacBook, но внешний диск поддерживает только передачу данных через интерфейс USB 3.0. Это ограничивает максимальную практическую скорость передачи примерно до 500 МБ / с. Мой внутренний SSD, напротив, подключен к материнской плате через шину PCIe, практический предел которой составляет десятки гигабайт в секунду. Максимальная скорость, которую можно достичь, ограничивается исключительно производительностью флэш-памяти.

Мой MacBook Pro 2016 года, как и почти все новые компьютеры Apple и многие компьютеры с Windows, имеет интерфейс Thunderbolt 3 (TB3). Это внешнее соединение поддерживает скорость передачи до 5 ГБ / с. Такая высокая скорость позволяет использовать целый ряд интересных периферийных устройств, таких как внешние графические процессоры и быстрое внешнее хранилище. Мне было любопытно узнать, сможет ли внешний SSD, поддерживающий Thunderbolt 3, решить мои проблемы с хранилищем, поэтому я заказал его.

Я выбрал подключаемый твердотельный накопитель Thunderbolt 3 емкостью 1 ТБ. За 300 долларов это немного дороже, чем обычные внешние USB-накопители, но если более быстрое соединение не создает узких мест, я счел, что оно того стоит. Этот накопитель имеет теоретическую максимальную скорость чтения 2400 МБ / с и скорость записи 1800 МБ / с. Я отформатировал диск, используя новый формат Apple Filesystem (APFS), и провел тест скорости.

К моему удивлению, этот диск оказался на самом деле быстрее, чем тот, что был в моем компьютере! Я подозреваю, что это связано с возрастом моего внутреннего SSD. Внешняя, которую я заказал, вероятно, использует более новую технологию flash. Я также был приятно удивлен тем, что смог хотя бы приблизиться к заявленным скоростям, что бывает не всегда.

Однако настоящей проверкой для моих дисков было то, насколько хорошо они работают в моем рабочем процессе машинного обучения. Я проверил свой старый внешний SSD-накопитель USB, новый SSD-накопитель TB3 и внутренний SSD-накопитель. Я обучил сверточную нейронную сеть в TensorFlow на наборе данных изображений размером 20 ГБ в течение 10 эпох и сравнил, сколько времени потребовалось для набора данных на каждом диске.

Я провел этот тест на своем внешнем графическом процессоре RX580, который также использует интерфейс Thunderbolt 3. На моем компьютере есть два контроллера Thunderbolt (один для левых портов и один для правого), поэтому я поместил свой графический процессор с одной стороны, а внешние диски - с другой. Я не знаю, можно ли перегрузить полосу пропускания контроллера Thunderbolt, поэтому я хотел перестраховаться.

Твердотельный накопитель с интерфейсом USB 3.0 оказался самым медленным: завершил 10 эпох за 10 минут 29 секунд. Мой твердотельный накопитель Thunderbolt 3 завершил тест за 6:12, а мой внутренний твердотельный накопитель за 5:42.

Я был удивлен, что мой внутренний SSD был все еще быстрее, учитывая, что он имеет более низкую скорость передачи, чем мой внешний диск. Я предполагаю, что это связано с характером моего набора данных, в котором много небольших файлов. Мой внутренний SSD имеет прямое соединение с шиной PCIe моего компьютера, поэтому задержка, вызванная запуском передачи файла, вероятно, намного ниже, чем у моего внешнего диска. Внешний накопитель использует тот же интерфейс NVMe, что и внутренний накопитель, но между накопителем и шиной PCIe есть два контроллера Thunderbolt (один в накопителе и один в компьютере). Если бы я вместо этого тренировался с файлами гораздо большего размера, я предполагаю, что внешний диск имел бы преимущество из-за его более высокой общей скорости.

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

Надеюсь, эта статья оказалась для вас полезной. Ознакомьтесь с другими моими статьями здесь и на моем веб-сайте www.alexwulff.com.