Обновить
3

Пользователь

0,8
Рейтинг
1
Подписчики
Отправить сообщение

Я когда учил английский разновидностью того же способа (comprehensible input) - просто нагуглил метрику lexile measure - которая примерно отражает лексическую сложность произведения (она обычно указывается на амазоне) и читал книги, подходящие мне по +/- 150 lexile measure.

В принципе ощущения те же.

Цифры по размерам кластеров - классическое сравнение ужа с ежом.

В частности у nVidia есть 3 уровня группирования:

  1. Стандартный NVLinkDomain (стойка) - 72 платы - с полной поддержкой memory ordering гарантий (включая барьеры и атомарные операции).

  2. Максимальный NVLinkDomain - 756, нативные барьеры не поддерживаются, но Release-Acquire семантика работает (если указать scope)

  3. Соединение по Ethernet - до 128_000 - не работают ни барьеры, ни Release-Acquire семантика, но Sequential Consistency по одному ардесу работает благодаря RoCEv2 (RDMA over Converged Ethernet).

Какому уровню соответствуют группы этих китайских карточек?

причём тут "глубокое рассмотрение" - сами атомики работают по-разному на CAS / LL-CS архитектурах.
При этом это "по-разному" влияет на наблюдаемое поведение.
Это не просто "одни операции быстрее \ другие медленнее" - это одни алгоритмы показываются себя хорошо на одной архитектуре \ другие на другой.

Поэтому кода вы пишите: вот это хороший алгоритм (ну ок, с переключаемым списком в принципе норм) - было бы желательно указать на какой модели атомарных операций он хороший.

  1. "ограниченная машина Тьюринга" - это такой эвфемизм для конечного автомата. Только реальыне программы мы рассматриваем как машины Тьюринга, а не как конечные автоматы с 2^2^xx состояний.

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

Если не умеем - то зачем тогда писать, что "в основании текущего подхода лежит математика"? Какой в этом смысл? Примерно такой же, как "в оснвоании сегодняшних программ лежит река Волга, вы же ели рыбу из Волги, ну хоть когда-нибудь".

В основании текущего подхода лежит инженерия - это наука о том, как сделать, достаточно хорошо, пусть даже "абсолютно хорошо" недостижимо.

Спасибо, а Волга впадает в Каспийское море.
Столь же актуально в контексте разговора.

Ваше утверждение по смыслу примерно: "когда я делал пирожок, отмерял 50+50=100 грамм муки - значит под пирожком лежит математика"

Если какая-то часть системы доказуема (не доказана корректность, а всего лишь может быть доказана при наличии лишнего времени), а какая-то часть нет https://ru.wikipedia.org/wiki/Теорема_Райса - то финальные свойства системы недоказуемы.

Подождите, а где САМОЕ ГЛАВНОЕ при использовании lock-free структур:
у вас в процессоре CAS или LL-SC (в первом случае у вас атомарные операции с гарантированным, пусть и медленным продвижением с вычислениями прямо в кэше, во втором - исполнение атомарной секциии может, и будет прерываться и уходить на переисполнение при завершением конкурирующей секции).

По моему опыту это ситуация либо надуманная пугалка (критические секции маленькие => вероятность ухода из критической секции низка) или корне-кейс (свойство алгоритма таково, что критические секции большие).

Вы когда-нибудь прыгали, с разбега?

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

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

Вы не понимаете чем отличается RISC-V управляющее ядро от GPU?

Понял.
Спасибо, удачи вам, хорошего настроения.

Пожалуйста не перебарщивайте с канцеляритом (особенно плохо, когда концелярит - единственный способ докопаться до столба). Нормальные люди разговаривают русским языком - из которого прекрасно понятно с учётом контекста, а употреблять его проще и удобнее.

Вы так и не ответили на поставленный вопрос - "Какие есть новые процессоры (*), выпущенные альянсом?

*) Напоминаю в первой части статьи рассуждают - как сильно нужны мелкие управляющие RISC-V ядра чтобы поставть в ИИ-чипы. Во второй части статьи обсуждают что ИИ-чипы общего назначения (которые как раз и делает BaikalElectronics) не нужны.

Давайте проверим как тезисы статьи совпадают с решением от Baikal Electronics? Что пишут в статье и "следует ли тем же путём" BaikalElectronics.

Почему создать "аналог GPU" недостаточно

Нет, достаточно - BaikalElectronics берёт и делает.

Какой проект имеет практический смысл?

Нет. Если следовать рассуждениям в статье - то ничего не будет сделано. Ибо в статье занимаются поиском удивительной ниши, которая одновременно: "выпускается малыми объёмами", почему-то не покрывается существующими решениями и денежная.

  • требуется интеграция с отечественным оборудованием;

Нет. E1000 универсальный.

  • универсальные зарубежные решения избыточны или неудобны;

Нет.

  • программный стек можно ограничить определенным набором моделей;

Нет.

И заметьте самое главное - люди, которые делают и которые предлагаю "очень долго думать прежде чем начать делать" - это совершенно разные люди представляющие совершенно разные конторы.

но ведь апаендицит справа...

Но ведь и разрез на картинке справа.

Для того, чтобы выпустить GPU-чип "завтра" (условно в 2027) - готовый и отлаженый IP-блок c RISC-V вычислительным ядром должен быть разработан, оттестирован и продаваться вчера-позавчера (самое позднее 2024-2025 годы). Какие есть новые процессоры, выпущенные альянсом?

