Искусственный интеллект
Исследователи создали альтернативу GPU

Компьютерные ученые из Университета Райса, вместе с сотрудниками Intel, разработали более экономически эффективную альтернативу GPU. Новый алгоритм называется “сублинейный движок глубокого обучения” (SLIDE), и он использует общего назначения центральные процессоры (CPU) без специализированного ускоряющего оборудования.
Результаты были представлены в конференц-центре Остина, который проводит конференцию по системам машинного обучения MLSys.
Одной из самых больших проблем в области искусственного интеллекта (ИИ) является специализированное ускоряющее оборудование, такое как графические процессоры (GPU). До новых разработок считалось, что для ускорения технологии глубокого обучения требуется использование этого специализированного ускоряющего оборудования.
Многие компании уделяют большое внимание инвестициям в GPU и специализированное оборудование для глубокого обучения, которое отвечает за технологии, такие как цифровые помощники, распознавание лиц и системы рекомендаций продуктов. Одна из таких компаний – Nvidia, которая создает Tesla V100 Tensor Core GPU. Nvidia недавно сообщила о 41% увеличении доходов в четвертом квартале по сравнению с прошлым годом.
Разработка SLIDE открывает совершенно новые возможности.
Аншумали Шривастава – ассистент профессора в Школе инженерии Брауна Университета Райса и помог изобрести SLIDE вместе с аспирантами Бейди Чен и Таруном Медини.
“Наши тесты показывают, что SLIDE – это первый умный алгоритмический вариант глубокого обучения на CPU, который может превосходить аппаратное ускорение GPU на промышленных масштабах рекомендационных наборов данных с большими полностью связанными архитектурами”, – сказал Шривастава.
SLIDE преодолевает проблему GPU благодаря совершенно другому подходу к глубокому обучению. В настоящее время стандартным методом обучения глубоких нейронных сетей является “обратное распространение”, и оно требует умножения матриц. Эта нагрузка требует использования GPU, поэтому исследователи изменили обучение нейронной сети так, чтобы оно могло быть решено с помощью хэш-таблиц.
Этот новый подход значительно снижает вычислительную нагрузку для SLIDE. Текущая лучшая платформа GPU, которую компании, такие как Amazon и Google, используют для облачного глубокого обучения, имеет восемь Tesla V100, и цена составляет около 100 000 долларов.
“У нас есть один в лаборатории, и в нашем тестовом случае мы взяли нагрузку, идеальную для V100, одну с более чем 100 миллионами параметров в больших, полностью связанных сетях, которые помещаются в память GPU”, – сказал Шривастава. “Мы обучили ее с помощью лучшего (программного) пакета, который есть, Google’s TensorFlow, и это заняло 3,5 часа на обучение.
“Затем мы показали, что наш новый алгоритм может выполнить обучение за один час, не на GPU, а на 44-ядерном CPU класса Xeon”, – продолжил он.
Хэширование – это тип метода индексации данных, изобретенный в 1990-х годах для интернет-поиска. Численные методы используются для кодирования больших объемов информации в виде строки цифр, называемой хэшем. Хэши перечислены для создания таблиц, которые можно быстро искать.
“Не имело смысла реализовывать наш алгоритм на TensorFlow или PyTorch, потому что первое, что они хотят сделать, – это преобразовать все, что вы делаете, в проблему умножения матриц”, – сказал Чен. “Это именно то, от чего мы хотели избавиться. Итак, мы написали свой собственный код на C++ с нуля”.
По словам Шриваставы, главным преимуществом SLIDE является то, что он параллелен по данным.
“Под параллельностью по данным я имею в виду, что если у меня есть два экземпляра данных, на которых я хочу обучиться, скажем, один – это изображение кошки, а другой – автобуса, они, скорее всего, активируют разные нейроны, и SLIDE может обновлять, или обучаться на этих двух независимо”, – сказал он. “Это гораздо лучше использует параллелизм для CPU”.
“С другой стороны, по сравнению с GPU, мы требуем большую память”, – сказал он. “В иерархии кэша основной памяти, если вы не будете осторожны с ней, вы можете столкнуться с проблемой, называемой трэшингом кэша, где вы получаете много промахов кэша”.
SLIDE открыл дверь для новых способов реализации глубокого обучения, и Шривастава считает, что это только начало.
“Мы только поцарапали поверхность”, – сказал он. “Есть многое, что мы еще можем сделать, чтобы оптимизировать. Мы не использовали векторизацию, например, или встроенные ускорители в CPU, такие как Intel Deep Learning Boost. Есть много других трюков, которые мы могли бы использовать, чтобы сделать это еще быстрее”.










