Об авторе:kevinxiaoyu, старший научный сотрудник, связанный с Tencent TEG-Architecture Platform Department, Его основные направления исследований — проектирование архитектуры и оптимизация гетерогенных вычислений с глубоким обучением и аппаратное ускорение, облако FPGA и высокоскоростное визуальное восприятие. В серии «Гетерогенная технология ускорения глубокого обучения» есть три статьи, в которых в основном анализируется эволюция архитектуры гетерогенного ускорения в научных кругах и промышленности на техническом уровне.
1. Обзор
существует«Гетерогенная технология ускорения для глубокого обучения (1)»На первом этапе платформы ускорения ИИ, описанной в этой статье, будь то в конструкции FPGA или ASIC, будь то для CNN или LSTM и MLP, используется ли она во встроенных терминалах или в облаке (TPU1), его архитектураСуть в том, чтобы решить проблему пропускной способности. Если проблема пропускной способности не будет решена, вычислительная мощность будет доступна, но коэффициент использования не улучшится. Так же, как и у 8-ядерного ЦП, если одно из ядер занимает 100% пропускной способности памяти, остальные 7 ядер не могут считать данные, необходимые для расчета, и всегда будут находиться в состоянии простоя. В связи с этим в академическом мире появилось большое количество литературы для обсуждения проблемы пропускной способности с разных точек зрения, которые можно резюмировать следующим образом:
A. Потоковая передача и мультиплексирование данных
B. Встроенная память и ее оптимизация
C, сжатие битовой ширины
D. Разреженная оптимизация
E. Модель на кристалле и взаимосвязь на уровне чипа
F. Новые технологии: бинарные сети, мемристоры и HBM
О том, как решить проблему пропускной способности указанными выше способами, будет сказано отдельно ниже.
2. ПК и эволюция различных ходов
2.1 Потоковая передача и мультиплексирование данных
Потоковая обработка — это эффективная вычислительная структура, применяемая на ПЛИС и специализированных ASIC, ядром которой является параллелизм инструкций на основе конвейера, то есть результат текущей единицы обработки не записывается обратно в кеш, а напрямую используется как вход блок обработки следующего уровня, заменяющий текущий блок обработки, обратная запись результата и доступ к памяти для чтения данных следующего блока обработки. Многоядерные процессоры и графические процессоры в основном используют архитектуру с параллельными данными, и сравнение с потоковой архитектурой показано на рис. 2.1. В левой части рисунка показан метод параллельной обработки данных, все вычислительные блоки управляются управляющим модулем, который единообразно извлекает данные из кеша для вычислений, при этом взаимодействие данных между вычислительными блоками отсутствует. Когда множество вычислительных блоков считывают кэш одновременно, конкуренция за полосу пропускания вызовет узкое место; правая сторона рисунка представляет двумерную потоковую обработку, основанную на параллелизме команд, то есть каждый вычислительный блок имеет независимую инструкцию (т. е. настраиваемая вычислительная логика), а данные из соседнего вычислительного блока вводят и выводят в вычислительный блок следующего уровня, причем взаимодействие данных происходит только на стороне, примыкающей к хранилищу, что значительно снижает зависимость от пропускной способности хранилища, представляя настраиваемый дизайн для FPGA и специализированных ASIC.
Рисунок 2.1 Сравнение параллелизма данных и потоковой передачи
Рисунок 2.2 Одномерный систолический массив (вверху) Двумерный систолический массив (внизу) в ТПУ
Когда каждая единица обработки (Processing Element, PE) в потоковой обработке имеет одинаковую структуру, она имеет специальное название - систолическая матрица, а одномерная систолическая матрица показана на рисунке 2.2 (выше). Когда процессор считывает данные из памяти для обработки, они записываются обратно в память после нескольких однородных PE-процессов. Для памяти требуется только соответствие пропускной способности чтения и записи одного PE, что снижает частоту доступа к данным. Идея пульсирующей архитектуры проста:Позвольте данным проходить через процессор как можно дольше. Когда часть данных вводится от первого PE до тех пор, пока не достигнет последнего PE, он обрабатывается несколько раз. Следовательно, он может достигать высокой пропускной способности при небольшой пропускной способности [1].
Двумерная систолическая матрица, используемая в TPU, показана на рис. 2.2 (внизу) для реализации матрично-матричного умножения и векторно-матричного умножения. Данные поступают с верхней и левой сторон массива ячеек и выходят с нижней стороны. Каждая ячейка представляет собой блок умножения-сложения, который выполняет одно умножение и одно сложение за цикл. При использовании систолического массива для операции свертки двумерную FeatureMap необходимо расширить до одномерного вектора, а ядро повернуть, а затем ввести, как показано на рисунке 2.3 в патенте TPU.
Рисунок 2.3. В патенте ТПУ перегруппировка данных систолического массива во время операции свертки
При значительном увеличении мультиплексирования данных систолический массив также имеет два недостатка, а именно перегруппировку данных и адаптацию масштаба. Во-первых, систолическая матрица в основном реализует векторное/матричное умножение. Взяв в качестве примера вычисления CNN, данные CNN, входящие в систолический массив, должны быть хорошо отрегулированы и строго следовать тактовым импульсам и вводу пространственного порядка. Дополнительные операции по перераспределению данных усложняют процесс и, по-видимому, выполняются программно. Во-вторых, результаты не могут быть выведены до тех пор, пока данные не пройдут через весь массив. Когда в вычисляемом векторе слишком мало элементов, а масштаб систолического массива слишком велик, не только трудно использовать каждый элемент в массиве, но и увеличивается задержка импорта и экспорта данных по мере увеличения размера, уменьшая вычислительная эффективность. Следовательно, при определении масштаба систолического массива следует также учитывать эффективность в типичных приложениях с учетом площади, энергопотребления и пиковой вычислительной мощности.
Кембрийская серия архитектур микросхем DianNao также использовала деревья множественного сложения с потоковой обработкой (DianNao[2], DaDianNao[3], PuDianNao[4]) и структуры, подобные систолическому массиву (ShiDianNao[5]). Чтобы быть совместимыми с мелкомасштабными матричными операциями и поддерживать высокий уровень использования, а также лучше поддерживать одновременную многозадачность, DaDianNao и PuDianNao уменьшают вычислительную гранулярность и используют двухуровневую вычислительную архитектуру подразделения, то есть в верхнем массиве PE каждый PE состоит из нескольких вычислительных блоков меньшего масштаба.Хотя более подробное распределение задач и планирование требует дополнительной логики, полезно обеспечить вычислительную эффективность каждого вычислительного блока и контролировать энергопотребление, как показано на рисунке 2.4.
Рисунок 2.4 Организационная структура вычислительного блока на основе потоковой обработки: сверху вниз общая структура и блок обработки DianNao, DaDianNao, общая блок-схема ShiDianNao, PuDianNao и внутренняя структура каждого блока обработки MLU
В дополнение к использованию потоковой обработки для уменьшения зависимости PE от входной полосы пропускания, полосу пропускания также можно уменьшить за счет мультиплексирования данных при расчете.Метод мультиплексирования в CNN показан на рисунке 2.5.
(a) | (b) | (c) |
Рисунок 2.5 Мультиплексирование данных в CNN
(a) (b) (c) на рисунке 2.5 соответствуют мультиплексированию всей FeatureMap ядра свертки, мультиплексированию нескольких наборов фильтров набором FeatureMaps и мультиплексированию фильтров путем увеличения размера пакета. Когда вышеупомянутые три метода используются в комбинации, скорость мультиплексирования данных может быть значительно улучшена, что является одной из причин, по которой TPU приближается к пиковой вычислительной мощности при обработке CNN, достигая 86Tops/s.
2.2 Встроенная память и ее оптимизация
Внешняя память (такая как DDR и т. д.) имеет преимущество в виде большой емкости.Однако в конструкции ASIC и FPGA использование DRAM часто имеет две проблемы: одна — недостаточная пропускная способность, а другая — избыточное энергопотребление. Из-за необходимости управлять вводом-выводом на высокой частоте энергопотребление при доступе к DRAM обычно более чем в 200 раз превышает потребление энергии на единицу операций Сравнение энергопотребления между доступом к DRAM и другими операциями показано на рисунке 2.6.
Рисунок 2.6 Энергозатраты на доступ к DRAM вне кристалла
Для решения проблем с пропускной способностью и энергопотреблением обычно используются два подхода:Кэш-память на кристалле и смежное хранилище.
1) Увеличение кэш-памяти на кристалле способствует увеличению мультиплексирования данных в большем количестве случаев. Например, при перемножении матриц A и B, если все B могут храниться в кэше, B загружается только один раз, а время мультиплексирования эквивалентно количеству строк A; если кэша недостаточно, выполняется многократная загрузка требуются, что увеличивает потребление полосы пропускания. Когда объем кэш-памяти на кристалле достаточен для хранения всех данных, необходимых для расчета, или для отправки данных по запросу через основной управляющий процессор, от внешней DRAM можно отказаться, что значительно снижает энергопотребление и площадь платы. принято большинством бумаг AI ASIC в Китае.
2) Близость к складу. При загрузке данных из кэш-памяти на кристалле, если используется одно хранилище на кристалле, его интерфейс часто не соответствует требованиям к пропускной способности, а централизованное хранилище и длинные пути чтения и записи также увеличивают задержку. В это время объем встроенной памяти может быть увеличен и распределен вблизи интерфейса данных вычислительного блока, так что вычислительный блок может пользоваться исключительно собственной пропускной способностью памяти. По мере увеличения числа растет и общая пропускная способность встроенной памяти, как показано на рис. 2.7.
Рис. 2.7 Распределение встроенной памяти TPU (вверху) и DianNao (внизу)
И систолический массив, и дерево умножения-сложения на рис. 2.7 являются крупномасштабными вычислительными единицами, имеющими грубую структуру. Когда принимается структура мелкозернистых вычислительных блоков, как показано на рис. 2.8, может использоваться иерархический метод хранения, то есть в дополнение к настройке общих кэшей на кристалле в каждом вычислительном блоке также настраивается выделенная память, поэтому что вычислительные устройства могут пользоваться эксклюзивным использованием своей пропускной способности и уменьшать доступ к общему кешу. Cambrian DaDianNao также использует иерархическую систему хранения с общей трехуровневой архитектурой, которая оснащена центральной памятью, четырьмя круговыми распределенными блоками памяти, а также входными и выходными блоками памяти, как показано на рис. глубина и пропускная способность. , дополненные шиной межсоединений между чипами, вся модель может быть размещена на чипе для реализации встроенного обучения и логического вывода.
Рисунок 2.8. Детализированный вычислительный блок и соседнее хранилище, темно-красным цветом на приведенном выше рисунке является хранилище.
Рисунок 2.9 Блок вычислений и распределение памяти DaDianNao
2.3, сжатие битовой ширины
Два года назад пользовательская архитектура процессора для глубокого обучения все еще находилась на начальной стадии.Вывод унаследовал 32-битное квантование с плавающей запятой ЦП и ГП.Каждая операция умножения требовала не только 12-байтового чтения и записи (3 слова для 8 -bit Quantization)), 32-битный операционный блок занимает большую площадь на кристалле, что увеличивает энергопотребление и потребление полосы пропускания. В статье PuDianNao [4] 16-битный множитель составляет 1/5 от 32-битного множителя на площади ASIC, то есть в 5 раз больше множителей может быть размещено в области того же размера. Более высокая прибыль будет получена при использовании 8bit. Поэтому академическое сообщество неустанно гонится за более низкой точностью квантования, от 16-битных до пользовательских 9-битных[6], 8-битных и даже более радикальных 2-битных и 1-битных двоичных сетей [7-8]. Когда большая разрядность преобразуется в низкоразрядное квантование, это неизбежно приводит к потере точности. В связи с этим влияние на точность может быть уменьшено путем настройки режима квантования, диапазона представления, кодирования и т. д. или даже увеличения глубины модели (бинарной сети).Метод настройки режима квантования и диапазона представления показано на рисунке 2.10.
(a) | (b) |
Рисунок 2.10 (a) Несколько режимов квантования и (b) Динамическая регулировка разрядности
На рисунке 2.10 (а) показаны различные режимы квантования.Одни и те же 8 бит могут быть представлены линейным квантованием, логарифмическим квантованием или нелинейным квантованием в соответствии с распределением значений в модели. Рисунок 2.10 (b) представляет собой динамическую настройку битовой ширины, предложенную Цзяньтао Цю и др. [9], которая заставляет 8-битное квантование использовать разные смещения и целочисленные и десятичные распределения между различными уровнями, чтобы динамически регулировать в соответствии с ограничением минимального квантования. error Диапазон и точность квантования в сочетании с интенсивной тренировкой могут значительно уменьшить влияние полосы пропускания с низким битрейтом. Результаты испытаний в модели CNN показаны в следующей таблице:
Низкая разрядность означает меньшую вычислительную мощность, пропускную способность и энергопотребление при обработке одной и той же задачи. При той же вычислительной мощности пропускная способность удвоится. Для центров обработки данных затраты на эксплуатацию и техническое обслуживание могут быть значительно снижены, а для удовлетворения потребностей может использоваться меньшее количество серверов или более дешевые вычислительные платформы (тип данных TPU — 8/16 бит); -Конец, который может значительно снизить затраты. В настоящее время точность квантования 8 бит признана в отрасли, и GPU также объявил, что он будет обеспечивать аппаратную поддержку 8 бит, тем самым повысив производительность вычислений почти в 4 раза, как показано на рис. 2.11. Гигант FPGA Xilinx также обсуждал возможность 8-битного квантования в официальном документе об ускорении ИИ [10].
Рисунок 2.11 Поддержка NVIDIA для int8
2.4, разреженная оптимизация
Приведенное выше обсуждение в основном относится к вычислению плотных матриц. В практических приложениях большая часть приложений ИИ и матричных операций представляют собой разреженные операции, которые в основном исходят из двух аспектов:
1) Сам алгоритм имеет разреженность. Например, в таких приложениях, как NLP (обработка естественного языка, обработка естественного языка) и рекомендательных алгоритмах обычно имеется всего несколько ненулевых элементов в векторе из десятков тысяч измерений.
2) Алгоритм трансформируется в разреженный. Для повышения общности сама модель глубокого обучения имеет избыточность. После обучения для приложения вклад многих параметров чрезвычайно низок, и модель можно преобразовать в разреженную путем обрезки и повторного обучения. Например, Хан Сонг из Shenjian Technology предложил сокращение модели и выделенную архитектуру разреженной обработки для LSTM на FPGA2017, как показано на рисунке 2.12 [11].
Рисунок 2.12 Коэффициент сокращения и точность модели LSTM (слева) и архитектура разреженной обработки (справа)
Рисунок 2.12 Слева после сокращения 90% параметров модели LSTM практически нет потери точности, и модель сильно разрежена. Правая часть рисунка относится к разреженной архитектуре обработки FPGA, между обрабатываемыми PE выполняется асинхронное планирование, при вводе данных каждого PE используется независимый кэш данных, и в расчет вводятся только ненулевые элементы. , что в три раза больше, чем у Pascal, прирост производительности Titan X и прирост мощности в 11,5 раз. Разрежение не ограничивается LSTM, но также имеет соответствующие приложения на CNN.
Соответственно, компания Cambrian также разработала процессор Cambricon-X [12] для разреженных нейронных сетей, как показано на рис. 2.13. Точно так же Cambricon-X также добавил шаг индексации к входному порту каждого PE, отфильтровывая ненулевые элементы и затем вводя их в PE. В отличие от Shenjian, Cambricon-X поддерживает два индексирующих кода с разными уровнями разреженности и использует разные методы кодирования в моделях с разными уровнями разреженности для оптимизации использования полосы пропускания.
Рисунок 2.13 Структура процессора разреженной нейронной сети Cambrian Cambricon-X
Оптимизация для разреженности преследует две цели: во-первых, считывание достоверных данных из кеша, чтобы избежать ситуации, когда большое количество бесполезных нулевых элементов занимает полосу пропускания.Когда сокращение модели сочетается с архитектурой разреженной обработки, вычислительная мощность FPGA и ASIC будет удвоена, и эффект будет замечательным, что является одной из горячих точек гетерогенного ускорения.
Подводя итог, можно сказать, что разреженность фундаментально снижает объем вычислений с точки зрения модели.При отсутствии прорывов в эволюции архитектуры невозможно сравнить преимущества оптимизации архитектуры. Особенно в сочетании со сжатием битовой ширины улучшение производительности является очень значительным. Однако разреженность должна быть основана на характеристиках архитектуры, и это приведет к потере точности, которую необходимо компенсировать повторным обучением модели и многократной корректировкой. Описанный выше процесс увеличивает порог разреженной оптимизации и требует совместного сотрудничества между командами разработчиков алгоритмов и оптимизации оборудования. В связи с этим некоторые компании, такие как Shenjian Technology, запустили специальные инструменты для разреженного + тяжелого обучения, которые упрощают процесс и дают значительные преимущества по стоимости в сценарии массового развертывания.
2.5 Модель на кристалле и взаимосвязь на уровне чипа
Чтобы решить проблему пропускной способности, обычной практикой является усиление мультиплексирования данных. При каждом расчете двух значений одно является весом Веса, а другое — входной Активацией. Если имеется достаточно большой кэш-память на кристалле в сочетании с соответствующим методом сжатия битовой ширины, все веса кэшируются на кристалле, и каждый раз вводится только активация, полоса пропускания может быть уменьшена вдвое, прежде чем будет оптимизировано повторное использование данных. Тем не менее, количество параметров от GoogleNet50M до ResNet 150M, до популяризации дорогостоящего HBM, ASIC не может достичь такого большого встроенного хранилища в относительной области. По мере углубления модельных исследований будут продолжать появляться более глубокие модели с большим количеством параметров. В связи с этим, на основе режима обработки взаимосвязи на уровне микросхемы и разделения модели в сочетании с технологией межсоединений с несколькими микросхемами параметры нескольких групп разделенных слоев настраиваются на нескольких микросхемах, и несколько микросхем используются для завершения обработки. та же задача в процессе вывода. Cambrian DaDianNao должен реализовать такой дизайн соединения микросхем в сочетании с большим кэшем, как показано на рис. 2.14.
Рисунок 2.14 Распределение памяти в DaDianNao (синяя часть на рисунке) и возможность ускорения при соединении нескольких чипов между собой (сравнение производительности в блоках GPU K20M)
Для того, чтобы поместить всю модель на чип, DaDianNao с одной стороны увеличила емкость встроенного кэша до 36МБ (DaDianNao - 36МБ и 4608 множителей-аккумуляторов, TPU - 28МБ кэш и 65536 множителей-аккумуляторов), полностью гарантируя пропускная способность чтения и записи вычислительного блока. С другой стороны, пропускная способность канала связи между чипами 6,4 ГБ / с * 4 достигается за счет HT2.0, что снижает задержку передачи данных между уровнями, полностью заменяет взаимодействие DRAM вне чипа и решает проблему вычислений с ограниченной полосой пропускания. Соответственно, на Hot Chips 2017 Microsoft предложила разделить модель LSTM и развернуть ее на нескольких FPGA, чтобы избавиться от доступа к внешней памяти и добиться сверхнизкой задержки при логическом выводе [2].
2.6 Новые технологии: бинарные сети, мемристоры и HBM
В дополнение к использованию вышеупомянутых методов для решения проблемы пропускной способности, недавно в академических кругах появились еще два радикальных метода, бинарные сети и мемристоры; промышленность также сделала новые прорывы в технологии памяти, а именно HBM.
Двоичная сеть преобразует часть веса и активации в 1 бит и упрощает умножение до логических операций, таких как XOR, что значительно снижает пропускную способность.Это очень подходит для FPGA с ограниченными ресурсами DSP и богатыми логическими ресурсами, а также полностью настраиваемыми ASIC. Условно говоря, вычислительный блок графического процессора может выполнять операции только в единицах 32/16/8 бит, даже если запустить бинарную модель, эффект ускорения будет не намного быстрее, чем 8-битная модель. Таким образом, бинарная сеть стала мощным инструментом для FPGA и ASIC во встраиваемых интерфейсных приложениях с низким энергопотреблением. В настоящее время в центре внимания бинарной сети все еще находится этап обсуждения модели, в котором обсуждаются способы восполнения потери точности после бинарной системы путем добавления глубины и корректировки модели. Было признано влияние на простые наборы данных, такие как MNIST, Cifar-10 и т. д.
Поскольку пропускная способность становится узким местом вычислений, можно ли поместить вычисления в память? Поскольку архитектура вычислительных блоков, смежных с хранилищем, может повысить эффективность вычислений, можно ли совмещать вычисления и хранение? Мемристор представляет собой устройство, реализующее внутренний расчет памяти.Через соотношение тока, напряжения и проводимости умножения на вход добавляется соответствующее напряжение, а на выходе может быть получен результат умножения и сложения, как показано на рис. Рисунок 2.15 [13]. Когда проводимость используется в качестве программируемого значения веса, а вход используется в качестве активации, можно реализовать расчет нейронной сети. В настоящее время технология 8-битной программируемой проводимости несовершенна из-за ограничений процесса, но она приемлема при более низкой точности квантования. Объединение хранения и вычислений сформирует новый тип архитектуры, отличающийся от системы фон Неймана, под названием In-Memory Computing, которая дает огромное пространство для воображения.
Рисунок 2.15 Принципиальная схема умножения и сложения мемристоров (слева) и векторно-матричных операций (справа)
С развитием технологии производства микросхем в промышленности и постепенным отказом от закона Мура метод простого увеличения количества транзисторов при сохранении той же площади за счет улучшения процесса постепенно стал узким местом. Соответственно, ограничения двухмерной технологии заставляют процесс двигаться в сторону третьего измерения. Например, в области хранения 3D-архитектура и технология вертикального стекирования на кристалле могут удвоить емкость кэш-памяти на кристалле, которая представлена памятью с высокой пропускной способностью (HBM) и гибридным кубом памяти (HMC). По данным Intel, встроенная в чип Lake Crest HBM2 может обеспечить до 12 раз большую пропускную способность, чем DDR4. В настоящее время графические процессоры NVIDIA P100 и V100 имеют интегрированный HBM2 с пропускной способностью на кристалле до 900 ГБ/с; пропускная способность TPU2 на чипе HBM составляет 600 ГБ/с; Xilinx FPGA со встроенным HBM будут доступны в 2018 году. Это технологическое нововведение позволяет разместить всю модель на кристалле, даже если схема взаимосвязи на уровне чипа не используется для текущей модели глубокого обучения, освобождая потребность FPGA/ASIC во внешней памяти DRAM и обеспечивая огромный импульс для разработка ИИ-чипов.
3. Заключение
Приведенное выше обсуждение в основном основано на текущем академическом обсуждении архитектуры процессоров ИИ. Однако в промышленном мире резко возрос спрос на ИИ в определенных областях, таких как облачные сервисы, обработка больших данных, безопасность и приложения для мобильных телефонов. Он даже появился в некоторых приложениях, таких как TPU от Google, Kirin 970 от Huawei и т. д. Какова разработка и состояние процессоров ИИ? Увидимся в следующий раз!
использованная литература
[1] Tang Shan, Systolic Array — Возрождение благодаря Google TPU.Tickets.WeChat.QQ.com/Yes/A-BD LV sy-…
[2] Chen Y, Chen Y, Chen Y, et al.DianNao: a small-footprint high-throughput accelerator for ubiquitousmachine-learning[C]// International Conference on Architectural Support forProgramming Languages and Operating Systems. ACM, 2014:269-284.
[3] Luo T, Luo T, Liu S, et al.DaDianNao: A Machine-Learning Supercomputer[C]// Ieee/acm InternationalSymposium on Microarchitecture. IEEE, 2015:609-622.
[4] Liu D, Chen T, Liu S, et al.PuDianNao: A Polyvalent Machine Learning Accelerator[C]// TwentiethInternational Conference on Architectural Support for Programming Languages andOperating Systems. ACM, 2015:369-381.
[5] Du Z, Fasthuber R, Chen T, et al.ShiDianNao: shifting vision processing closer to the sensor[C]// ACM/IEEE,International Symposium on Computer Architecture. IEEE, 2015:92-104.
[6] Eric Chung, Jeremy Fowers, KalinOvtcharov, et al. Accelerating Persistent Neural Networks at Datacenter Scale.Hot Chips 2017.
[7] Meng W, Gu Z, Zhang M, et al.Two-bit networks for deep learning on resource-constrained embedded devices[J].arXiv preprint arXiv:1701.00485, 2017.
[8] Hubara I, Courbariaux M, SoudryD, et al. Binarized neural networks[C]//Advances in neural informationprocessing systems. 2016: 4107-4115.
[9] Qiu J, Wang J, Yao S, et al.Going deeper with embedded fpga platform for convolutional neuralnetwork[C]//Proceedings of the 2016 ACM/SIGDA International Symposium onField-Programmable Gate Arrays. ACM, 2016: 26-35.
[10] Xilinx, Deep Learningwith INT8Optimizationon Xilinx Devices, woohoo.xilin county.com/support/doc…
[11] Han S, Kang J, Mao H, et al.Ese: Efficient speech recognition engine with compressed lstm on fpga[J]. arXivpreprint arXiv:1612.00694, 2016.
[12] Zhang S, Du Z, Zhang L, et al. Cambricon-X: An accelerator for sparseneural networks[C]// Ieee/acm International Symposium on Microarchitecture.IEEE Computer Society, 2016:1-12.
[13] Shafiee A, Nag A, MuralimanoharN, et al. ISAAC: A convolutional neural network accelerator with in-situ analogarithmetic in crossbars[C]//Proceedings of the 43rd International Symposium onComputer Architecture. IEEE Press, 2016: 14-26.