Аннотация. Более широкое использование современных глубоких нейронных сетей происходит за счет увеличения объема вычислений, времени и энергии. Требования к этим моделям требуют от компаний сокращения времени обучения и времени отклика на логические выводы. Эти затраты и требования привели к увеличению исследований и разработок различных типов интегральных схем для конкретных приложений.

Многие процессоры, графические процессоры и новая линейка моделей TPU были настроены для поддержки глубоких нейронных сетей. В этом обзоре будет сравниваться новый облачный TPU от Google с новым графическим процессором NVIDIA Tesla и процессором для центра обработки данных Intel Xeon Scalable.

Каждый из них будет рассмотрен по очереди перед обсуждением эвристических принципов, сходств и различий.

1. Введение

А. Понимание растущих потребностей современных глубоких нейронных сетей

Понимание развития нейронной сети (NN) важно для понимания оборудования, которое сравнивается в этой статье. Текущая тенденция в программировании NN - создание «более глубоких» NN, называемых Deep Neural Networks (DNN) [1]. DNN повысили точность NN за счет уменьшения ошибок распознавания речи [2], повышения точности распознавания изображений [3] и победы над человеческими соперниками в таких играх, как Go и Jeopardy [4] [5]. За такую ​​точность приходится платить как при обучении модели, так и при прогнозировании, что называется «выводом». Эти DNN обучаются на больших наборах данных и могут иметь увеличивающееся количество входных параметров.

Вывод - это термин, используемый, когда обученная NN делает прогнозы. Многие компании используют логический вывод в масштабе, поэтому, конечно, важна пропускная способность, но также важно время отклика [6] [7]. Подумайте, сколько у вас хватит терпения, когда вы ждете ответа от Siri или Google Assistant на вопрос о ближайшем итальянском ресторане. Мы увидим, что потребность в сокращении времени отклика во время логического вывода является мощным мотивом в современных конструкциях оборудования NN.

Каждый уровень в сети NN представляет собой вектор чисел с плавающей запятой (FP) или целых чисел. Используемые числа варьируются от INT4, INT8, FP16, FP32 и FP 64. Более крупные FP обеспечивают большую точность, но они делают NN медленным и более дорогостоящим с точки зрения вычислений. Использование 8 бит на нейрон становится все более распространенным на определенных этапах, поскольку скорость обработки в значительной степени снижается из-за меньшего размера бит, используемого в вычислениях. Facebook является одним из примеров проведения исследования, показывающего преимущества использования меньшего размера бит для оптимизации реакции вывода. время [6].

Б. Три основных фактора, увеличивающих объем вычислений в сетевых сетях.

Три основных фактора увеличивают объем вычислений в сетевых узлах. Во-первых, более глубокие сети. Во-вторых, увеличенный размер ввода (чаще встречается при обработке изображений, чем речи). В-третьих, при обучении моделей используется больше больших данных. Каждый из них будет рассмотрен в нижеследующем абзаце.

Б-я. Deeper Networks

Другими словами, NN становятся глубже, используя больше слоев, что добавляет больше чисел для вычислений. AlexNet, победитель конкурса ImageNet 2012 года, имел 8 слоев, ResNet-50 имел 50 слоев, а в других вариациях их было больше, например, ResNet-152, у которого, как вы догадались, 152 слоя [7]. Это требует большего количества вычислений при обучении ( как для прямого, так и для обратного распространения). Это может занять дни / недели. Это также увеличивает время отклика для вывода, которое мы хотели бы сделать мгновенным.

В-II. Размер ввода

Допустим, у вас есть изображение размером 100x100 пикселей. Это означает, что ваш первый слой будет иметь 10 000 значений в векторе первого слоя. Если у вас есть изображение с разрешением 1920x1080, первый слой будет иметь 2 073 600 значений с плавающей запятой в первом слое. Такие методы, как свертка, могут уменьшить количество значений в слое, но мы должны учитывать, что для вычисления NN будут использоваться более точные изображения.

