Обновить
184
Максим Маслов@Armmaster

GPGPU AI Architect

208
Подписчики
Отправить сообщение

Может я чего-то не понимаю, но разве Байкал не под санкциями?

конечно же под сакнциями. Причём не только как компания, но и как отрасль, и как представитель России. Так сказать, полный букет)

Где-то мелькала информация, что полностью отечественный литограф для какого-то большого техпроцесса у нас освоили, мол собираются освоить следующий большой рубеж.

Открою вам небольшой, но неприятный секрет - это всё не имеет никакого отношения к реальному производству чипов.

Пока рановато делиться этими данными публично. Но как только, так сразу)

Да, но от необходимости запускать кастомные шейдеры это всё равно не избавит

Так тензоры давно в графике используются. Просто там много всякой нагрузки, где тензоры не подходят. В этом и есть огромное достоинство GPGPU - в гибкости, и при этом ещё и без ущерба производительности.

На картинке лейаут одного ядра?

Да, на ПЛИС

Если не секрет, какой ПЛИС? 

Секрет )

И про 255 регистров вопрос, это из за многотредности?

Многомерный вопрос. Базовый ответ звучит примерно так - из-за большой дороговизны spill/fill'ов и необходимости максимально переложить все данные на регистры при исполнении кернела.

В любом случае желаю удачи с проектом. Всего вам хорошего

Спасибо, будем стараться развеять ваш (вполне обоснованный) скепсис )

Как говорится, спасибо, кэп. Правда из ваших рассуждений, например, не совсем понятно, как Nvidia, имевшая до недавнего времени куда меньшие возможности и ресурсы, чем Intel или AMD, не говоря уж про кучу других компаний из полупроводниковой индустрии, вдруг взяла и всех нагнула на рынке AI железа. "Возможности" - это не цифра, это достаточно сложная и объёмная материя.

Даже amd с её возможностями не смогла сделать продукт не уступающий nvidia

Во-первых, возможности AMD сильно преувеличены. Во-вторых, всё же у нас задача несколько проще, чем "не уступать" Nvidia

Так вроде нигде нет утверждения, что это должно быть последовательностью. По факту все пункты так или иначе идут в параллель

Если вкратце - RISC-подход, но много операций имеют возможность 3-х операндного исполнения. Адресация в 255 регистров. Устройство самого регистрового файла требует отдельной статьи, ну и в каком-то смысле, это уже ноу-хау.

Я бы сказал, что в части создания первого кремния, экватор пройдён.

В плане поддержки кажется лучше ориентироваться на PyTorch, а не на CUDA, но это уже холиварный вопрос

Это несколько разные вещи. По сути, поддержка Cuda даёт автоматически поддержку PyTorch, т.к. там есть cuda-backend.

Из описанного не увидел что у вас с сетью?

Это вопрос для следующих проектов. В моей голове для "взрослого" конкурентного продукта с точки зрения HW необходимо решить 3 ключевых задачи:

  1. Разработать хорошее вычислительное ядро GPGPU (то, что у Nvidia называется SM)

  2. Разработать качественную подсистему памяти (L2-кэш, интерконнект, GPDDR/HBM и т.д.)

  3. Разработать сетевой интерконнект, позволяющий объединять вычислители в кластер.

На самом деле каждая из этих задач - очень сложная, и решить их все вместе сразу невозможно. Поэтому надо двигаться последовательно, от п.1 к п.3

В итоге, по моему опыту, трансляция может дать результат в духе "чтобы работало", но производительный код всегда будет адаптирован под конкретное железо.

Это во многом так. Но этап "чтобы работало" - тоже крайне важный для разработчика железа, потому без него просто на рынок не выйдешь. И опять-таки, есть возможность выбрать из различных вариантов уже существующих кернелов наиболее перформансный для своей архитектуры, плюс затраты на тюнинг куда меньше. Сравните с ситуацией, когда вам надо такой же стек софта для Data Flow или TPU разрабатвать, где в принципе вообще всё другое. Я там выше в комментариях где-то уже писал, что следование концепции GPGPU не лишает всех проблем с софтом, конечно же. Но это наименее затратный пункт из всех альтернатив.

Позвольте с этим не согласиться. Тензорные ядра вполне можно интерпретировать как систолический массив

Нет, тензорные ядра в Nvidia не являются систоликом ни в каком виде. Это совершенно другой способ организации вычислений.

