В предыдущей статье поделилисьВысокопроизводительная платформа логического вывода для глубокого обучения OpenPPL официально с открытым исходным кодом》
Сегодня я продолжу разговор с вами о происхождении OpenPPL, который должен начинаться с SensePPL:
Что такое SensePPL?
SensePPL — это механизм развертывания логического логического вывода с несколькими бэкендами, тщательно созданный командой SenseTime HPC с 2015 года. Модель, обученную обучающей платформой, можно преобразовать в стандартный формат, такой как onnx, и использовать для быстрого развертывания логических выводов с помощью SensePPL.
SensePPL загрузит и преобразует модель, сгенерирует направленный граф и план выполнения, выполнит оптимизацию на уровне графа и вызовет тщательно настроенную библиотеку операторов для расчета логических выводов во время выполнения. Код всех основных фреймворков и библиотек операторов полностью разрабатывается командой и практически не зависит от третьих лиц.
Происхождение OpenPPL
SensePPL использовался и совершенствовался внутри SenseTime в течение многих лет и накопил множество технологий и бизнес-практик для вывода глубокого обучения в области CV. Конечно, есть также много частных функций настройки, тесно связанных с бизнесом компании, которые аналогичны многим технологиям с закрытым исходным кодом в отрасли.
Когда мы решили вернуться к техническому сообществу и выбрать открытый исходный код, чтобы позволить большему количеству разработчиков беспрепятственно использовать наш механизм вывода, мы решили выбрать общепринятый стандарт для версии SensePPL с открытым исходным кодом — формат модели onnx и провести рефакторинг. для этого Основная структура SensePPL.
Новый PPL родился из-за открытого исходного кода, мы называем его «OpenPPL», что указывает на то, что мы будем использовать открытый исходный код и стандартизацию в отрасли.
Официальный сайт丨openppl.ai
Возможности OpenPPL
OpenPPL — это новое начало, и первая версия будет начинаться с версии 0.1. Содержит базовую поддержку типа данных fp32 архитектуры x86, а также типа данных fp16 архитектуры Turing для графических процессоров NVIDIA.
В то же время мы разработаем схемы логического вывода для этих двух архитектур для основной сети OpenMMLab. Эти две архитектуры могут в основном покрыть значительную часть потребностей в развертывании в облачных и серверных областях, но их все еще далеко не достаточно.
В течение следующих шести месяцев или одного года мы значительно расширим и улучшим OpenPPL, чтобы достичь коммерчески доступной версии v1.0. Версия v1.0 будет включать, помимо прочего, следующие функции:
1. Процессор x86:Процессор x86 остается краеугольным камнем облачных и серверных сценариев и является наиболее широко используемой архитектурой облачных вычислений. OpenPPL будет и дальше улучшаться.Согласно отзывам рынка, он может поддерживать больше новых наборов инструкций x86, в то же время он будет поддерживать архитектуру серии AMD Zen и ряд отечественных процессоров x86.
2. Графический процессор NVIDIA:Продолжать значительно оптимизировать производительность оператора и поддержку инфраструктуры на GPU; в то же время поддерживать вывод форматов данных с более низкой точностью, таких как int8/int4 архитектуры Turing, и открывать код соответствующей цепочки инструментов квантования; мы также поддерживают новейшую архитектуру NVIDIA Ampere.
Это значительно улучшит удобство использования OpenPPL на архитектурах CUDA.
3. ARM-сервер:SensePPL имеет самую продолжительную поддержку и оптимизацию для архитектуры ARM, но всегда был популярным продуктом для мобильных устройств и сценариев IoT.
Архитектура ARM отличается отличным соотношением энергопотребления и сильной экосистемой. Благодаря быстрому повышению производительности процессоров ARM сервер ARM наконец-то преодолел порог крупномасштабного применения в области облачных вычислений, представляя направление будущих облачных центров обработки данных.
OpenPPL трансформирует поддержку процессоров ARM в мобильной сфере в облачные и серверные области и изначально поддерживает ARMv8/v9 и другие архитектуры в версии v1.0.
долгосрочное планирование
OpenPPL поглотит потребности отрасли, поддержит и улучшит типы операторов и моделей, поддерживаемых в течение длительного времени, и оптимизирует всю цепочку долгосрочных рассуждений модели. Помимо обоснования самой модели, одна за другой будут внедряться такие технологии, как предобработка модели и Serving.
В настоящее время OpenPPL по-прежнему является традиционным способом представления ориентированного графа + библиотека операторов.Слияние моделей, которое может быть выполнено, ограничено, а возможности оптимизации графа ограничены. Команда высокопроизводительных вычислений провела большую практику в области автоматической генерации кода и в будущем будет постепенно внедрять соответствующие технологии в OpenPPL, чтобы сделать возможность оптимизации модели более тщательной.
Мы также всегда будем обращать внимание на прогресс отрасли и внедрять больше технологий и поддержки, таких как чрезвычайно популярный в последнее время Transformer и другие технологии моделей. Разработка серверной архитектуры ИИ также более диверсифицирована. Многие процессоры ИИ уже занимают значительную долю рынка. Мы также будем расширять сотрудничество с другими чипами и процессорами ИИ в отрасли в соответствии со спросом и ставить нас на графические процессоры и процессоры NVIDIA. Передача и преобразование накопленных технологий для поддержки большего количества сценариев и фишек.
В то же время технологическое накопление SensePPL на стороне терминала также будет выпущено в версиях после 1.0. Мы надеемся наладить тесное сотрудничество с более крупными и нисходящими организациями и производителями в отрасли.
- Адрес гитхаба:ppl.nn
- Текст: Гао Ян