Такое увеличение количества моделей естественного языка не означает, что предложения становятся длиннее. Все больше и больше людей пользуются услугами на естественном языке, и они хотят, чтобы они были быстрыми и точными [8].

В-III. Большие данные

Чтобы начать обучение простой сети, требуется около 1000 размеченных входных данных (изображения, предложения, переводы и т. Д.). Для «производственного» или конкурентного качества наборы данных требуют гораздо большего количества данных, часто в миллионах. Больше данных обычно означает большую точность. Следовательно, объем данных, используемых для обучения NN, увеличивается, поскольку он поддерживает точность модели. Отчет под названием «Улучшение паллиативной помощи с помощью глубокого обучения» показал, что они использовали 221 284 истории болезни пациентов для обучения, тестирования и проверки своих НС [7]. Классификация ImageNet с глубокими сверточными нейронными сетями говорит, что они использовали «1,2 миллиона помеченных обучающих примеров» [9]. Больше данных ведет к большему количеству вычислений.

Резюме B – IV

Три фактора, описанные выше (более глубокие сети, размер ввода, большие данные), увеличивают объем вычислений, необходимых для машинного обучения. Рассматривая эту программную проблему, мы видим возможность для аппаратного обеспечения вмешаться и повысить эффективность.

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

2. Оборудование

А. Оборудование для машинного обучения

В этом разделе мы рассмотрим три варианта оборудования. Облачный модуль тензорной обработки (TPU) от Google, графический процессор NVIDIA Tesla V100 и процессор для центра обработки данных Intel Xeon Scalable.

Б. Модуль обработки тензорного кода Google (TPU)

Tensor Processing Unit (TPU) Google - это специализированная интегральная схема, созданная Google для обработки нейронных сетей. В 2016 году Google объявил, что TPU используются в их центрах обработки данных более года [10]. Google разработал оборудование для работы с их программным обеспечением с открытым исходным кодом Tensorflow, приложением, специально созданным для работы с нейронными сетями [11]. Одной из причин создания специализированной интегральной схемы (ASIC) была поддержка растущего числа речевых переводов, постоянно обрабатываемых Google [11].

TPU работает, создавая сетку упрощенных ALU. Данные отправляются через шину PCIe в сеть. Поскольку умножение и сложение каждого вектора применяется к каждому слою, результат передается на следующий уровень, создавая эффект конвейерной обработки по всей матрице 128x128 ALU. Требования к памяти низкие, поскольку выход одного уровня ALU является входом следующего уровня. Это также снижает энергопотребление, поскольку доступ к памяти обходится дороже, чем вычисления ALU.

Внедрение B-1 и стоимость

TPU интегрируется в уже работающие серверы через шину PCIe. Это делает внедрение его для Google недорогим и быстро доступным для аренды в облаке по цене от 1,35 до 5,22 доллара в час [12]! Несколько модулей TPU могут работать вместе, чтобы ускорить обучение моделей.

TPU - это простое решение, которое не обрабатывает «кеш-память, предсказание ветвлений, выполнение вне очереди, многопроцессорность, спекулятивную предварительную выборку, объединение адресов, многопоточность, переключение контекста и т. Д.». Минимализм - это достоинство процессоров, ориентированных на конкретную предметную область ». Google требовалось подключаемое решение, которое можно было бы внедрить быстро и с небольшими рисками / затратами.

Программное обеспечение B-2 Tensorflow

Оборудование Google оптимизировано для работы с Tensorflow. Это библиотека с открытым исходным кодом, созданная для построения нейронных сетей и выпущенная в 2015 году.

Характеристики оборудования B-3 TPU

Инструкции TPU отправляются через шину PCIe Gen3 x16 в буфер команд. TPU не получает инструкции от ЦП, а скорее ЦП отправляет инструкции в буфер. Это было разработано, чтобы «держать матричный блок занятым» [13].

Это также уменьшает количество требуемых этапов конвейера. В архитектуре используется 4-этапный конвейер, хотя сетка ALU имеет собственный конвейер во время вычисления матрицы. Таким образом, доступная конвейерная обработка сильно различается из-за различных инструкций NN, которые могут требовать 1000 тактовых циклов. Двадцать три процента остановок происходят из-за зависимостей чтения после записи (RAW).