К тому же, систолический массив это концепция, а SIMD — детали реализации

Я бы сказал ровно наоборот. Систолический массив очень тесно связан с деталями реализации. Его достаточно сложно сделать как-то иначе. А вот как раз SIMD - это очень абстрактная концепция из таксономии Флинна, которая может быть имплементирована уймой разных вариантов.

Попытки переложить CUDA-кернеля на другие аппаратные платформы идут, но пока далеки от завершения (см. ZLUDA), да и с легальной точки зрения автоматическая трансляция находится в серой зоне

При условии, что GPGPU придерживается определённых параметров, с технической точки зрения нет никакой проблемы запустить там Cuda-кернела

Вполне себе GPGPU, на них можно запускать вычисления через OpenCL или Metal/CoreML. И оно работает хорошо, просто на AI-задачах не так производительно, как могло бы с дополнительными матричными ядрами

Я про то, что их целевой предназначение - именно графика. И туда нет смысла пихать AI-шные блоки.

Этот великий "специалист" - маркетолог МЦСТ господин Трушкин.

Что касается его экспертного мнения, то, в принципе, я ему давно предлагаю просто сесть и публично обсудить все его "аргументы". Но Косте ума хватает с этой темы съезжать, потому что он прекрасно понимает, чем всё кончится

все современные GPGPU с AI-возможностями это сочетание традиционных GPGPU с TPU

тут необходимо сделать 2 комментария

  1. Как я упомянул в статье,TPU - это подход, который как правило подразумевает использование систолических массивов. В таком контексте ваше утверждение неверное, т.к. те же тензорные ядра, которые используются, например, у Nvidia, это не систолические массивы, а что-то ближе к массивному SIMD. Корректнее их называть матричными блоками.

  2. Сам по себе подход GPGPU никуда не девается, просто к нему добавляется специализированный матричный блок. В каком-то смысле это идентично тому, как в классический x86 (CISC архитектура) добавили векторные блоки (SIMD блоки).

В связи с чем в большинстве случаев разумным решением будет использование уже готовых библиотек вроде cuDNN или oneDNN, а для конечного пользователя лучше вообще остановиться на использовании готовых фреймворков, где они уже интегрированы. Количество людей, которые реализуют свои кастомные операции самостоятельно с высокой эффективностью, чрезвычайно мало.

Конечно, огромное количество ML-инженеров работает на куда более высоком уровне фрейворков и не опускается до уровня программирования на Cuda, например. Но если стать на позицию разработчиков железа, то в случае с GPGPU - у вас уже есть куча более-менее готового кода, который где-то надо адаптировать, где-то перформанс потюнить, но он уже во многом есть. Если вы делаете свою железку (не GPGPU), то просто всё надо писать с нуля.

Если же реализовать GPGPU без матричных блоков, то производительность будет так себе, в этом можно убедиться на примере двух достаточно свежих чипов: Qualcomm Snapdragon Elite X и Apple M4 (и раннее)

Всё же указанные модели - это классические GPU. Какая там микроархитектура внутри сходу не скажу (не уверен, что про это вообще разработчики публикуют информацию), вполне может быть и GPGPU. Запускать на них что-то AI-шное можно, но всё же это не AI-вычислители, а именно графические процессоры.

  • CloudBEAR — специалисты по облачным вычислениям

На месте главного design house России в части разработки IP RISC-V ядер, я бы немного расстроился.

Не могу говорить за все имплементации, но из того, что я видел, там скорее что-то похожее на массивный SIMD как в CPU или тензорные блоки как в GPGPU. К сожалению, разработчики железа редко балуют нас подробностями реализаций.

Всё несколько сложнее. Но если очень грубо, то цена 300 мм пластины на 7 нм порядка $10 000. На пластину влезет примерно 100 чипов TPUv4 и 80 Nvidia A100. Т.е. даже если вы получите 100% выход годных, то себестоимость чипа TPUv4 будет ~$100, A100 ~125$. В реальности, у TPUv4 скорее всего выход годных будет на уровне 50%, а у Nvidia останутся те же 100% (за счёт механизма отключения неработающих SM), т.е. это будет $200 и $125 соответственно. Но по размерам сумм видно, что при цене решений в десятки тысяч долларов, сто баксов себестоимости в любую сторону не играют здесь решающей роли.

Информация

В рейтинге
Не участвует
Откуда
Долгопрудный, Москва и Московская обл., Россия
Зарегистрирован
Активность