Очень хотелось бы, чтобы это "давайте ещё пообсуждаем что нам нужно" из статьи не было прикрытием для "мы пока ничего не сделали, потому, что ОБСУЖДАЕМ".

Если же говорить, что делается, то вот какие есть новости:

  1. Для больших GPU - проблема скорее не в холодном старте, а в пропускной способности к памяти - которая известна и активно решается, так новое поколение nVidia Rubin содержит специальные чипы для decode со SRAM и вообще без памяти (ну ок LPDDR как "горячее хранилище" неиспользуемых данных - например незадействованные эксперты).

  2. Heawei представил новую LinxISA https://github.com/LinxISA/linx-isa, которая предполагает наличие CPU и ускорителей на одной платформе - как раз для edge-вычислений можно митигировать "холодный старт" на уровне OBI и компилятора.

  3. Выпуская слабые \ нишивые чипы вы обрекаете себя не только на мелкий рынок, но и на конкуренцию с китайскими Rockchip по 100$ за штуку.

Начнёт звонить ему по ночам.

Не обязательно начинать разговор словами "милорд, я сделаю в проекте Х, как Вы прикажете".

Если немного обобщить - то люди так хорошо научились писать ПО, то на архитектуру ПО намного больше влияет не "что мы делаем", а "для чего мы это делаем".

Т.е. при разработке условного микроконтроллера и GP GPU чипа (как вероятно и "интернет магазина vs ERP-системы") надо даже задавать принципиально разныевопросы.

Добро всегда побеждает зло. Ибо кто пишет летописи - тот и добрый.

dalerank: про "memory optimization" не пишут в книгах оптимизации.....

wasd: про "memory optimization" пишут, см пример

dalerank: ... зато... это не объясняет как работает "memory caching"...

Ещё раз:

  1. ваше утверждение, что про оптимизации памяти не пишут - неверно и поскольку вы хорошо знакомы с примером - так делать плохо.

  2. То, что вы пишите как кэшировать память - хорошо.

Если просто распилить один большой монолит на "множество микросервисов" (или сразу делать "множество микросервисов" не очень задумываясь зачем и почему) - то сложность уйдёт в протокол flow запросов (где вы наверняка и гонки и дэдлоки и старвэйшн получите) всего-то.

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

Ну нет же, зачем набивать себе цену желтизной типа "все книги по оптимизации СКРЫВАЮТ, вместо list, ВОЗЬМИТЕ ПРОСТОЙ СОВЕТСКИЙ VECTOR..."

Лет 15-20 как "What every programmer should know about memory" - золотой стандарт и ссылки на него включают в приличные статьи\книги по оптимизации памяти практически на обязательной основе (он частично устарел в части NUMA и отсутствия TCL".

В чуть менее приличные включают цитаты указания откуда надёргано.

Поскольку из статьи ничего не понятно - спросит gemini что содержательного скрывается за "пост фон-неймановскими архитектурами" и за Electron E1 в частности.

То, что инженеры называют "преодолением CPU-memory wall" - академики называют "пост фон-нэйман (ну звучит-то круче)", хотя часто это вообще безсодержательный термин (кажется в том числе в данном случае).

  1. X в 100 раз эффективнее CPU - это всегда маркетинговый обман. Который достигается или за счёт узкопрофилированной задачи (у нас уже есть GPU, NPU, TPU в 100-1000 раз эффективнее), или за счёт упрощения ядра, т.к. по энергопотреблению на FLOP: P-cores << E-cores << microcontroller cores << "cuda-cores" << MMA-cores......

  2. Что из себя представляет архитектура (подход называется CGRA) - набор "маленьких" ядер связанных в сеть (обычно 2D-MESH) + каналы между ядрами.

  3. ЕСЛИ задача подходит - компилятор строит пайплайн из ядер (желательно чтобы они были соседними) - первое ядро вычитывает данные из памяти, а дальше они текут по конвейру.

    1. Особо продвинутые компиляторы умеют строить графы.

      1. Что будет если граф нормально не ложится на MESH? Будет плохо: просадка по пропускной способности и\или по площади (ядрышко 100% времени будет работать как арбитра трафика)

      2. Что будет если задача плохо ложится на "крупные data-flow" (когда данные потребляемые ядром-3 ВСЕГДА проходят сначала через ядро 2 и 1) - будет плохо.

  4. Что происходит если мы соединили 2 ядра, при этом нагрузка несбалансирована (на одно ядро приходится в 1.5 раза больше вычислений чем на второе)? - Одно из ядер простаивает 50% времени.

  5. Чем это лучше GP GPU (cuda):

    1. вы читаете из памяти 1 раз, потом передаётся на ядро №2, потом на ядро №3.... Много ли это эффективности?

  6. Чем это хуже GP GPU:

    1. В этой архитектуре есть ограниченная ёмкость памяти, если задача в неё не умещается - до свидания, больших кэшей, вариантов скинуть в DDR временно ненужное и т.д. нет.


В целом для "задач размером с чип" - можно сэкономить 30% площади и 50% мощности (в сравнении с GPU) на том, что процессоры общаются не через память, а напрямую.

Если задача плохо ложится на MESH, или слишком большая или слишком маленькая - горе вам. Либо не запустится, либо будет хуже чем на альтернативных вычислителях.

В целом так.

1
23 ...

Информация

В рейтинге
2 187-й
Зарегистрирован
Активность