Несмотря на то, что память остается на низком уровне, поскольку ALU передает данные в смежные векторы ALU, пропускная способность памяти является проблемой оптимизации, с которой сталкиваются многие NN (LSTM и MLP). Аналитика NN от Google показывает, что пиковая производительность некоторых моделей не достигается из-за нехватки памяти. Хотя добавление дополнительной памяти пагубно сказывается на максимальной производительности, это известная проблема, которую можно решить, просто добавив больше памяти (дешево) или несколько больших кешей L2 / L3.

MMU содержит 256x256 MAC, которые выполняют 8- и 64-битное умножение и сложение целых чисел со знаком и без знака. Он может повысить точность вычислений за счет увеличения до 16-битных или 32-битных вычислений за счет скорости и количества элементов в обрабатываемых векторах. Он может записывать 256 8-битных значений за такт.

Производительность B-4 терафлопс

Google утверждает, что TPU в 15–30 раз быстрее выводит данные, чем графический процессор NVIDIA K80 (выпущенный в 2014 году). TPU имеет в 25 раз больше накопителей множителей (MAC) и в 3,5 раза больше встроенной памяти, чем графический процессор K80. Они также заявляют, что энергоэффективность в 30–80 раз выше, чем у «современных процессоров и графических процессоров». [13] TPU Google достигает 180 терафлопс в сочетании с четырьмя микросхемами по 45 терафлопс [B].

B-5 Power

Оптимизация энергопотребления частично достигается за счет сокращения операций чтения и записи в буфере и памяти. Потребляемая мощность в режиме ожидания TPU высока по сравнению с GPU и CPU. При 10% мощности используемая мощность составляет 88% от мощности, потребляемой при 100% мощности.

Пакеты B-6 TPU

Каждая плата может быть соединена вместе в «многопетафлопсные» суперкомпьютеры ML, которые [они] называют «TPU Pods» [10]. Google утверждает, что модели машинного обучения (ML) можно обучить за ночь, а не ждать дни или недели, чтобы обучить критически важную для бизнеса модель. Google утверждает, что обучение моделей ResNet-50 [A] и Transformer ML сокращается с дня до менее 30 минут на полной капсуле TPU [10].

С. Графический процессор (GPU) для центра обработки данных NVIDIA Tesla V100

Самый продвинутый графический процессор NVIDIA для центров обработки данных - Tesla V100 [14]. Об этом было объявлено весной 2017 года на ежегодной технологической конференции компании [15]. Они заявляют, что это «ускорит» искусственный интеллект, высокопроизводительные вычисления (HPC) и обеспечит производительность 100 процессоров.

Тензорные ядра C-1

Первая часть понимания Tesla V100 - это понимание тензорного ядра NVIDIA [16] [17]. Тензорное ядро ​​NVIDIA используется во многих их графических процессорах для выполнения сверхбыстрых операций с большими матрицами. Матричные операции - это основа каждого этапа сети.

Тензор настраивается с использованием матрицы 4x4. Это может быть объединено для выполнения операций умножения-сложения, превышающих двумерные, что делает возможной операцию умножения-сложения матриц 4x4x4. В тензорные ядра встроен язык набора инструкций для операций матричного умножения (название инструкции: GEMM) [17]. Процессор может обрабатывать от 4 до 64 битных чисел.

Производительность C-2 TFLOPS

Tesla V100 имеет 640 тензорных ядер и 5120 ядер CUDA. Это означает, что он может работать с пиковой тензорной пропускной способностью 125 терафлопс [B]. Сравните это с парой микросхем TPU от Google, требующей 90 FLOPS. Это примерно на 30 процентов больше. FP с одинарной точностью и с двойной точностью работают значительно ниже - 14 и 7 терафлопс соответственно.

