DeepSeek выложила в открытый доступ шесть инструментов для программирования ускорителей Huawei Ascend: язык TileLangвысокоуровневый язык для ядер ИИ-ускорителей, позиционируемый как более простая альтернатива CUDA и библиотеки DeepGEMMбиблиотека матричных операций, DeepEPбиблиотека межчипового обмена данными в MoE-моделях, TileKernelsбиблиотека стандартных векторных вычислений, FlashMLAбиблиотека внимания на длинном контексте и DeepSelectбиблиотека фильтрации данных. Анонс вышел сразу после Huawei Connect 2026, где Huawei показала новое поколение Ascend и суперноды. Параллельно Huawei рассказала о совместно спроектированной с DeepSeek суперноде на 128 чипах Ascend 950.
Ниже — что входит в набор, как устроена программная архитектура CANNгетерогенная вычислительная архитектура Huawei с многоуровневыми программными интерфейсами для ИИ-приложений под ускорители Ascend, аналог CUDA в экосистеме Huawei, которую этот набор дополняет, и что всё это меняет для разработчиков.
Что именно открыли
В наборе шесть проектов с разным назначением:
- TileLang — высокоуровневый язык для ядерпрограмм, которые выполняются на ускорителе и описывают вычисление целиком, а не отдельные операции ИИ-ускорителей, который DeepSeek позиционирует как более простую альтернативу CUDA;
- DeepGEMM — матричные операции;
- DeepEP — межчиповый обмен данными в MoE-моделях;
- FlashMLA — внимание на длинном контексте;
- TileKernels — стандартные векторные вычисления;
- DeepSelect — фильтрация данных.
Вторая половина анонса касается железа: суперноду на 128 чипах Ascend 950 Huawei проектирует вместе с DeepSeek. Для MoE-моделей узким местом становится обмен данными между чипами, поэтому DeepEP и топология суперноды оптимизируются под одну и ту же нагрузку.
Как устроен CANN
CANN — гетерогенная вычислительная архитектура Huawei, предоставляющая многоуровневые программные интерфейсы для разработки ИИ-приложений под ускорители Ascend, и аналог CUDA в экосистеме Huawei. Впервые она была представлена в 2018 году.
В проекте cann-on-gpuнабор инструментов, позволяющий запускать код под Ascend API на обычных GPU контракт API разделён на backend-agnosticне зависящие от конкретного чипа заголовки include/ с подкаталогами aclnnop/ и hccl/, которые реализует каждый GPU-бэкенд, а клиенты зависят только от них. aclnnнабор операторных API CANN, то есть готовых функций для отдельных операций над тензорами — это операторные API: авторитетный список содержит 1036 aclnn*-API, а покрытие CUDA составляет 1014/1036 ≈ 98%. hcclколлективная библиотека связи CANN, отвечающая за обмен данными между ускорителями входит в тот же контракт include/hccl/ и отвечает за обмен данными между чипами, когда вычисления идут сразу на нескольких узлах.
Соотношение с CUDA-стеком видно из структуры: cuda/ — бэкенд NVIDIA CUDA, реализующий контракт include/, а rocm/ реализует тот же контракт на AMD через hipBLASLt/MIOpen/rocSOLVER/hipFFT/RCCL.
Как запускать код под Ascend API на обычном GPU
Проект разделяет «контракт API операторов/коллективов» (include/) и «конкретный чип» (cuda/, metal/, rocm/), поэтому один и тот же контракт реализуется на трёх бэкендах: CUDA для NVIDIA, Metal для Apple и ROCm для AMD. Код, написанный под Ascend API, линкуется напрямую с библиотекой libascendcl этого проекта — это библиотека, которая подменяет собой штатную Ascend-реализацию тех же вызовов и перенаправляет их на выбранный GPU-бэкенд, поэтому такой код исполняется на обычном GPU.
Все три бэкенда используют один и тот же контракт, одни и те же бэкенд-агностичные тесты в tests/ и одни и те же клиентские инструменты в tools/. Клиентские инструменты бэкенд-агностичны, что подтверждается запуском Qwen3-0.6B end-to-end на всех трёх бэкендах.
Охват операторов задаётся авторитетным набором из открытых библиотек CANN, привязанных к ветке 9.1.0-beta.1. Для CUDA реализовано и проверено на допуск 1014 из 1036. Оставшиеся 22 — инфраструктурные операции устройства, кодека и отладки Ascend без смысла GPU-вычислений, они помечены как постоянно вне области. Metal обеспечивает полный паритет с экспортируемым набором CUDA, а ROCm использует тот же набор, поскольку порождён из cuda/src через hipify-perl.
Совместимость проверяется tolerance-тестами: для CUDA однопроцессные тесты полностью зелёные — 742 проверки в 31 тестовом бинарнике, плюс 74 оператора сверены с реальными эталонными выходами Ascend; для Metal проходят все бэкенд-агностичные бинарники плюс дифференциальное тестирование против CUDA и PyTorch; для ROCm проходят все 42 бэкенд-агностичных бинарника.
Выбор бэкенда и требования к окружению
Бэкенд выбирается автоматически по операционной системе хоста, а переопределить его можно переменной окружения BACKEND со значениями cuda, metal или rocm. Скрипт deploy.sh идемпотентен, ставит всё в отдельное окружение conda/miniforge и не изменяет глобальный PATH.
Требования по платформам:
- CUDA: одна NVIDIA GPU (Ampere/Ada/Hopper/Blackwell; цель сборки по умолчанию — sm_121идентификатор архитектуры GPU, под которую компилируется код; sm_121 соответствует GB10, для другой карты меняют
GPU_ARCHи перекомпилируют), драйвер NVIDIA и CUDA Toolkit 13; бэкенд зависит от cuDNN / NCCL / CUTLASS. - Metal: Apple-silicon Mac с полным Xcode и загружаемым Metal Toolchain;
deploy.shнастраивает Metal-путь, ограничивая Xcode проектом черезDEVELOPER_DIRбез изменения глобальногоxcode-select. - ROCm: AMD GPU с установленным ROCm 7.x (hipBLASLt / hipBLAS / rocBLAS / MIOpen / hipSOLVER / rocSOLVER / hipFFT / RCCL), цель сборки по умолчанию
gfx1151(Strix Halo APU, переопределяетсяGPU_ARCH, напримерgfx90a/gfx942CDNA). ROCm включается явно, потому что на одной Linux-машине могут быть и NVIDIA, и AMD GPU.
Все пути используют только заголовки ACL/aclnn/HCCL как контракт времени компиляции, без линковки библиотек Ascend во время выполнения.
Что было раньше
До появления cann-on-gpu для разработки и валидации операторов CANN без карты Ascend использовалась официальная бескарточная CPU-симуляцияпрогон операторов CANN на центральном процессоре без ускорителя Ascend. Она работает на уровне инструкций, поэтому один оператор занимает минуты, а время растёт как O(work) с размером тензора, что делает её непригодной для больших тензоров. GPU-путь даёт сопоставимые результаты на порядки быстрее и масштабируется с пропускной способностью железа, сокращая цикл проверки с минут до миллисекунд. Реальные эталонные выходы Ascend (golden) получались именно через бескарточную симуляцию, и с ними затем делалось допусковое сравнение.
До этого в Китае уже предпринимались попытки создать альтернативы CUDA. Alibaba представила открытый программный стек SAIL (Snow AI Infrastructure Layer) для собственных AI-ускорителей Zhenwu, включающий компилятор, драйверный слой, API для вычислений и инструменты интеграции с AI-фреймворками; Alibaba заявляет, что существующие ИИ-проекты можно адаптировать под SAIL менее чем за неделю, но это заявление пока не получило независимого подтверждения. CANN, представленный в 2018 году, стал аналогом CUDA в экосистеме Huawei. По оценкам аналитиков, чтобы догнать CUDA по масштабам и качеству экосистемы, Huawei потребуется не один год, поскольку платформа Nvidia совершенствовалась почти два десятилетия.
Почему это сделали
Привязка CUDA к оборудованию Nvidia считается ограничением, потому что она фактически запирает разработчиков в экосистеме одного производителя. Любые попытки запустить CUDA на других графических архитектурах через промежуточные слои компания блокировала, закрепив это прямым запретом в лицензионном соглашении. Миграция с CUDA означает месяцы переписывания кода, что удерживает клиентов на Nvidia.
DeepSeek активнее переходит на ускорители Huawei: основатель компании Лян Вэньфэн заявил о более активном использовании ускорителей Huawei и других местных поставщиков, а к четвёртому кварталу DeepSeek получит от Huawei новую партию фирменных ускорителей для обучения ИИ-моделей. Huawei испытывает проблемы с поставками чипов из-за западных санкций, но основатель DeepSeek видит в этих ускорителях большой потенциал роста и ожидает, что через несколько лет ИИ-чипы Huawei догонят по быстродействию предложения Nvidia.
При этом быстро отказаться от импортных ускорителей не получится: для обучения модели уровня OpenAI может потребоваться до 50 000 ускорителей Nvidia GB300, а при замене на Huawei Ascend 950 — до 200 000 штук. Отставание Ascend по отдельному чипу Huawei собирается компенсировать масштабом и связностью — отсюда супернода на 128 чипах.
Что это меняет на практике
Разрабатывать и проверять операторы CANN теперь можно без Ascend-карты: код, написанный против Ascend API, линкуется с libascendcl проекта и исполняется на обычном GPU NVIDIA, Apple или AMD. Цикл проверки сокращается с минут до миллисекунд по сравнению с бескарточной CPU-симуляцией.
Для портирования между CUDA, ROCm и Metal проект демонстрирует вендорную переносимость: один и тот же контракт удовлетворяется на NVIDIA, Apple-silicon и AMD RDNA. ROCm-бэкенд был засеян из cuda/src через hipify-perl и затем доработан вручную, разделяя include/-контракт и набор tests/ дословно. Часть вендорских библиотек отображается иначе: cuBLASLt заменяется на hipBLASLt, cuDNN — на MIOpen, cuSOLVER — на hipSOLVER/rocSOLVER, cuFFT — на hipFFT, NCCL — на RCCL.
Написанные вручную HIP-ядра переносятся почти дословно, поскольку gfx1151цель сборки ROCm по умолчанию, APU Strix Halo имеет wave32размер волны в 32 потока — как варп в CUDA, поэтому ядра переносятся без переработки. В Metal Hccl* — заглушка на один ранг (один Mac = одно устройство).
На уровне рынка открытый стек снижает цену вынужденности использования Ascend и может ускорить переход с NVIDIA даже там, где серые поставки ещё возможны. Для NVIDIA это медленная, но структурная угроза на китайском рынке, который и так закрыт для её топовых чипов экспортными ограничениями. Появление TileLang может создать второй центр притяжения для кода ядер помимо CUDA, и вырастет он в Китае.
Ограничения и открытые вопросы
Huawei страдает от проблем с поставками своих чипов: выпускать их в нужных количествах в условиях западных санкций не так просто. Реализация планов по созданию всё более крупных ИИ-моделей будет во многом зависеть от наличия не только самих ИИ-чипов, но и микросхем памяти и источников электроэнергии.
По производительности: по оценке, которую приводит Startup Fortune, Ascend 910C даёт около 60% инференс-производительности NVIDIA H100. Для замены 50 000 ускорителей Nvidia GB300 может потребоваться до 200 000 чипов Huawei Ascend 950.
Без стабильности и зрелости софтверной среды, полноценной документации, активного сообщества и безболезненной интеграции в существующие рабочие процессы разработчиков массового перехода не произойдёт. Экосистема CUDA сегодня — это тысячи оптимизированных библиотек и огромный массив документации, создававшейся годами. Huawei ведёт переговоры с крупными китайскими разработчиками ИИ, университетами, исследовательскими центрами и бизнес-партнёрами о создании сообщества по разработке Ascend с открытым кодом. Набор инструментов DeepSeek даёт проверенные на продакшен-нагрузке ядра и готовый путь миграции — и если альтернативным программным стекам удастся сделать миграцию действительно простой и дешёвой, именно это может стать главным фактором перераспределения сил на рынке AI-инфраструктуры в ближайшие годы.