adept
Описание
Языки
- C++79,8%
- Jupyter Notebook14,2%
- Python4,6%
- CMake1,2%
- Shell0,2%
Adept
Automatic Differentiation Engine for Tensor Processing
Зависимости | Сборка | Пример использования| Правила для разработчиков
На данный момент это исследовательский и образовательный проект по разработке платформы для обучения нейронных сетей, с API приближенным к PyTorch.
Сейчас реализована базовая архитектура и минимальный набор модулей для обучения многослойных свёрточных нейронных сетей типа ResNet.
Поддерживаемые платформы:
- Linux x86_64
- Android aarch64
CPU:
-
Armv7+: NEON_WITHOUT_AES, NEON, NEON_BF16, SVE, SVE2, SVE_256, SVE2_128;
Тестировалось на: Qualcomm Snapdragon 870
-
x86: SSE2, SSSE3, SSE4, AVX2, AVX3, AVX3_DL, AVX3_ZEN4, AVX3_SPR;
Тестировалось на: 13th Gen Intel(R) Core(TM) i9-13900HX, AMD Ryzen™ AI 9 HX 370w
GPU:
-
Vulkan (NVIDIA, AMD, Intel, Qualcomm, и др.)
Тестировалось на: NVIDIA RTX 4070 8Gb, Radeon™ 890M × 24, Adreno (TM) 650, Intel(R) Graphics (RPL-S)
Зависимости
- OpenBLAS - операции с 2D матрицами
- Highway - короссплатформенные SIMD интринсики
- hash_flat_map - быстрый контейнер flat_map
- oneTBB - параллельные алгоритмы
- Vulkan SDK - Низкоуровневый API и средства разработки для GPU
- Python 3.11 - язык Python, для скриптов сборки
Опциональные зависимости
Окружение для разработки
Проект разрабатывается с использованием С++20(gcc-12.3) и системой сборки CMake.
Инструкцию по настройке окружения для разработки можно посмотреть в Wiki.
Установка
Как получить исходные коды:
Сборка:
Для сборки с поддержкой Vulkan необходимо использовать флаг для конфигурирования CMake:
Для сборки для платформы Android необходимо использовать следующие флаги:
Пример использования Python интерфейса:
Ноутбук реализующий классификацию MNIST с использованием LeNet.
Пример простого перцептрона:
Более детальные примеры можно найти в директории .