Более высокая точность окупится медленным временем ожидания при обработке физических, инженерных и других научных моделей NN. Меньшая точность, INT8, может работать намного быстрее для таких вещей, как вывод языка. Tesla V100 может выполнять 64 операции с плавающей запятой за такт.

C-3 Энергопотребление

Tesla V100 требует максимальной мощности 250 Вт. Он может работать в двух разных режимах. Первый - это режим максимальной производительности, который потребляет наибольшую мощность, но обеспечивает максимальную скорость. Также доступен режим максимальной эффективности, который снижает максимальную производительность на ~ 80 процентов, но снижает расчетную тепловую мощность на ~ 55 процентов.

Дополнительная энергоэффективность и скорость достигается за счет встроенных модулей памяти HBM2, встроенных в графический процессор. Это снижает требования к питанию, тепловыделению и позволяет подключать больше графических процессоров последовательно.

C-4 Память и кэш

Tesla V100 имеет улучшенный кэш L1 и подсистему разделяемой памяти. Его объем составляет 128 КБ [17]. Его можно использовать совместно / использовать при объединении нескольких графических процессоров. Кэш L1 уменьшает задержку и улучшает пропускную способность. Более крупное и быстрое кэширование L1 означает, что программистам потребуется меньше настраивать память и достичь максимальной производительности, основанной на моделировании кровли, быстрее и с меньшим количеством настраиваемых параметров. V100 также имеет 6144 КБ кэш-памяти второго уровня и 16 ГБ памяти HBM2 DRAM с высокой пропускной способностью.

Программное обеспечение C-5 CUDA

Аппаратное обеспечение NVIDIA оптимизировано для программной технологии CUDA. CUDA превосходит алгоритмы параллельных вычислений и глубокого обучения, используемые в крупномасштабных астрономических вычислениях, молекулярной биологии и вычислительных финансах.

Многопоточные операции упрощаются, поскольку CUDA поддерживает независимое планирование потоков и взаимодействие между параллельными потоками в программе. Это обеспечивает гибкость и простоту для программистов.

Группы из 32 потоков (деформация) могут использоваться в одной инструкции, многопоточном выполнении (SIMT). Если потоки в одной основе не выполняются, технология CUDA теперь синхронизирует потоки из другой основы для параллельного выполнения, что позволяет повысить эффективность. Независимое планирование потоков также означает, что проблема голодания, когда потоку не разрешено выполнение, может быть устранена благодаря гибкости планирования потоков.

Графический процессор NVIDIA Tesla V100 стоит 8 995 долларов [18].

Д. Масштабируемые процессоры Intel Xeon (ЦП)

Intel выпустила линейку процессоров Xeon Scalable в середине 2017 года, через несколько месяцев после NVIDIA Telsa V100 GPU. Показано, что процессор Xeon смог обучить ResNet-50 за рекордное время в 31 минуту с большей точностью, чем следующий самый быстрый процессор, а AlexNet был обучен за 11 минут [19] [20]!

Intel делает это, соединяя серверные узлы вместе при обучении NN. Современные NN требуют около 10¹⁸ операций с одинарной точностью, что делает существенным требованием высоких вычислений. Очень важно использовать высокую пропускную способность и эффективное управление памятью, чтобы микросхема была загружена. Intel заявляет, что повышение производительности связано с «большим количеством ядер при высокой частоте процессора, быстрой системной памятью, большим объемом кеш-памяти среднего уровня для каждого ядра (кэш MLC или L2) и новыми инструкциями SIMD». [19].

D-1 Память, кэширование и ядра

Процессоры Intel Xeon Scalable могут поддерживать до 28 физических ядер на разъем с частотой 2,5 ГГц. В режиме Turbo частота увеличивается до 3,80 ГГц. Шесть каналов памяти поддерживают до 1,5 ТБ памяти DDR4. Каждое ядро ​​имеет 3 уровня кеш-памяти. Уровень L3 - это общий кэш размером 38,5 МБ, L2 - это частный кэш размером 1 МБ.

Набор инструкций D-2

