Аннотация: Архитектура гетерогенных вычислений CANN (Compute Architecture for Neural Networks) — это архитектура гетерогенных вычислений, специально ориентированная на сценарии ИИ с целью повышения эффективности разработки пользователей и высвобождения максимальной вычислительной мощности процессоров Ascend AI.
1. Введение
С 2016 года AlphaGo, которая побеждала лучших шахматистов мира и доминировала над человеческой армией,
К 2020 году я напишу романы, сценарии и код.Универсальный GPT-3 Кеке,
К 2021 году модель Pangu, наиболее близкая к человеческому пониманию китайского языка и обладающая отличной способностью к обобщению...
В последние годы область искусственного интеллекта постоянно обновляла человеческое познание и разрушала человеческое воображение...
Подобно тому, как люди овладевают определенным навыком, для обучения достаточно умной модели алгоритма ИИ часто требуются десятки тысяч объемов данных. Если взять в качестве примера GPT-3, то его параметры достигли 175 миллиардов, размер выборки — целых 45 ТБ, а время разового обучения измеряется месяцами.Потребность в вычислительных мощностях стала камнем преткновения на пути ИИ!
В то же время, с ростом зрелости приложений искусственного интеллекта, требования к обработке неструктурированных данных, таких как текст, изображения, аудио и видео, выросли в геометрической прогрессии, и процесс обработки данных постепенно сместился от вычислений общего назначения к гетерогенным вычислениям. .
Базовая программно-аппаратная платформа Ascend AI, запущенная Huawei. Среди них процессор Ascend AI + гетерогенная вычислительная архитектура CANN с присущими ей сверхмощными и гетерогенными вычислительными возможностями, а также сочетанием программного и аппаратного обеспечения постепенно становится катализатором быстрого внедрения индустрии ИИ.
CANN (вычислительная архитектура для нейронных сетей) гетерогенная вычислительная архитектураЭто гетерогенная вычислительная архитектура, специально ориентированная на сценарии ИИ с целью повышения эффективности разработки пользователей и высвобождения максимальной вычислительной мощности процессора ИИ Ascend. Он поддерживает основные интерфейсные платформы и защищает пользователей от аппаратных различий сериализованных чипов.Благодаря преимуществам полных сценариев, низкого порога и высокой производительности он может удовлетворить всесторонние требования пользователей к искусственному интеллекту.
2. Совместимость с основными интерфейсными фреймворками, быстрая трансплантация алгоритма
В настоящее время в области искусственного интеллекта навыки построения моделей алгоритмов ИИ уже совершенны.Средства глубокого обучения, используемые для построения моделей ИИ на рынке, включают MindSpore с открытым исходным кодом Huawei, TensorFlow от Google, PyTorch от Facebook и Caffe.
Через слой адаптации плагина CANN может легко использовать модели ИИ, разработанные на основе разных фреймворков, и преобразовывать модели, определенные в разных фреймворках, в стандартизированный графический формат Ascend IR (промежуточное представление), скрывая различия фреймворков.
Таким образом, разработчикам нужно совсем немного изменений, чтобы быстро завершить трансплантацию алгоритма, ощутить растущую вычислительную мощность процессора Ascend AI и значительно снизить стоимость переключения платформ.
3. Простой и удобный интерфейс разработки, так что Xiaobai также может играть с ИИ
Использование искусственного интеллекта для достижения интеллектуальных преобразований стало почти обязательным курсом во всех сферах жизни.Минималистская разработкаОн предоставляет набор простых и удобных в использовании интерфейсов программирования AscendCL (Ascend Computing Language), чтобы скрыть различия базовых процессоров для разработчиков.Вам нужно только освоить набор API-интерфейсов, которые можно полностью применить ко всей серии Процессоры Ascend AI.
В то же время он может соответствовать требованиям, которые разработчики все еще могут сделать в случае будущих обновлений версии CANN.Полностью обратная совместимость, и эффективность работы не снижается!
Простой интерфейс разработки приложений ИИ
Искусственный интеллект доверяет людям их стремление к лучшей жизни в будущем.Когда мы каждый день сталкиваемся с душевными пытками «что это за мусор и в какое ведро его положить», приложение для сортировки мусора с искусственным интеллектом может взять вас из тяжелого положения.
AscendCL предоставляет набор библиотек API на языке C для разработки приложений для глубокого вывода нейронных сетей.Он имеет возможности управления ресурсами во время выполнения, загрузки и выполнения модели, а также предварительной обработки изображений, что позволяет разработчикам легко разблокировать классификацию изображений, распознавание целей и другие типы приложения ИИ. Кроме того, он может поддерживать вызов библиотеки AscendCL через основные платформы с открытым исходным кодом и прямой вызов интерфейса программирования AscendCL, открытого CANN.
Вот 5 шагов, чтобы получить приложение для классификации мусора с помощью ИИ:
- Приложение ресурса управления операциями: используется для инициализации внутренних ресурсов системы.
- Загрузите файл модели и создайте выходную память: преобразуйте модель с открытым исходным кодом в модель om, поддерживаемую CANN, и загрузите ее в память; получите основную информацию о модели, создайте выходную память модели и подготовьтесь к последующему выводу модели.
- Предварительная обработка данных: предварительно обработайте считанные данные изображения, а затем создайте входные данные модели.
- Вывод модели: Вывод модели на основе входных данных сконструированной модели.
- Проанализируйте результат вывода: в соответствии с выходными данными модели проанализируйте результат вывода модели.
Гибкий интерфейс разработки операторов
Если в вашей модели ИИ есть операторы, которые еще не поддерживаются CANN, или вы хотите изменить существующие операторы для повышения производительности вычислений, вы можете использовать интерфейс разработки пользовательских операторов, открытый CANN, для разработки нужных вам операторов.
Для разработчиков ИИ разного уровня CANN предоставляет два типа режимов развития оператора: эффективный (TBE-DSL) и профессиональный (TBE-TIK), которые могут гибко подходить разработчикам разного уровня.
Среди них сложность входа в TBE-DSL относительно низкая.Он может автоматически реализовывать сегментацию данных и планирование.Разработчикам нужно только обратить внимание на логику вычислений самого оператора, и они могут разрабатывать высокопроизводительные операторы, не зная аппаратных деталей. .
TBE-TIK относительно сложен. В отличие от TBE-DSL, который абстрагирует программирование только на высоком уровне, он предоставляет возможности программирования и настройки на уровне инструкций. Разработчикам необходимо вручную выполнять вызовы на уровне инструкций, что позволяет полностью использовать аппаратные возможности и достигать большего. эффективный и сложный оператор.
Удобный интерфейс ИК-композиции
Кроме того, разработчики также могут напрямую вызывать библиотеку операторов в CANN через стандартизированный интерфейс Ascend IR (промежуточное представление) без самой среды глубокого обучения, чтобы построить высокопроизводительную модель, которую можно выполнить на процессоре Ascend AI.
4. Более 1200 высокопроизводительных библиотек операторов, создающих источник растущей вычислительной мощности.
Модель, построенная на основе фреймворка глубокого обучения, фактически состоит из вычислительных блоков, которые мы называем операторами (сокращенно Op), которые соответствуют определенной вычислительной логике.
Ускоренное вычисление операторов на оборудовании составляет основу и ядро ускоренных нейронных сетей. CANN в настоящее время предоставляет1200+ видовГлубоко оптимизированные, удобные для аппаратного обеспечения операторы, именно такое множество высокопроизводительных операторов создает мощный источник вычислительной мощности, позволяя вашей нейронной сети «мгновенно» ускоряться.
- Библиотека операторов NN (нейронная сеть): CANN охватывает типы вычислений широко используемых алгоритмов глубокого обучения, включая платформы TensorFlow, Pytorch, MindSpore и ONNX, и занимает наибольшую долю всех операторов в CANN. Пользователям нужно только обратить внимание на реализацию деталей алгоритма. Вам нужно разрабатывать и отлаживать оператор самостоятельно.
- Библиотека операторов BLAS (базовые подпрограммы линейной алгебры): BLAS — это базовая сборка линейной алгебры, которая представляет собой числовую библиотеку для основных операций линейной алгебры, таких как векторы и матрицы.CANN поддерживает общее умножение матриц и основные операции Max, Min, Sum, умножения и сложения.
- Библиотека операторов DVPP (Digital Video Pre-Processor): Обеспечивает высокопроизводительный видеокодек, кодек изображения, кадрирование и масштабирование изображения, а также другие возможности предварительной обработки.
- Библиотека операторов AIPP (предварительная обработка AI): он в основном реализует изменение размера изображения, преобразование цветовой гаммы (преобразование формата изображения), вычитание среднего / коэффициента умножения (нормализация изображения) и интеграцию с процессом вывода модели для удовлетворения входных требований вывода.
- Библиотека операторов HCCL (Huawei Collective Communication Library): Он в основном обеспечивает широковещательную передачу, allreduce, reducescatter, allgather и другие функции коллективной связи между одной машиной с несколькими картами и несколькими машинами с несколькими картами, а также обеспечивает эффективную возможность передачи данных при распределенном обучении.
5. Высокопроизводительный компилятор графов, который наделяет нейронные сети сверхспособностями.
Самое сложное в мире - это ждать, ждать светофора, ждать зимних и летних каникул, ждать еды на вынос, ждать нужного человека...
То же самое верно и в области искусственного интеллекта.С быстрой эволюцией структуры нейронной сети все больше и больше вероятность столкнуться с узкими местами при решении проблем производительности модели ИИ просто с помощью ручной оптимизации.График расчета составляется и оптимизируется в соответствии с к характеристикам аппаратной структуры процессора Ascend AI, чтобы он мог работать эффективно.
Какие «божественные операции» есть у магов?
Автоматическое слияние операторов: автоматическое слияние на основе нескольких измерений, таких как операторы, подграфы и SCOPE, эффективно сокращающее количество вычислительных узлов и значительно сокращающее время вычислений.
Слияние буферов: Стремясь решить проблему большой пропускной способности данных и памяти, связанной с вычислениями в нейронных сетях, эффективность вычислений повышается за счет уменьшения количества передач данных и улучшения использования кеша в процессоре Ascend AI.
Давайте сравним до и после слияния буфера:
Перед слиянием, после того как оператор 1 завершит вычисления на процессоре Ascend AI, он передает данные из кэш-буфера в процессоре Ascend AI во внешнее хранилище.Оператор 2 получает данные из внешнего хранилища в качестве входных данных и перемещает их в кеш. буфер для расчета. . После слияния, после завершения вычисления оператора 1, данные сохраняются в кэш-буфере, а оператор 2 напрямую получает данные из кэш-буфера для выполнения вычисления оператора 2, что эффективно сокращает количество передач данных и улучшает производительность. вычислительная производительность.
Вся карта тонет: Процессор Ascend AI объединяет множество ресурсов вычислительного оборудования, таких как AICore/AICPU/DVPP/AIPP и т. д. Благодаря богатой почве процессора Ascend AI, CANN может не только передать вычислительную часть процессору Ascend AI. процессор ускоряется, и поток управления, DVPP и коммуникационные части также могут выполняться одновременно. Возможность выполнения всех замкнутых циклов сложных графов логических вычислений в процессоре ИИ, особенно в сценариях обучения, может эффективно сократить время взаимодействия с центральным процессором и повысить производительность вычислений.
Возможность гетерогенного планирования: когда граф вычислений содержит несколько типов вычислительных задач, CANN в полной мере использует богатые гетерогенные вычислительные ресурсы процессора Ascend AI.Исходя из удовлетворения зависимостей в графе, он распределяет вычислительные задачи по различным вычислительным ресурсам для достижения параллелизма. Вычисления, улучшить использование ресурсов каждой вычислительной единицы и, в конечном итоге, повысить общую эффективность вычислительных задач.
6. Автоматическая точность смешивания, эффективное достижение баланса доходов
Как следует из названия, автоматическая смешанная точность — это технология, которая автоматически сочетает половинную точность и одинарную точность для ускорения выполнения модели и играет незаменимую роль в сценариях обучения крупномасштабных моделей.
Тип данных одинарной точности (Float Precision32, FP32) обычно используется в компьютерах, а половинная точность (Float Precision16, FP16) — относительно новый тип данных с плавающей запятой, который использует 2 байта (16 бит) для хранения в компьютерах. сценарии, не требующие высокой точности.
Очевидно, что использование типа FP16 определенно приведет к потере точности вычислений, но для обучения глубокому обучению не все вычисления требуют высокой точности. Таким образом, операторы, не чувствительные к точности графа вычислений, могут быть ускорены за счет использования типа FP16, который позволяет эффективно сократить использование памяти и достичь баланса между производительностью и точностью.
7. Кластер уровня E, открывающий эру суперкомпьютеров ИИ
По мере того как проблемы, которые могут решать основные модели глубокого обучения, становятся все более и более сложными, сложность самой модели начинает увеличиваться, а область искусственного интеллекта нуждается в более мощных вычислительных мощностях для удовлетворения потребностей в обучении будущих сетей.
Основанный на базовом программном и аппаратном обеспечении Ascend AI, Pengcheng Cloud Brain II преодолел текущий потолок вычислительной мощности в 100 FLOPS уровня P (миллиарды миллиардов вычислений в секунду) в отрасли, позволив FLOPS уровня E (10 миллиардов миллиардов вычислений в секунду). вычислений в секунду)) Сцена вычислительной мощности вышла на сцену истории.
Он объединяет тысячи процессоров Ascend AI с общей вычислительной мощностью 256-1024 PFLOPS, что составляет 2,56-10,24 миллиарда операций с плавающей запятой в секунду.
Как эффективно планировать работу тысяч процессоров Ascend AI — это проблема, с которой сталкиваются крупномасштабные кластерные сети.
CANN интегрирует HCCL (библиотека коллективных коммуникаций Huawei), которая предоставляет высокопроизводительное решение коллективной связи с параллельными данными/параллельными моделями для обучения процессоров Ascend AI на нескольких машинах и с несколькими картами:
- Высокоскоростное межсетевое соединение HCCS Mesh внутри сервера и неблокирующая сеть RDMA между серверами представляют собой сеть с двухуровневой топологией, в сочетании с адаптивным алгоритмом связи топологии, пропускная способность канала может быть полностью использована, а объем передачи данных между серверами серверы могут быть равномерно распределены на каждый независимый сервер параллельно.Плоскость сети значительно улучшает линейность обучения модели в сверхбольших кластерах.
- Он объединяет высокоскоростной коммуникационный механизм и специальный аппаратный механизм планирования, значительно снижает накладные расходы на планирование связи, реализует унифицированное и гармоничное планирование коммуникационных задач и вычислительных задач, а также точно контролирует джиттер системы.
Если «Pengcheng Cloud Brain II» сравнить с масштабным симфоническим оркестром, то CANN — отличный дирижер, работающий рука об руку с ИИ-процессором Ascend, чтобы открыть новую главу в эре суперкомпьютеров ИИ.
8. Пишите в конце
CANN пытается прорваться с момента его выпуска в 2018 году.Предоставьте разработчикам минималистский опыт и раскройте максимальную производительность оборудования ИИ., стала опорой, поддерживающей продвижение CANN в сфере искусственного интеллекта.
Я верю, что он будет неуклонно идти по пути ИИ, возьмитесь за руки с теми, кто хочет изменить мир, вместе меняйте мир и вместе стройте будущее!
В конце 2021 года CANN также представит новую, более мощную версию 5.0. Какие сюрпризы она принесет? Давайте подождем и увидим!
Нажмите «Подписаться», чтобы впервые узнать о новых технологиях HUAWEI CLOUD~