Может я чего-то не понимаю, но разве Байкал не под санкциями?
конечно же под сакнциями. Причём не только как компания, но и как отрасль, и как представитель России. Так сказать, полный букет)
Где-то мелькала информация, что полностью отечественный литограф для какого-то большого техпроцесса у нас освоили, мол собираются освоить следующий большой рубеж.
Открою вам небольшой, но неприятный секрет - это всё не имеет никакого отношения к реальному производству чипов.
Так тензоры давно в графике используются. Просто там много всякой нагрузки, где тензоры не подходят. В этом и есть огромное достоинство GPGPU - в гибкости, и при этом ещё и без ущерба производительности.
И про 255 регистров вопрос, это из за многотредности?
Многомерный вопрос. Базовый ответ звучит примерно так - из-за большой дороговизны spill/fill'ов и необходимости максимально переложить все данные на регистры при исполнении кернела.
Как говорится, спасибо, кэп. Правда из ваших рассуждений, например, не совсем понятно, как Nvidia, имевшая до недавнего времени куда меньшие возможности и ресурсы, чем Intel или AMD, не говоря уж про кучу других компаний из полупроводниковой индустрии, вдруг взяла и всех нагнула на рынке AI железа. "Возможности" - это не цифра, это достаточно сложная и объёмная материя.
Если вкратце - RISC-подход, но много операций имеют возможность 3-х операндного исполнения. Адресация в 255 регистров. Устройство самого регистрового файла требует отдельной статьи, ну и в каком-то смысле, это уже ноу-хау.
В итоге, по моему опыту, трансляция может дать результат в духе "чтобы работало", но производительный код всегда будет адаптирован под конкретное железо.
Это во многом так. Но этап "чтобы работало" - тоже крайне важный для разработчика железа, потому без него просто на рынок не выйдешь. И опять-таки, есть возможность выбрать из различных вариантов уже существующих кернелов наиболее перформансный для своей архитектуры, плюс затраты на тюнинг куда меньше. Сравните с ситуацией, когда вам надо такой же стек софта для Data Flow или TPU разрабатвать, где в принципе вообще всё другое. Я там выше в комментариях где-то уже писал, что следование концепции GPGPU не лишает всех проблем с софтом, конечно же. Но это наименее затратный пункт из всех альтернатив.
Позвольте с этим не согласиться. Тензорные ядра вполне можно интерпретировать как систолический массив
Нет, тензорные ядра в Nvidia не являются систоликом ни в каком виде. Это совершенно другой способ организации вычислений.
К тому же, систолический массив это концепция, а SIMD — детали реализации
Я бы сказал ровно наоборот. Систолический массив очень тесно связан с деталями реализации. Его достаточно сложно сделать как-то иначе. А вот как раз SIMD - это очень абстрактная концепция из таксономии Флинна, которая может быть имплементирована уймой разных вариантов.
Попытки переложить CUDA-кернеля на другие аппаратные платформы идут, но пока далеки от завершения (см. ZLUDA), да и с легальной точки зрения автоматическая трансляция находится в серой зоне
При условии, что GPGPU придерживается определённых параметров, с технической точки зрения нет никакой проблемы запустить там Cuda-кернела
Вполне себе GPGPU, на них можно запускать вычисления через OpenCL или Metal/CoreML. И оно работает хорошо, просто на AI-задачах не так производительно, как могло бы с дополнительными матричными ядрами
Я про то, что их целевой предназначение - именно графика. И туда нет смысла пихать AI-шные блоки.
Этот великий "специалист" - маркетолог МЦСТ господин Трушкин.
Что касается его экспертного мнения, то, в принципе, я ему давно предлагаю просто сесть и публично обсудить все его "аргументы". Но Косте ума хватает с этой темы съезжать, потому что он прекрасно понимает, чем всё кончится
все современные GPGPU с AI-возможностями это сочетание традиционных GPGPU с TPU
тут необходимо сделать 2 комментария
Как я упомянул в статье,TPU - это подход, который как правило подразумевает использование систолических массивов. В таком контексте ваше утверждение неверное, т.к. те же тензорные ядра, которые используются, например, у Nvidia, это не систолические массивы, а что-то ближе к массивному SIMD. Корректнее их называть матричными блоками.
Сам по себе подход GPGPU никуда не девается, просто к нему добавляется специализированный матричный блок. В каком-то смысле это идентично тому, как в классический x86 (CISC архитектура) добавили векторные блоки (SIMD блоки).
В связи с чем в большинстве случаев разумным решением будет использование уже готовых библиотек вроде cuDNN или oneDNN, а для конечного пользователя лучше вообще остановиться на использовании готовых фреймворков, где они уже интегрированы. Количество людей, которые реализуют свои кастомные операции самостоятельно с высокой эффективностью, чрезвычайно мало.
Конечно, огромное количество ML-инженеров работает на куда более высоком уровне фрейворков и не опускается до уровня программирования на Cuda, например. Но если стать на позицию разработчиков железа, то в случае с GPGPU - у вас уже есть куча более-менее готового кода, который где-то надо адаптировать, где-то перформанс потюнить, но он уже во многом есть. Если вы делаете свою железку (не GPGPU), то просто всё надо писать с нуля.
Если же реализовать GPGPU без матричных блоков, то производительность будет так себе, в этом можно убедиться на примере двух достаточно свежих чипов: Qualcomm Snapdragon Elite X и Apple M4 (и раннее)
Всё же указанные модели - это классические GPU. Какая там микроархитектура внутри сходу не скажу (не уверен, что про это вообще разработчики публикуют информацию), вполне может быть и GPGPU. Запускать на них что-то AI-шное можно, но всё же это не AI-вычислители, а именно графические процессоры.
Не могу говорить за все имплементации, но из того, что я видел, там скорее что-то похожее на массивный SIMD как в CPU или тензорные блоки как в GPGPU. К сожалению, разработчики железа редко балуют нас подробностями реализаций.
Всё несколько сложнее. Но если очень грубо, то цена 300 мм пластины на 7 нм порядка $10 000. На пластину влезет примерно 100 чипов TPUv4 и 80 Nvidia A100. Т.е. даже если вы получите 100% выход годных, то себестоимость чипа TPUv4 будет ~$100, A100 ~125$. В реальности, у TPUv4 скорее всего выход годных будет на уровне 50%, а у Nvidia останутся те же 100% (за счёт механизма отключения неработающих SM), т.е. это будет $200 и $125 соответственно. Но по размерам сумм видно, что при цене решений в десятки тысяч долларов, сто баксов себестоимости в любую сторону не играют здесь решающей роли.
конечно же под сакнциями. Причём не только как компания, но и как отрасль, и как представитель России. Так сказать, полный букет)
Открою вам небольшой, но неприятный секрет - это всё не имеет никакого отношения к реальному производству чипов.
Intel Foundry !)
Пока рановато делиться этими данными публично. Но как только, так сразу)
Да, но от необходимости запускать кастомные шейдеры это всё равно не избавит
Так тензоры давно в графике используются. Просто там много всякой нагрузки, где тензоры не подходят. В этом и есть огромное достоинство GPGPU - в гибкости, и при этом ещё и без ущерба производительности.
Да, на ПЛИС
Секрет )
Многомерный вопрос. Базовый ответ звучит примерно так - из-за большой дороговизны spill/fill'ов и необходимости максимально переложить все данные на регистры при исполнении кернела.
Спасибо, будем стараться развеять ваш (вполне обоснованный) скепсис )
Как говорится, спасибо, кэп. Правда из ваших рассуждений, например, не совсем понятно, как Nvidia, имевшая до недавнего времени куда меньшие возможности и ресурсы, чем Intel или AMD, не говоря уж про кучу других компаний из полупроводниковой индустрии, вдруг взяла и всех нагнула на рынке AI железа. "Возможности" - это не цифра, это достаточно сложная и объёмная материя.
Во-первых, возможности AMD сильно преувеличены. Во-вторых, всё же у нас задача несколько проще, чем "не уступать" Nvidia
Так вроде нигде нет утверждения, что это должно быть последовательностью. По факту все пункты так или иначе идут в параллель
Если вкратце - RISC-подход, но много операций имеют возможность 3-х операндного исполнения. Адресация в 255 регистров. Устройство самого регистрового файла требует отдельной статьи, ну и в каком-то смысле, это уже ноу-хау.
Я бы сказал, что в части создания первого кремния, экватор пройдён.
Это несколько разные вещи. По сути, поддержка Cuda даёт автоматически поддержку PyTorch, т.к. там есть cuda-backend.
Это вопрос для следующих проектов. В моей голове для "взрослого" конкурентного продукта с точки зрения HW необходимо решить 3 ключевых задачи:
Разработать хорошее вычислительное ядро GPGPU (то, что у Nvidia называется SM)
Разработать качественную подсистему памяти (L2-кэш, интерконнект, GPDDR/HBM и т.д.)
Разработать сетевой интерконнект, позволяющий объединять вычислители в кластер.
На самом деле каждая из этих задач - очень сложная, и решить их все вместе сразу невозможно. Поэтому надо двигаться последовательно, от п.1 к п.3
Это во многом так. Но этап "чтобы работало" - тоже крайне важный для разработчика железа, потому без него просто на рынок не выйдешь. И опять-таки, есть возможность выбрать из различных вариантов уже существующих кернелов наиболее перформансный для своей архитектуры, плюс затраты на тюнинг куда меньше. Сравните с ситуацией, когда вам надо такой же стек софта для Data Flow или TPU разрабатвать, где в принципе вообще всё другое. Я там выше в комментариях где-то уже писал, что следование концепции GPGPU не лишает всех проблем с софтом, конечно же. Но это наименее затратный пункт из всех альтернатив.
Нет, тензорные ядра в Nvidia не являются систоликом ни в каком виде. Это совершенно другой способ организации вычислений.
Я бы сказал ровно наоборот. Систолический массив очень тесно связан с деталями реализации. Его достаточно сложно сделать как-то иначе. А вот как раз SIMD - это очень абстрактная концепция из таксономии Флинна, которая может быть имплементирована уймой разных вариантов.
При условии, что GPGPU придерживается определённых параметров, с технической точки зрения нет никакой проблемы запустить там Cuda-кернела
Я про то, что их целевой предназначение - именно графика. И туда нет смысла пихать AI-шные блоки.
Этот великий "специалист" - маркетолог МЦСТ господин Трушкин.
Что касается его экспертного мнения, то, в принципе, я ему давно предлагаю просто сесть и публично обсудить все его "аргументы". Но Косте ума хватает с этой темы съезжать, потому что он прекрасно понимает, чем всё кончится
тут необходимо сделать 2 комментария
Как я упомянул в статье,TPU - это подход, который как правило подразумевает использование систолических массивов. В таком контексте ваше утверждение неверное, т.к. те же тензорные ядра, которые используются, например, у Nvidia, это не систолические массивы, а что-то ближе к массивному SIMD. Корректнее их называть матричными блоками.
Сам по себе подход GPGPU никуда не девается, просто к нему добавляется специализированный матричный блок. В каком-то смысле это идентично тому, как в классический x86 (CISC архитектура) добавили векторные блоки (SIMD блоки).
Конечно, огромное количество ML-инженеров работает на куда более высоком уровне фрейворков и не опускается до уровня программирования на Cuda, например. Но если стать на позицию разработчиков железа, то в случае с GPGPU - у вас уже есть куча более-менее готового кода, который где-то надо адаптировать, где-то перформанс потюнить, но он уже во многом есть. Если вы делаете свою железку (не GPGPU), то просто всё надо писать с нуля.
Всё же указанные модели - это классические GPU. Какая там микроархитектура внутри сходу не скажу (не уверен, что про это вообще разработчики публикуют информацию), вполне может быть и GPGPU. Запускать на них что-то AI-шное можно, но всё же это не AI-вычислители, а именно графические процессоры.
На месте главного 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 соответственно. Но по размерам сумм видно, что при цене решений в десятки тысяч долларов, сто баксов себестоимости в любую сторону не играют здесь решающей роли.