Процессор Xeon Scalable включает команду Fused Multiply Add (FMA) шириной 512 бит (2⁹). Аналогичная функция была включена в процессоры NVIDIA и Google. Это значительно ускоряет такие операции, как A = B * C + D. Где B, C, D - векторы или матрицы.

Производительность D-3 TFLOPS

Процессор Xeon Scalable может обрабатывать 3,57 терафлопс [B] (FP32) и до 5,18 терафлопс (INT8) на сокет. При использовании 8 сокетов (макс. Поддерживаемых) это 41,44 макс. TOPS (INT8). К каждой розетке можно подключить до 28 ядер.

D-4 Программное обеспечение MKL-DNN

Intel поддерживает множество программных оптимизаций через свою математическую библиотеку ядра для глубокой нейронной сети (MKL-DNN) [22]. Эти оптимизации включают поддержку: Caffe, TensorFlow, Apache MXNet, PyTorch, CNTK и т. Д.

Intel утверждает, что «ученые, занимающиеся глубоким обучением, ошибочно полагали, что процессоры не подходят для рабочих нагрузок глубокого обучения» [19], но объясняют это в значительной степени ограниченным и низким уровнем использования вычислительных ресурсов. Эти оптимизации могут использоваться разработчиками глубокого обучения, просто включив флаг при построении моделей NN с поддерживаемыми платформами машинного обучения.

Intel показывает 100-кратное увеличение производительности при использовании библиотеки MKL-DNN для обучения и 39-кратное улучшение во время вывода. Инструмент MKL-DNN работает путем оптимизации математических строительных блоков, используемых всеми библиотеками (свертки, ReLu, пакетная нормализация и т. Д.).

Оптимизация Intel работает с оборудованием и включает в себя такие вещи, как предварительная выборка, блокировка кеша, повторное использование данных, векторизация и стратегии блокировки регистров. Это также включает лучшую оптимизацию циклов кеширования.

Intel Xenon Scalable Platinum 8180 стоит 9,999 долларов [21].

3. Сходства и различия

А. Одна цель, разные подходы

Мы рассмотрели три аппаратных подхода к улучшению обучения и логического вывода DNN. У Intel есть решение для ЦП, NVIDIA решает его с помощью графического процессора, а Google - с помощью своего облачного TPU. Каждый из них использует уникальный подход в конкретной реализации, но у каждого есть общие сходства, которые полезно отметить.

Б. Сходства

В-1. Специализированное программное обеспечение

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

Google с Tensorflow, NVIDIA CUDA и Intel MKT-DNN работают таким образом, чтобы максимально загружать основной процессор. Это одно из основных положений обработки нейронных сетей: максимально загружайте основные процессоры. Это показано в деталях, связанных с получением инструкций и перемещением данных через ALU, кеши и память.

Другие области, где программное обеспечение влияет на оборудование, - это вычисления со смешанной точностью. Многие NN можно ускорить, используя младшие битовые целые числа (INT8) во время определенных частей обучения и вывода. Каждая аппаратная реализация поддерживает одни и те же типы INT8, FP16, FP32 и FP64, и все они показывают значительное улучшение скорости при использовании INT8.

В-2. Кеширование и память

Кэширование данных - важная часть оптимизации NN. Каждая компания демонстрирует, что перемещение данных между ALU, кешами и памятью жизненно важно и может быть улучшено. Все 3 подхода увеличивают кэширование и объем памяти по сравнению с предыдущими версиями. Каждый из них включает в себя общую память и возможность кэширования.

B-3 Горизонтальное масштабирование

Каждая компания поддерживает горизонтальное масштабирование, распределенную обработку и распараллеливание. Модели NN можно разделить на разные машины, чтобы сократить время обучения. Для поддержки этой распределенной обработки используются общие память и кэширование.

Инструкции B-4

Каждая компания реализует комбинированную векторную инструкцию умножения-сложения - базовое вычисление всех NN. Эта инструкция не нова, так как это обычная векторная / матричная арифметическая операция, но каждая из них особо указывает на ее обычное использование в АЛУ. Мы не видим большого количества дополнительных новых инструкций. Набор инструкций Google состоял всего из 12 инструкций. Однако несколько инструкций, которые выполняются оптимизировано, демонстрируют использование «сделать общий случай быстрее». Это в сочетании с более широким использованием различных типов чисел (INT8 - FP64) обеспечивает быструю, распараллеливаемую обработку ALU.

B-5 Питание процессора

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

B-6 ResNet-50

Каждая компания сообщила о сокращении времени на обучение ResNet-50 с нескольких дней до примерно 30 минут с использованием своего аппаратного / программного стека. С такими скоростями для обучения DNN с 50 слоями любые споры о том, какой из них является самым быстрым, в порядке разделения волос.

С. Различия

Покупка C-1

Google - единственная компания, которая предлагает обработку TPU исключительно из облака. Компании не могут покупать фактическое оборудование. Intel и NVIDIA продают оборудование напрямую. Они доступны на различных платформах облачной аренды. Поскольку цены обязательно будут меняться, никакие устаревшие представления затрат не будут иметь большого смысла.

Место обработки C-2

Оборудование NVIDIA и Google подключается через шину PCIe. Аппаратный стек Intel этого не требует, поскольку передача данных происходит намного быстрее. Скорость движения автобуса считается очень низкой. Google TPU обходит это, имея кеш инструкций и только получая, а не извлекая инструкции.

Преимущества этого подхода PCIe заключаются в том, что на одной плате можно разместить несколько графических процессоров и TPU. При уменьшении требуемой мощности на серверных компьютерах можно установить больше таких устройств. Кроме того, можно добавить больше по мере изменения нагрузки или технологии.

Результаты Intel впечатляют, учитывая, что его 224 ядра (28 на сокет, до 8 сокетов) намного меньше, чем один TPU с сеткой 128x128 упрощенных процессоров ALU или 5120 тензорных ядер NVIDIA. Его тактовая частота и количество инструкций за тактовый цикл намного быстрее, чем у других процессоров.

Различия в программном обеспечении C-3

MKT-DNN от Intel был написан для поддержки множества фреймворков, используемых для DNN, включая Tensorflow, и мог работать с оптимизацией распараллеливания из программного обеспечения NVIDIA CUDA.

Каждая компания демонстрирует, что ее собственная технология, используемая в сочетании с ее оборудованием, является самым быстрым и эффективным способом программирования.

4. Заключение

Аппаратное обеспечение глубокого обучения сокращает время, необходимое для обучения и вывода в современных DNN. Каждая итерация оборудования становится более специфичной для программного обеспечения, на котором оно работает. Каждая реализация добавляет больше распараллеленных ALU, которые специально настроены для умножения-сложения векторов / матриц. Оборудование адаптируется специально для инструкций SIMD с распараллеливанием и многопоточностью. Эти реализации представляют собой повторяющиеся улучшения основных методов, которые использовались в компьютерной инженерии на протяжении десятилетий.

Эти улучшения являются воплощением афоризма «сделай обычный случай быстрее». Шаблоны программного обеспечения по-прежнему будут определяющими для будущих разработок оборудования. Оба должны развиваться вместе, пока инженеры исследуют путь искусственного интеллекта.

A-1 Какой из них лучший?

После прочтения и рассмотрения трех аппаратных реализаций мы можем остановиться и подумать, какую из них использовать в нашем следующем проекте DNN.

Он был удивлен, увидев, что подход Intel к процессорам так хорошо работает, а их программный набор инструментов MKT-DNN доступен для оптимизации многих часто используемых фреймворков. После дальнейшего исследования фактических улучшений производительности и сложности реализации MKT-DNN, похоже, это отличная оптимизация программного обеспечения для DNN, независимо от того, какую структуру вы поддерживаете. Мне нужно было бы провести дополнительные исследования, чтобы увидеть, насколько хорошо он работает с графическими процессорами или TPU, но он, безусловно, многообещающий и основан на программном обеспечении, не требует больших затрат на тестирование и внедрение.

Tensorflow от Google в сочетании с линейкой TPU кажется отличным подходом, который будет и дальше сопровождаться постоянными совместными улучшениями как программного, так и аппаратного обеспечения, и, конечно же, его финансирование не будет дефицитом.

Технология NVIDIA cuDNN отлично работает с Caffe2 и множеством других фреймворков, оптимизированных для графических процессоров. Данные Intel показывают, что Caffe2 работает на их процессоре быстрее, чем Tensorflow [19].

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

A-2 В поисках лучших

Чтобы действительно ответить на такой вопрос, нужно изучить и написать отдельную статью. Исследователь должен использовать новейшее оборудование от каждой компании (оборудование многих компаний 2017 года сравнивали с оборудованием конкурентов 2015 года). Затраты также должны быть включены. Различные программные среды должны запускаться на различном оборудовании. Каждая структура должна включать различные типы сетевых сетей, поскольку типы моделей будут иметь большие различия в производительности.

Ссылки

[1] https://learning.acm.org/webinars/deeplearning

[2] https://arxiv.org/pdf/1611.07174.pdf

[3] https://arxiv.org/abs/1409.1556

[4] https://www.nature.com/articles/nature24270.epdf?author_access_token=VJXbVjaSHxFoctQQ4p2k4tRgN0jAjWel9jnR3ZoTv0PVW4gB86EEpGqTRDtpIz-2rmo8-KG06gqVobU5NSCFeHILHcVFUeMsbvwS-lxjqQGg98faovwjxeTUgZAUMnRQ

[5] https://www.aaai.org/Magazine/Watson/watson.php

[6] https://research.fb.com/wp-content/uploads/2017/12/hpca-2018-facebook.pdf

[Starfruit] https://ieeexplore.ieee.org/abstract/document/8310415

[7] https://t.co/4bGgwDpdNa

[8] https://techcrunch.com/2017/07/11/siri-usage-and-engagement-dropped-since-last-year-as-alexa-and-cortana-grew/

[9] http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks

[10] https://cloud.google.com/blog/products/gcp/cloud-tpu-machine-learning-accelerators-now-available-in-beta?m=1

[11] https://www.tensorflow.org/

[12] https://cloud.google.com/blog/products/ai-machine-learning/what-makes-tpus-fine-tuned-for-deep-learning

[13] https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8192463

[14] https://www.nvidia.com/en-us/data-center/tesla-v100/

[15] https://nvidianews.nvidia.com/news/nvidia-titan-v-transforms-the-pc-into-ai-supercomputer

[16] https://www.nvidia.com/en-us/data-center/tensorcore/

[17] http://images.nvidia.com/content/volta-architecture/pdf/volta-architecture-whitepaper.pdf

[18] «https://www.newegg.com/Product/Product.aspx?Item=9SIAA4T7EB3468&ignorebbr=1&nm_mc=KNC-GoogleMKP-PC&cm_mmc=KNC-GoogleMKP-PC-_-pla-Compeve-_-Video + Nvidia -_- 9SIAA4T7EB3468 & gclid = CjwKCAiAiuTfBRAaEiwA4itUqBxgSN-rl4tMfX8sKihwWDNU8FDuG2rbVRhecomXjHy-WrYqbgBrcEARo & gt;

[19] https://software.intel.com/en-us/articles/intel-processors-for-deep-learning-training

[20] https://arxiv.org/abs/1709.05011

[21] https://www.newegg.com/Product/Product.aspx?Item=N82E16819117904

[22] https://github.com/intel/mkl-dnn

Приложение

[A] ResNet-50 - это остаточная нейронная сеть (RNN), которая имеет глубину 50 уровней. RNNS - это другой подход к нейронным сетям, чем, скажем, сверточная нейронная сеть. RNN часто используются для распознавания речи, языкового перевода, генерации текста и т. Д. В предложении RNN передают вычисленные данные с нижнего уровня на более высокий уровень, тем самым создавая повторяющиеся или остаточные вычисления в сети.

[B] TFLOPS - это измерение обработки 1 триллиона операций с плавающей запятой за 1 секунду.