Опубликована вторая редакция проекта Vortex, развивающего открытый GPGPU на базе архитектуры набора команд RISC-V, рассчитанный на выполнение параллельных вычислений с использованием API OpenCL и модели выполнения SIMT (Single Instruction, Multiple Threads). Проекта также может использоваться при проведении исследований в области 3D-графики и разработки новых архитектур GPU. Схемы, описания аппаратных блоков на языке Verilog, симулятор, драйверы и сопутствующая проектная документация распространяются под лицензией Apache 2.0...Подробнее: https://www.opennet.me/opennews/art.shtml?num=60088
О, тут кто-то в теме про SeCura жаловался что нет видях открытых.
Вот уже второй проект.
Где купить и во что воткнуть?
> Добавлена возможность реализации на базе FPGA Xilinx.А что в этом предложении не ясно?
Ясно, параллельный импорт.
Это открытый проект, его не надо покупать. Описываешь под нужный тебе интерфейс. Компилируешь, получаешь принципиально схему. Потом компонуешь, на выходе получаешь монтажную схему. Берёшь паяльник в руки и вперёд.
DIY это не круто. Нужен законченный продукт.
Делай, разрешаю.
Паяльник - это круто. С паяльником то я могу. Тут у меня как раз и разноцветные проводки из набора профессора Фарнсворта имеются.
не уверен что с такими проводками у тебя выйдет собрать видяху.
они заточены под другие самоделки
Да ладно. Профессор из своих разноцветных проводков и не такое собирал. Чем я хуже?
Слушай, это гениально! На логических элементах и транзисторах компактно создавать микроконтроллеры. Это уже будет не столько микро, как макроконтроллер или макропроцессор))
Размер будет очень большой, но сам контроллер очень надёжный! И хоть и смешно — ремонтнопригодный.
А ещё круче на силовых компонентах для нужд высовольтных электросетей или электропоездов.
Так процессоры не всегда и были «микро». Вот откуда там взяться надёжности…
> Размер будет очень большой, но сам контроллер очень надёжный! И хоть и
> смешно — ремонтнопригодный.Поэтому большие ЭВМ на лампах больше ремонтировали чем они работали. Видите ли - куча контактов это весьма проблемный топик.
> А ещё круче на силовых компонентах для нужд высовольтных электросетей или электропоездов.
Так, этого гражданина взять в секретное КБ по разработке летающих танков.
Зачем мне эта хрень, если я итак могу описать интерфейсы, скомпилировать и получить принципиальную схему.
Зачем мука, если можно самому помолоть зерно на ручной мельнице?
А косынку потянет хотябы?
Только Большое Пещерное Приключение.
Сапёра и Косынку тянули ещё S3 Trio.
И как это поможет смотреть Ютуб с аппаратным декодированием на одноплатниках?
никак. Большие FPGA дороги весьма.
ПЛИС нужны не только для того чтобы туда залить логику. На них можно оттестировать чип и уже потом изготавливать чипы по обычной технологии.
Если деньги есть на изготовление чипов по обычной технологии.
Энтузиастам тут ничего не светит - и топовые ПЛИС очень дороги, и производство ASIСов тоже.
Но прогресс не стоит на месте. Завтра может что-то измениться в лучшую сторону.
Если на Artix-7 можно видяху достаточную для десктопа, то на Ali можно платку прикупить. Если, конечно, имеется денег больше, чем на покупку Четвёртого Пня.
А шейдеры в архитектуру GPU + код для неё для достижения наилучшей производительности - это будет? Я имею в виду вот что. Не исполнять программу на софт-процессоре, если это возможно, а сразу схему генерить и динамически реконфигурировать (это штатная возможность FPGA). Если получившаяся схема не влезает - то бить на схемы поменьше, и генерить кастомный набшр команд. То есть автоматически разбивать задачу на задействование по максимуму ресурса FPGA напрямую.
в серию никто фпгашный гпу не пустит.
Не нужно именно GPU, а вот универсальную плату, просто с видеоразъёмами и прочей обвязкой, если она и графику, и физику, и нейронки, и майнить может, и всё лучше, чем видеокарта (видеокарта же инструкции исполняет, а FPGA - это схема, те же майнеры на FPGA лучше по энергоэффективности и скорости, чем майнеры на GPU именно за счёт того, что GPU исполняет код и ждёт всякие барьеры, а на FPGA количество, тип исполнительных блоков, топологию схемы и синхронизацию между схемами ты сам заказываешь под конкретную задачу, каждая подсхема работает на своей максимальной скорости, и оверхэда на исполнение инструкций в идеале вообще нет) да ещё и подешевеет - с руками оторвут. Есть почти такие FPGA-платы. Без разъёмов правда... и софта нет. Собственно, в поддержку в софте всё и упирается. Если будет что-то, предоставляющее интерфейс как у видеокарты, заменяющее её, но превосходящее её, и по приемлимой цене - с руками оторвут.
Если тебе позарез нужна FPGA, ты знаешь где ее взять. Если нет - к чему это нытье, сводящееся к "хочу, чтобы было зашибись"?
FGPA-шники они ребята такие. Хотят сами не знают чего, сами не знают зачем.
> FGPA-шники они ребята такие. Хотят сами не знают чего, сами не знают зачем.Они - те кто новое железо вам, бакланам, прототипирует. А то что потом результат в ASIC с более приличными параметрами отольют - да, но в нем вы уже не сможете прототипить новую железку с другой структурой, и это уже не девтул...
Людям нужен не FPGA сам по себе, ни отладочная плата с игрушечной обвязкой, а продукт потребительского уровня: плата, которую можно вставить в компьютер и нажать на кнопку "сделать зашибись", чтобы и графика, и физика, и нейросети, и майнинг, и декодинг самых последних кодеков, только что скачанных из инета. Это требует не только железки, но и экосистемы. Под графику экосистемы уже есть, под gpgpu экосистемы тоже уже есть. Под майнинг есть решения, но их придётся адаптировать к железке. А значит нужен слой абстракции над FPGA. Под декодинг экосистемы совсем нет, есть только одирочные прототипы на гитхабе.
Уже лет 20 слышу что нужно людям. Почему-то ни себя, ни оппонентов авторы за людей не считают. Да и вообще человек в их понимании это овощ, который ничего не хочет и не может кроме самоудовлетворения. И сами авторы почему-то не горят желанием стать овощами...
Да не овощ он, у них просто свои задачи. И решать их нужно уже вчера. А не тратить годы на разработку экосистемы. Отладочная плата - это хорошая игрушка... для тех, кто хочет в программирование на Verilog играть вместо 3D и ИИ. А универсальная плата потребительского уровня позволит и в верилог играть, и в 3D, и в ИИ, и в майнинг. Поэтому она объективно лучше. А внешние модули вроде GPIO надо к плате через интерфейсы подсоединять.
Экосистему нельзя разработать, ещё можно только построить, и это занимает годы, десятилетия. То, на что ты смотришь — это возможное начало такого развития. А мржет и нет. Заранее тоже невозможно предсказать.
> Экосистему нельзя разработатьно можно взять чужую. Пример - вайн, использует экосистему виндовых приложений. Вайн - именно разрабатывают. Смысл в том, чтобы новое поколение видеокарт было на основе массово производимых и продаваемых больших FPGA с дополнительной аналоговой обвязкой под широкий спектр задач. То есть есть плата, на ней большие FPGA с кулером, памятью, встроенным несколькими "IP"-блоками для сопряжения с интерфейсами (все соединения полностью конфигурируются), и на том же кристалле самым RISCV-ядром с прошивкой по SPI для инициализации (прошивку как во флешке, так и в памяти должно быть можно заменить). Сзади - графический разъём и специальный разъём с пинами прямо на FPGA, но с защитой от статики. Этакий флиппер зиро но на FPGA для PCIE. Далее софт на компе его юзает в хвост и в гриву. Можно к разъёму подключить дополнительный графический разъём, можно - антенну и закодить SDR, можно Ethernet и получить высокоскоростную сетевую карту с обработкой на месте. Можно ничего не подключать, и майнить крипту. Нужно 3D? Шейдеры на стандартных языках для GPU компилируются в битстрим и работают прямо на FPGA. Нужен новейший разъём USB100500, который только в новейших компах есть? Покупаешь или паяешь переходник на универсальный разъём, скачиваешь прошивку - и появляется. Экосистему программ именно для FPGA надо будет строить (и её построят энтузиасты), но экосистема программ для GPU уже есть. Что нужно - это принести дешёвые большие FPGA в каждый дом, а для этого нужен массовый рынок. Нужно выкинуть видеокарты и заменить их на FPGA.
> Что нужно - это принести дешёвые большие FPGA в каждый дом, а для этого нужен массовый рынок.Осталось только проблему курицы и яйца решить.
(ну это не считая того, что на самом деле это никому не нужно (в каждый дом))
1. Взятие чужой экосистемы и решает проблему курицы-яйца в виде платформа-экосистема.
2. проблему курицы и яйца в виде вендор-конкурентоспособное_решение может ре9ить тодько уже существующий вендор.
>Людям нужен не FPGA сам по себе, ни отладочная плата с игрушечной обвязкой, а продукт потребительского уровняНу а как по твоему этот конечный продукт появляется, появляется из ниоткуда в готовом виде?
> Если будет что-то, предоставляющее интерфейс как у видеокарты, заменяющее её, но превосходящее её, и по приемлимой цене - с руками оторвут.Да. Как жаль, что этого чего-то не будет.
"Мы лишь в начале пути", кто-то здесь недавно сказал.О сколько же мгновений чудных
Ещё нам Столлман принесёт
И GPU ошибок трудных
Открыто спляшет и споёт
Хватит мучить меня своими рифмами.
Да, действительно не будет. Ведь производители FPGA куплены производителями CPU и GPU. И производителям оных невыгодно, чтобы у потребителей были устройства менее подверженные запланированному устареванию, поддержку декодинга новых кодеков в которые можно добавить, заменив прошивку, вместо покупки новой железки.
Пользователи, меняющие конфигурацию FPGA и создающие кастомные CPU… ух, как они ударят по процессорному бизнесу производителей.
Так FPGA это лишь промежуточная часть. А литографиям без разницы что выпускать.
Никто не спорит, что они иснользуются для прототипирования и отладки. Но ещё они используются для вычислений в реальном времени везде, где асиков нет, а за ценой не постоят. Я работал с оборудованием на основе FPGA. PCI-плата, всталяемая в комп. При желании можно даже заменить битстрим (штатная функция управляющего ПО, но исходников битстрима в комплекте нет, как и документации, для этого нужен отдельный договор) - но кто это будет делать, если при неправильной прошивке механика и/или электроника устройства выйдут из строя? Ещё был OpenCL от производителей FPGA под их железки. Но кому нужно с FPGA реботать - те на верилоге шпрехают.
> за ценой не постоят.Анону выше надо «по приемлемой цене». Нет, этого он не получит.
При массовом производстве - может и получит. Может FPGA и будут поменьше, но туда не процессор пихать весь, а скомпилированный в битстрим шейдер.
FPGA в силу своей конструкции в принципе не может быть дёшев, и массовое производство тут ни при чём (на самом деле штампуют их достаточно массово).
Ну FPGA малой ёмкости вполне доступны каждому по свромной цене. Но числомолотилку на таких не сделать.>в силу своей конструкции в принципе не может быть дёшев
Даже если размазать издержки на топовые производственные линии и заводы по огромному числу изделий?
>(на самом деле штампуют их достаточно массово).
Да это понятно, что вооружения в них массово нуждаются. Значит надо ещё массовее.
> Отмечается, что это первый открытый GPU с программной и аппаратной реализацией, поддерживающий Vulkan.А вы это предложение читали?
Если ты напишешь, то конечно будет. Это же оперсорц, всё в твоих руках.
Интел ради генерируемых под задачу архитектур альтеру купил. Только вот что-то там не получилось. Хотя мы не знаем -- настоящее состояние числодробительных вычислений скрыто за шумяшим лесом кластерных систем, ориентированных на mpi. В анчале 10-х в Переславле-Залесском на НСКФ (nscf.ru) был доклад о такого рода отечественной системе.
А после доклада вы там Перуну молились?
Интел уже понял, что FPGA бизнес это слишком сложно для них. Нужно и софт для создания топологий миллиарды вкладывать, и развивать семейства FPGA-чипов с учётом потребностей пользователей.
Уже ищут кому бы Альтеру продать.
> А шейдеры в архитектуру GPU + код для неё для достижения наилучшей производительности
> - это будет? Я имею в виду вот что.В качестве шейдеров - пачка RISCV с энными расширениями, код выполняет. Что тут не понятного?
> Не исполнять программу на софт-процессоре, если это возможно,
> а сразу схему генерить и динамически реконфигурироватьВы вообще видели как это все работает? Шейдеры программы переливают по сто раз за 5 минут. Битстрим с конфигурацией FPGA с такой частотой переливать, да еще не потеряв состояние всей этой штуки - ну попробуйте.
> (это штатная возможность FPGA). Если получившаяся схема не влезает - то бить
> на схемы поменьше, и генерить кастомный набшр команд.У существующих реализаций даже генерация шейдеров под "обычные" ядра - проблемный топик. Настолько что MESA сделала нехилый костыль с кешированием скомпиленого, чтобы не заниматься ресурсоемкими операциями при каддой вгрузке шейдеров.
А вы предлагаете крайне ресурсоемкие операции, от "компиляции" до оптимизации, генерации фактического битстрима, его ре-аплоада (а состояние при этом не потеряется?) - и в это время оно считать не может, и весь мир - подождет. И вот кому такой GPU будет нужен и зачем?
> То есть автоматически разбивать задачу на задействование по максимуму ресурса FPGA напрямую.
Если кто не понял, пачки проциков с отожраным SIMD и есть такой себе динамически-реконфигурируемый интерфейс "на все оказии". Только вот избегающий вон того. И его потом можно в ASIC без гимора отлить. При том у ASIC частоты могут быть и пожирнее уже в несколько раз.
Вы же не предлагаете массово закупать топовые FPGAшки чтобы GPU пользоваться? Они стоят как самолет. Это девтул, с не очень практичными параметрами на выходе by design, как то низкой частотой, дорогущей FPGAхой и проч. Но это позволяет отладить дизайн и быстрее софтовых симуляторов. А в всяких окололабораторных применениях - может в жесткий реалтайм, и скорости может хватить для ряда задач даже и так, а цена в штучной лабораторной ерунде всем пофигу.
>нехилый костыль с кешированием скомпиленогоНе костыль, а оптимизация. Совершенно правильная. Так и надо делать.
>В качестве шейдеров - пачка RISCV с энными расширениями, код выполняет. Что тут не понятного?
Да всё понятно. Но свои влажные мечты же озвучить надо.
>не потеряв состояние всей этой штуки
ну состояние можно хранить в оперативе.
>А вы предлагаете крайне ресурсоемкие операции, от "компиляции" до оптимизации, генерации фактического битстрима
кэшировать, да. Это всё надо делать 1 раз на программу.
> Они стоят как самолет. Это девтул
Поэтому и стоят, как самолёт, что в массовую серию не идут. Если пойдут настолько же массово как видеокарты - будут дешевле.
>>нехилый костыль с кешированием скомпиленого
> Не костыль, а оптимизация. Совершенно правильная. Так и надо делать.Технически любой кеш являет собой костыль на операцию получившуюся тормозной. Что намекает на скорость операции.
> Да всё понятно. Но свои влажные мечты же озвучить надо.
Там большой вопрос насколько эти мечты технически реализуемы на существующих дизайнах. Это ж надо какой-то дифференциальный аплоад только кусочка битстрима FPGA, для 1 закоулка, без потери состояния всего остального. Иначе нахрен оно надо, аплоадить все состояние GPU это "gpu recovery" и это такая деоптимизация и глюкизация что вы точно ЭТО не хотите.
В случае с машинным кодом vs ядра CPU, даже SIMDшно-оптовых, такая абстракция с сохранением состояния и заменой кусков не особо сложно делается. Но FPGA не это и там обычно если и реконфигурят на ходу - то редко и радикально, реплоадом иного стрима. А насколько реально что-то даже отдаленно напоминающее это в реально существующих FPGA - весьма отдельный вопрос.
>>не потеряв состояние всей этой штуки
> ну состояние можно хранить в оперативе.Реаплоад состояния угробит все профиты от оптимизаций, и вообще, сложное это дело. Современные видео дрова умеют "gpu recovery" с чем-то напоминающим вот именно это, но это довольно стремный и компромиссный маневр. И уж точно не скоростной.
> кэшировать, да. Это всё надо делать 1 раз на программу.
А в PFGA вообще реально залить "дельту" битстрима на ходу, не угробив состояния железки вокруг? Потому что если совсем состояние снести - вся абстракция развалится. На ощутимое время. Вплоть до отсутствия на энное время шейдерокрушилок и проч, как и девайса на шине. А раз так то оно в это время и не рендерит и не передает данные по шинам. Что не есть оптимально.
>> Они стоят как самолет. Это девтул
> Поэтому и стоят, как самолёт, что в массовую серию не идут. Если
> пойдут настолько же массово как видеокарты - будут дешевле.Топовые чипы, хоть какие, не могут стоить дешево. У них кристалл большой, на вафле мало чипов лезет (зиллионы вентилей же надо где-то размещать?!), дефаеты чипов куда вероятнее и дороже обходятся, технологию желательно топовую, иначе хорошие скорости и потребление совсем не сможет, т.е. производство - заведомо дорогое.
А в мелкую FPGA - окей, а копипастить SIMD ядра там куда? Чем больше вентилей, тем больше ядер можно накопипастить и оно ближе к GPU. С полутора ядрами - можете llvmpipe как "GPU" юзать, ничем не хуже.
>Что намекает на скорость операции.в мире ВСЁ tradeoff. Да, есть медленные операции. Такие нужно делать пореже и кэшировать. Такой подход к решению задач, как динамическое программирование - он как раз о кешировании, и экспоненциальные при наиболее тупом способе решения задачи становятся полиномиальными.
>Это ж надо какой-то дифференциальный аплоад только кусочка битстрима FPGA, для 1 закоулка, без потери состояния всего остального
>А в FPGA вообще реально залить "дельту" битстрима на ходу, не угробив состояния железки вокруг?на зайлинксах такое есть. FPGA - это же просто SRAM, приделанная к мультиплексорам и базовым ячейкам. Нет никакой проблемы перелить некоторые ячейки из этой памяти. Это речь шла о состоянии внутри FPGA. Состояние внутри оперативы должен поддерживать контроллер оперативы, который вообще должен быть асиком, так как реконфигурить контроллер оперативы смысла нет, ибо память распаяна.
>Топовые чипы, хоть какие, не могут стоить дешево. У них кристалл большой, на вафле мало чипов лезет (зиллионы вентилей же надо где-то размещать?!), дефаеты чипов куда вероятнее и дороже обходятся
Вот это меня беспокоит, но я думаю, это можно обойти. Во-первых, FPGA - это реконфигурируемая штука. Дефекты будут, нужно помнить, где они. Точечный дефект не портит весь чип. Он портит окрестность этого дефекта. Чипы нужно тестировать, и номера дефектных ячеек - записывать в пзу. То что чипы большие - ну да, большие. Но ведь надёжнее 1 большой единый чип с отключаемыми дефектами, чем несколько маленьких, соединённых друг с другом, ведь так?
>А в мелкую FPGA - окей, а копипастить SIMD ядра там куда?
Никуда. Никаких сложных софт-процессоров - примитивный процессор, но с набором инструкций под каждую конкретную задачу и программами без ветвлений. Просто декодер инструкции, активирующий нужные подсхемы схемы + конвейер, управляющий перекачкой данных через нашу схему из одних кольцевых буфферов в другие.
> в мире ВСЁ tradeoff.Удивлюсь если та идея никому не приходила в голову за столько лет. Я и предположил что оно не получило распостранения из-за траблов с вот именно tradeoff.
>> А в FPGA вообще реально залить "дельту" битстрима на ходу, не угробив
>> состояния железки вокруг?
> на зайлинксах такое есть. FPGA - это же просто SRAM, приделанная к
> мультиплексорам и базовым ячейкам.Ничего не говорит о том как сделан аплоад и применение битстрима, и насколько это затронет те или иные состояния системы в целом.
> Нет никакой проблемы перелить некоторые ячейки из этой памяти. Это речь шла
> о состоянии внутри FPGA. Состояние внутри оперативы должен поддерживать
> контроллер оперативы, который вообще должен быть асиком,
> так как реконфигурить контроллер оперативы смысла нет, ибо память распаяна.Если отливать ASIC - то уже ВСЕГО ЧИПА, имхо, потому что стоит столько же - а параметры сильно лучше. И ядер больше влезет на ту же площадь, и частоты будут куда выше. И даже оптимизировать можно - да хоть неделю для окончательной выгрузки на фабу.
> Вот это меня беспокоит, но я думаю, это можно обойти. Во-первых, FPGA
> - это реконфигурируемая штука. Дефекты будут, нужно помнить, где они.Вот это так то забавная идея. Но чтобы скипнуть произвольный дефект надо что-то как-то ремапить видимо. А коммутация этого всего что, халявная по площади кристалла? Или как столько коммутации оптом халявное получится? Еще увеличить огромный кристалл?
> Точечный дефект не портит весь чип. Он портит окрестность этого дефекта. Чипы
> нужно тестировать, и номера дефектных ячеек - записывать в пзу.И дальше - чего? В него либо не пройдет аплоад дизайна юзавшего проблемный регион и чип в этом смысле все же труп. Либо надо ремап какой-то для абстрагирования этого всего. А это точно реально сделать относително халявно? Для толпы ячеек?
> То что чипы большие - ну да, большие. Но ведь надёжнее 1 большой единый чип
> с отключаемыми дефектами, чем несколько маленьких, соединённых друг с другом, ведь так?Технологический процесс гоняется для вафли и занимает немало времени. Чем больше с нее чипов - тем дешевле каждый чип. Стоимость процесса размажется на N. А если дефект накрыл 1 чип, пролет пропорционален 1/N. Для очень мелких чипов достигается некий предел т.к. повышение требований к резке на чипы и прочая корпусировка мешают снизить цену дальше, но это не тот случай.
> Никуда. Никаких сложных софт-процессоров - примитивный процессор, но с набором инструкций
> под каждую конкретную задачу и программами без ветвлений.А что есть "конкретная задача" в современном мире с GPGPU где именно совсем примитивные нужно? В таком духе как максимум NPU какой-то смысл получили, но поскольку это 1 конкретная задача, их и отлили в ASIC уже все кому не лень.
> Просто декодер инструкции, активирующий нужные подсхемы схемы + конвейер,
> управляющий перекачкой данных через нашу схему из одних кольцевых буфферов в другие.Современные GPUшки предпочитают вообще делать нечто типа локальных буферов для считалок с одной стороны и мощные движки DMA для IO с системой с другой.
>Ничего не говорит о том как сделан аплоад и применение битстрима, и насколько это затронет те или иные состояния системы в целом.На зайлинксах это есть уже долгое время. При этом во время реконфигурации остальная часть чипа продолжает работать.
>Если отливать ASIC - то уже ВСЕГО ЧИПА, имхо, потому что стоит столько же
А производители FPGA-то и не знали! Поэтому в некоторых FPGA с завода идут нереконфигурируемые готовые блоки с контроллерами памяти, распространёнными интерфейсами и ARM-ядрами. На самом деле зависит от цели. FPGA - это основа для своей числомолотилки. А ей надо взаимодействовать с внешним миром. У моей идеи цель - универсальная плата в каждый компьютер, способная не только заменить и превзойти GPU, но и заменить многое другое, требующее сейчас специализированных железок, и обновляемая во многом через замену прошивки вместо покупки нового устройства.
>надо что-то как-то ремапить видимо
В процессе синтеза и роутинга нужно учитывать карту дефектов.
>А коммутация этого всего что, халявная по площади кристалла? Или как столько коммутации оптом халявное получится? Еще увеличить огромный кристалл?
Коммутация не халявная, но регулируемая. Во-первых некоторую избыточность можно заложить на стадии проектирования FPGA, и она не пропадёт, её можно утилизировать в случае отсутствия дефектов. Во-вторых если отмаппить вентили на ячейки нельзя так, чтобы дефекты не мешали, то можно из простаивающих ячеек сделать обходные пути. Чем меньше дефектов - тем меньше обходных путей нужно в среднем. Соответственно, чем меньше дефектов - тем более универсален чип, и чипы с меньшим количеством дефектов можно продавать пожороже. То есть цена на каждый чип должна быть своя, а чипы - продаваться на аукционах.
>Технологический процесс гоняется для вафли и занимает немало времени. Чем больше с нее чипов - тем дешевле каждый чип.
Да, это понятно. Но суммарную площадь тебе уменьшить не удастся. Тебе для такого-то устройства с такой-то производительностью и такими-то возможностями нужно столько-то ячеек, хоть тресни. Каждые ячейки - это площадь. Если ты берёшь чип площадью M, то стоимость его будет L. Или ты берёшь K чипов площадью M/K, каждый стоимостью L/K. В результате платишь те же L. Только тогда чипы нужно соединять - а это издержки, а соединения между чипами - это уязвимые места с точки зрения надёжности и узкие места с точки зрения роутинга. Поэтому лучше 1 чип.
>Стоимость процесса размажется на N. А если дефект накрыл 1 чип, пролет пропорционален 1/N. Для очень мелких чипов достигается некий предел т.к. повышение требований к резке на чипы и прочая корпусировка мешают снизить цену дальше, но это не тот случай.
Нужно уменьшать не стоимость чипа путём уменьшения чипа (мы не можем уменьшить чип, он будет большим), а уменьшать стоимость чипа путём увеличения количества пластин с чипами и размазывания издержек по большему числу пластин, и увеличения площади пластин, но тут уже проблемы будут.
>И дальше - чего? В него либо не пройдет аплоад дизайна юзавшего проблемный регион и чип в этом смысле все же труп. Либо надо ремап какой-то для абстрагирования этого всего.
Там не ремап, там в ходе синтеза вентили мапятся на ячейки. Всегда. С учётом ограничений, таких как задержки. То, что некоторые ячейки нельзя использовать и надо отключить - это такое же ограничение.
>А это точно реально сделать относително халявно? Для толпы ячеек?
Скажем так, расчёт роутинга - это далеко не халявная задача сама по себе, это NP-сложная задача.
>А что есть "конкретная задача" в современном мире с GPGPU где именно совсем примитивные нужно? В таком духе как максимум NPU какой-то смысл получили, но поскольку это 1 конкретная задача, их и отлили в ASIC уже все кому не лень.
Я выше приводил примеры. Алгоритмы, реализованные в виде схем для FPGA обычно производительнее и энергоэффективнее, чем реализованные программно для GPU. Конкретно в майнинге так было. Нет оснований считать, что для шейдеров будет по-другому. Плюс FPGA открывают возможности, которые для GPU недоступны в принципе, такие как SDR или высокоскоростные аппаратные протоколы. То есть представь, что чтобы у тебя в компьютере появился последний Thunderbolt или новый "аппаратный" декодер тебе бы не новый компьютер покупать пришлось, а всего-лишь нетлист/исходник скачать и отроутить конкретно под твой FPGA (автоматически, писать самому код на верилоге не обязательно). Но сейчас большие FPGA золотые и позволить себе их могут немногие.
>Современные GPUшки предпочитают вообще делать нечто типа локальных буферов для считалок с одной стороны и мощные движки DMA для IO с системой с другой.
Ну суть предложения от этого не меняется. Есть исток, есть сток, есть конвеер без всякого предсказания ветвлений и ненужной для конкретного применения сложности. Только сдаётся мне, научить машину автоматически бить шэйдеры на куски так, чтобы оптимально задействовать ресурс FPGA, и выбирать интерфейс между набором команд и netlist-реализованными блоками может быть очень нетривиально.
> На зайлинксах это есть уже долгое время. При этом во время реконфигурации
> остальная часть чипа продолжает работать.По своему круто. Но тут вопрос кто еще так умеет. Не окажется так что это только 1 производитель умел и теперь все жестко завязано на него?
> А производители FPGA-то и не знали! Поэтому в некоторых FPGA с завода
> идут нереконфигурируемые готовые блоки с контроллерами памяти, распространёнными
> интерфейсами и ARM-ядрами. На самом деле зависит от цели.Я думал вы про внешний чип. Внутри это лишь IP-блок. Ничему не противоречит, но вот ASIC выпускать как раз не требует.
> FPGA - это основа для своей числомолотилки. А ей надо взаимодействовать с внешним миром.
> У моей идеи цель - универсальная плата в каждый компьютер, способная
> не только заменить и превзойти GPU, но и заменить многое другое,Вообще чипсеты AFAIK на FPGA вроде и прототипят порой. Правда это не платы. Они между процом и IO скорее. И дают процу новые возможности по (довольно шустрому) IO, при том до некоторой степени реконфигурируемому.
Однако когда выходит новый стандарт - вон то в его электрические спеки может вписаться. А может и нет. Без гарантий.
> требующее сейчас специализированных железок, и обновляемая во многом через замену прошивки
> вместо покупки нового устройства.Специализированные железки все же эффективнее, by design. И в целом generic решение обычно сложнее сделать. Особенно чтобы потом не вылезло ограничений.
>>надо что-то как-то ремапить видимо
> В процессе синтеза и роутинга нужно учитывать карту дефектов.Я не очень крутой эксперт по синтезу для FPGA но в например флешах - дефектлисты это гемор на всю голову, настолько, что в итоге RAW NAND стали предпочитать заменять на eMMC где это "счастье" делегировано отдельному процику и его фирмвари. Не случится что-то такое же, когда сложность возрастает настолько что никто не захочет с этим возиться?
> Коммутация не халявная, но регулируемая. Во-первых некоторую избыточность можно заложить
> на стадии проектирования FPGA, и она не пропадёт, её можно утилизировать
> в случае отсутствия дефектов.Интересно. А чего из нее такого можно сделать в этом случае? Но вообще идея выглядит по своему круто. Был бы я прозводителем FPGA - взял бы этого анона в R&D, посмотреть насколько это (не)бред. Редко кто попадается с настолько необычными идеями.
> так, чтобы дефекты не мешали, то можно из простаивающих ячеек сделать
> обходные пути.А это задержек разве не добавит? И как при этом синхронизация, максимальные частоты и проч будут себя ощущать? Тоже на фазе синтеза все это учитывать предлагаете?
> Чем меньше дефектов - тем меньше обходных путей нужно в среднем.
Более-менее практичные дизайны типа сабжа как я понимаю на FPGA гоняют близко к пределу возможностей для сколь-нибудь приемлимых скоростей. Если что-то такое огорошить таким изменением правил игры - уровень сложности не пробьет потолок? Но вообще - на лично мой вкус мне кажется что это одна из областей которые еще не исследованы в должном объеме.
> Соответственно, чем меньше дефектов - тем более универсален чип,
> и чипы с меньшим количеством дефектов можно продавать пожороже. То есть
> цена на каждый чип должна быть своя, а чипы - продаваться
> на аукционах.Вообще в этой идее что-то есть. В принципе желающие нахаляву проскочить могли бы даже патчить свои дизайны чтобы в кривой "вот так" чип - лезло бы без проблем. Может производитедям просто не хочется спускаться до смертных настолько, черт знает.
> же L. Только тогда чипы нужно соединять - а это издержки,
> а соединения между чипами - это уязвимые места с точки зрения
> надёжности и узкие места с точки зрения роутинга. Поэтому лучше 1 чип.На практике приходит к тому что выше некоего размера чипы дико дорогие, и это не лечится. Если даже каждый второй чип поражен дефектом и выкинут - окей, но половина пригодна к продаже, придется поднять цену но есть что продавать. А если они были крупнее и акрыло все чипы - упс, выход около ноля. Продавать нечего. Хотя с fault tolerant дизайном - вообще, это какое-то не очень изведанное измерение.
Чипмейкеров это тоже не радует, они и опробуют всякие промежуточные сценарии, типа мультичиповых сборок на interposer. Где технологии кремниевые и можно что-то крутое, типа 4096-бит шин раскидать. Видимо идеальных решений нет и еще есть что улучшить. Получается ессно круто но - опять же дорого.
> Нужно уменьшать не стоимость чипа путём уменьшения чипа (мы не можем уменьшить
> чип, он будет большим), а уменьшать стоимость чипа путём увеличения количества
> пластин с чипами и размазывания издержек по большему числу пластин, и
> увеличения площади пластин, но тут уже проблемы будут.Ну тут уж упс, за раз делается - вот столько. Времени на процесс - вот столько. Чем больше с "забега" получилось - тем дешевле чип. Если за раз условно 10 чипов vs 100 чипов, 100 чипов имеют предпосылки стоить примерно в 10 раз меньше. За то же время с теми же процессами их получилось в 10 раз больше. Поэтому дешевые чипы с большим кристаллом - упс, так вроде не бывает.
> Там не ремап, там в ходе синтеза вентили мапятся на ячейки. Всегда.
> С учётом ограничений, таких как задержки. То, что некоторые ячейки нельзя
> использовать и надо отключить - это такое же ограничение.Вообще вроде звучит разумно. Интересно, никто не хочет этого анона в R&D какого-нибудь FPGAшного вендора нанять? Будет довольно тупо если эти идеи окажутся не исследованы. Может сами черканете кому из них? Чем черт не шутит. Вы кажется очень неплохо разбираетесь в inner working этого добра. Во всяком случае это первый анон на этом глобусе давший мне такой годный мастеркласс по теме.
> Скажем так, расчёт роутинга - это далеко не халявная задача сама по
> себе, это NP-сложная задача.Оптимизация программ IIRC в принципе тоже, но если немного срезать углы...
> Я выше приводил примеры. Алгоритмы, реализованные в виде схем для FPGA обычно
> производительнее и энергоэффективнее, чем реализованные программно для GPU.В каком-то роде принимается, памятуя о истории SHA256... только потом ASIC пришли и дали всем мастеркласс на тему эффективности. А кроме счета SHA256 от них ничего и не требовалось и то что они именно ASIC всем как бы и норм. GPUшки то остались полезны для других вещей.
> Конкретно в майнинге так было. Нет оснований считать, что для шейдеров будет по-другому.
Майнинг все же специфичная штука: 1 алго, фиксированый, несложный и надо макс. скорость любой ценой. Реконфигурацию опосля и тем более на ходу не надо.
> Плюс FPGA открывают возможности, которые для GPU недоступны в принципе,
> такие как SDR или высокоскоростные аппаратные протоколы.There's no such word as impossible.
1) На RasPI через GPIO сделали миниму FM TX - а по моему и 433MHz OOK даже (радиопультики и проч). Just because they can. Ессно все софтом. Там есть способы оооооочень быстро махать лапами GPIO. Это "direct synth", похабный, зато из подручного гамна за копейки. Чем и круто.
2) Лично я экспериментировал с STM32+DMA и в конце концов нашел апнот от STMicro как делать параллельную шину юзая GPIO, таймер и DMA автомат. И TX-side и RX side. И если туда DAC/ADC на ...цать MSPS подвесить... когда нельзя но очень хочется, можно и почти на вашем поле немного поиграть :). У более жирных внешняя шина есть хардварно, там какой DAC/ADC можно почтенно прокачать, используя все тот же DMA и таймер. В STM32 DMA похрен куда писать/что читать и это дает довольно много "странных" возможностей, в том числе и по части синтеза странных протоколов. Правда все же не настолько быстрых как вон то.
3) На самом деле у меня есть нечто весьма угарное. Проц и проводок к лапке. А воооон там, через весь дом, его коллега - ловит это. Деталей не будет, скажу лишь что в силу маргинальности такого "передатчика" пришлось сделать оооочень забавный формат сигнала.
4) Никогда не видели MIPI DSI сделаный из SPI ESP32 при помощи делителя напряжения и одного триггера? Знаю где такое есть. Конечно полные скорости оно не будет, и в 1 сторону, но иногда это и не надо, если у панели RAM набортный есть то те бандвизы и не требуются. И там сложнее всего как раз понять какая из панелек под такой финт годится. Иные реализации потребовали бы FPGA с специфичными драйверами - и это были бы совсем другие бабки.> То есть представь, что чтобы у тебя в компьютере появился последний Thunderbolt
> или новый "аппаратный" декодер тебе бы не новый компьютер покупать пришлось,Боюсь что по электрическим спекам оно бы много где не пролезло. Ну вот допустим я хочу отрастить себе пусть тот же MIPI DSI. А там - тыдыщ - уровень сигналов довольно специфичный. Generic железо сделаное без этого интерфейса в уме - врядли сможет ЭТО изобразить.
Из FPGA это сделать можно. Из некоторых. Если вы заранее условиились что делаете вот это и правильно развели все, и вольтажи подходящие есть. А вот заранее ДО выпуска спеков протокола в generic железе - можно и обломиться это ОПОСЛЯ сделать на СУЩЕСТВУЮщЕЙ разводке. Даже если перераскинув ее оно и получится - но вот кто ж заранее знал что вон то будет вон так?
А как вы представляете себе "произвольные" драйверы линий, что дифференциальные что single ended с "произвольными" вольтажами, чего доброго несколько разных на пин, разведенное "в количестве" и чтобы это не стоило как самолет потом? И откуда возьмутся нужные разъемы?
> а всего-лишь нетлист/исходник скачать и отроутить конкретно под твой FPGA
> (автоматически, писать самому код на верилоге не обязательно). Но сейчас
> большие FPGA золотые и позволить себе их могут немногие.Ну я как бы немного в курсе "продвинутых" интерфейсов и догадываюсь что "generic" электрические моменты - это боль. Ну вот диф пара. А что если вон там номинальное волновое сопротивление одно, а вон там - другое? Это программно не решается - вопрос топологии печатки.
При том это все актуально для почти всех скоростных и-фейсов, наверное у части можно что-то общее нащупать но далеко не 100%. На правах мечты - это офигенно, но я туго представляю себе практическую реализацию. Даже на уровне "и как мы роутим печатку?!"
> Ну суть предложения от этого не меняется. Есть исток, есть сток, есть
> конвеер без всякого предсказания ветвлений и ненужной для конкретного применения сложности.Ну как, постепенно немного сложности добавили сделав чуть более похоже на обычные CPU. Скажем совсем без усложнений - VLIW было мучительно програмить. Пришлось фронтэндов поставить и сделать CU с группами ALUшек и wave (у нвидии вроде что-то сравнимое, они это warp называют).
> Только сдаётся мне, научить машину автоматически бить шэйдеры на куски так,
> чтобы оптимально задействовать ресурс FPGA, и выбирать интерфейс между набором команд
> и netlist-реализованными блоками может быть очень нетривиально.Ну как бы шейдеры изначально все же программы. Хотя учитывая что вооооон тот кодек AV1 транслируют через HLS - это вероятно "сложно" но не "невозможно".
Айти забавная штука. Тут почти нет "невозможно". Но иногда оказывается "нецелесообразно". Однако особо упертые индивидуалы все равно могут всем назло сделать "невозможное".
> Если получившаяся схема не влезает - то бить на схемы поменьше,
> и генерить кастомный набшр команд.Как быть в многозадачной системе? Сгенерировали для одного приложения, пользователь запустил ещё пять штук, в итоге первое начало тормозить.
Как обычно: своппинг. Если места не хватает - выгружаем битстрим того, что не нужно в данный момент. Если места хватает - крутим параллельно :)
Открытый RISC-V ГПУ это конечно хорошо. Вопросы:
На нём Doom пойдет?
Оно готово к производству?
Можно ли разместить заказ на заводе и получить на выходе готовую видеокарту?
Даже лучший из армов - Эпла и то имеет какашку,а не видео. Для игорей малопригодно, а потому лучше уж синекраснозеленые.
Точнее краснозелёные. На синем разве что текстовый редактор гонять, да и тот может тормозить.
Я правильно понимаю, что AMD чей фирменный цвет красный лучше подходят для этого вашего Линукса чем Интел и Энвидия?
Ну, в моём случае оно лучше подходит для всего.
Я просто не перестаю офигевать с глюков драйверов у зелёных. Зачем только я это **ка взял.
> Ну, в моём случае оно лучше подходит для всего.
> Я просто не перестаю офигевать с глюков драйверов у зелёных. Зачем только
> я это **ка взял.Кому хорошая инженерия, кому маркетинговый булшит, как говорится. АМД в первое всегда умел, в отличие от интелов и нвидий, и никогда не борзел с откровенным уходом в "овердрафт" по возможностям своего кремния нагло лоханув клиентов, в отличие от воон тех.
А вот со вторым у них всегда было так себе. Они предпочитали хорошо работать а не очки втирать. За это их всегда любили в среде гиков и технарей. А хомяки несут денег тому кто более сладкие речи вещает, соответственно. Но сейчас эта схема стала давать сбой - инженерные преимущества AMD в новых чипах настолько очевидны что маркетинг всяких интелей и нвидий уже не вытягивает, и даже TOP500 стал собирать все на AMD, при том что CPU что GPU.
Писать софт AMD на свое горе не умел толком, это да. Но вот сделать дрова открытыми было EPIC WIN - другие впряглись и починили их самое слабое место. И как минимум под линем - вроде вполне себе ЗБС стало, если конечно не хватать едва выпущеную железку (чудес не бывает - вы и протестируете как тот код в ядре работает: до вас же никого еще не было).
С железом GPU у AMD, увы, похоже пока суровые проблемы. За CPU спору нет - всё просто отлично.Вот это решение не выпускать топовой линейки последних Navi - оно вовсе не тем продиктовано, что мракетинг озвучивал. Скорее всего какая-то беда с масштабированием выше среднебюджетного порога. В тепловой бюджет тоже не верю, посмотрев на младшие чипы, да ещё на этом техпроцессе, скорее просто архитектурные проблемы имеются.
Поэтому пришлось брать 4090, а куда деваться, если надо честные 4K без апскейлинга и хотя бы 60 FPS.
Взял - и пожалел. Нет, свою работу он делает, но драйверы и многомониторная поддержка - это 3.1415926ц.
Ну и возвращаясь в топик, вот это вот открытое поделие для рисования полутора графиков вида "диаграмма Гантта" - рядом с красно-зелёными не встанет никогда. Не те бюджеты, не тот интерес.
> С железом GPU у AMD, увы, похоже пока суровые проблемы.Булшит. Это нвидия отродясь хреначила супер-горячие чипы шпарящие на 90 градусах и выше, пытаясь выжать все соки. И они от такого разумеется горят только в путь. Топовые геймерские видяхи у нвидий вообще через пару лет на раз мрут. Особый шик когда такая фигня в ноуте, сразу выбор - ремонт ценой полноута или новый ноут. Круто же, да? :)
> За CPU спору нет - всё просто отлично.
А с чего им GPU плохо делать в эру GPGPU, где это тоже пачка CPU только частоты помедленнее, зато дофига ядер и SIMD оптом. Это нвидия из кожи вон лезет хоть как-то пытаться вендорлокать на себя и делать что-то несовместимое, чтобы задвинуть конкурента.
Но вот с линухом она таки - кажется - доигралась, когда линуксоиды в ядре решили трахнуть их по настоящему. Без вазелина и вплоть до DMCA. А то что у хамской корпорации на этом HPC бизнес был - раньше надо было думать своей башкой! Если у вас бизнес а руководитель операционки на которой он основан кажет жест в камеру - наверное, чудо-фирма делала что-то не так.
Теперь то конечно с ж@пой в мыле ищут кодеров видеодров на нвидии под линь. Но вот где их взять?! Все кто хотел плотно работать с Linux Kernel - нвидии не покупали. Потому что с tainted kernel в разраобтке ядра вообще ловить нечего. Да и отставание от майнлайна - упс!
> Вот это решение не выпускать топовой линейки последних Navi - оно вовсе
> не тем продиктовано, что мракетинг озвучивал. Скорее всего какая-то беда с
> масштабированием выше среднебюджетного порога. В тепловой бюджет тоже не верю, посмотрев
> на младшие чипы, да ещё на этом техпроцессе, скорее просто архитектурные
> проблемы имеются.Всякие измышлизмы это прекрасно - но амд настригло чертову кучу видеокарт. И они так то весьма недурны. И неплохо работают в лине. А еще это нормальный опенсорсный процесс разработки, когда AMD стал одним из основных "stakeholder подсистемы" и им как раз дрова девелопать удобно, они принимают участие в создании DRM/KMS/GBM. Валву такой формат тоже зашел. А нвидия - ну, она не вписалась в этот поворот. Так бывает когда корпа зажирается, о...вает в край и думает что держит бога за бороду.
> Особый шик когда такая фигня в ноутеОсобый шик - когда ноутбучные low power обрезки пытаются называть игровыми GPU.
Вообще у меня больше 10 лет были карты AMD. Как-то до Navi всё было хорошо. Горячо - но хорошо.
Потом случилась Navi, и всё пошло куда-то не туда. 7900 XTX нынешний - это уровень 4080...
А топовую карту пытались объяснить, что "рынку она не нужна". Но блин. 4K уже на дворе. А AAA в 4K нормально вытягивает без апскейлинга только 4090.> Всякие измышлизмы это прекрасно - но амд настригло чертову кучу видеокарт. И они так то весьма недурны.
Я в курсе, но см. выше. Предыдущая Vega устраивала всем, но в 4K оно бесполезно.
>Я правильно понимаю, что AMD чей фирменный цвет красный лучше подходят для этого вашего Линукса чем Интел и Энвидия?Красный и Синий поддерживаются в Linux/Mesa гораздо лучше Зелёного. Для энергоэффективного десктопа вполне достаточно встроенного Синего. На стационарнике - Красный.
Я не разбираюсь в том как работают видеочипы, но мне азалось что на Эпл нет игр просто потому что разработчики игр просто ленятся делать билды под Эпл. Слышал что сейчас в Эпл завезли эмулятор и теперь у них тоже есть игры.
Эпл хочет какие-то кастомные девтулсы, с облизыванием чего там себе любимым, и еще чтобы с вот такими приседаниями. И апи у них свое, голубых кровей. Которого больше нигде нет.В результате соотношение гимора с их платформой и профита - понятно какое. Ничего личного, это бизнес как говорится. Пусть слащавые фанаты с Xcode и фигачат, если могут.
Профита там нет от того, что технику эппл берут те, кто уже в бирюльки наигрался (нет, это не про бабки и «успешных людей»).
А у "неуспешных" откуда бабки на Ябблотехнику?
На Эппл игорьтонет потому, что а) у эпплы как всегда собственный графический API (Metal), не совместимым ни с кем. Ни распостранённые директ / опенгл / ни вулкан, а значит девелопер, перепиши графический стек твоегй игори под эпплу и б) основные потребители Эппла - американцы, а у них для игорь отдельный девайс (иксящик или плойкастанция, ну или нинтуда на крайняк).
В итоге игори на Эппл мало кому нужны ни со стороны потребителя, ни со стороны девелопера. Как результат: под Эппл всё ограничивается мобильными игорями.
Про Doom я спрашивал, про тот что 1993 года выпуска. Это мем же такой, когда Doom 1993 запускают на чайниках, микроволновках и т.д.
Меня интересует сабж, смможет ли он служить на уровне офисного-домашнего компуктера. Понятно что для игр нужно самое производительное железо.
А чего бы штуке типа этой отлитой в ASIC (частоты повыше) и не потянуть десктоп то, умеючи в вулкан и все такое?
Если тебе призодится объяснять про мем, что это мем, значит это не мем, а r0BH0.
>На нём Doom пойдет?А GTA 5 ?
Не-не-не, товарищи, "GPGPU" - это оксюморон. Либо "GP", либо "GPU".
General-Purpose computing on Graphics Processing Units
Как раз хотел спросить что означают GP но постеснялся. Всё ещё не понимаю что за General-Purpose computing хоть и перевел.
Вычисления общего назначения, что тут непонятного? Не ограниченные преобразованиями пикселей и координат вершин.
Непонятно зачем мне ГПУ общего назначения если у меня уже есть ЦПУ общего назначения?
Затем, что на CPU ты гоняешь любые задачи в умеренных объёмах, а на "GPGPU" - большие объёмы одной и той же задачи. В своё время сенсацией стал успешный брутфорс DES на Беовульфе с CUDA'вскими видеоадаптерами за... эээ... не помню сколько времени, вроде бы порядка дней или даже часов, лень гуглить, тогда как на тогдашних CPU длительность брутфорса оценивалась в овер100500 лет.
Затем что в видеокарте у вас тысячи простых выч. ядер, а на ЦПУ - их можно по пальцам сосчитать.
Поэтому задачи, которые хорошо параллелизуются - серьезные дядьки и тетьки считают на GPGPU
> Не-не-не, товарищи, "GPGPU" - это оксюморон. Либо "GP", либо "GPU".Это не оксюморон а новая реальность. Все GPU начиная с энного момента - просто пачка крушилок, которым все равно что молотить. Что шейдеры для графики, что вычисления, массиву SIMD вычислялок похрену совершенно.
Более того - дизайны с специализацией в типы шейдеров это визитная карточка легаси которое вымирает.
Ну, вот, значит не GPU, а только GP. Значит, я прав.
Только маленькая поправочка - не совсем "все равно что молотить". Им надо много одного и того же, тогда они молотят хорошо.
> Им надо много одного и того же, тогда они молотят хорошо.Нет, не надо. Там точно такие же ALU, как и в любом другом процессоре. Альтернативную физику и математику для GPU пока что никто не придумал. Принципиально ничто не мешает приспособить GPU для GP (что и происходит, как мы видим). Проблема в том, что GPU по сравнению с CPU окажется для таких задач очень медленным, так как оптимизирован под совершенно иное, что со стороны выглядит как «много одного и того же». А так, никто не запрещает хоть Линукс там исполнять.
Если очень просто - на GPU (GPGPU) у тебя получается 9000 процессоров, которые исполняют ОДНИ И ТЕ ЖЕ инструкции! Не 9000 разных программ, а все 9000 ядер исполняют одну программу. И чтобы оно работало - нужно взять большой массив (например текстуру 9000x128). И всего за 128 итераций GPU (GPGPU) тебе всё обсчитает. Каждый пиксель по одной и той же формуле, например y[i][j]=x[i][j]+1 (где i будет меняться от 0 до 8999 и у каждого ядра будет своя, а j будет у всех меняться от 0 до 127; за несколько тактов 1 строка в 9000 пикселей легко обсчитается и все ядра будут при деле).Такая вот "физика" особая - чтобы получить выгоду от GPGPU нужно как-то разделить задачу на одинаковые ("параллельные") подзадачи... Иначе получишь а не 9000 медленных ядер, а одно медленное ядро. А это уже никому не нужно.
И не забыть при этом, что задача не должна содержать сложных условий - ветвлений нет, любое ветвление - по факту перезапуск всего конвеера.
> И не забыть при этом, что задача не должна содержать сложных условий
> - ветвлений нет, любое ветвление - по факту перезапуск всего конвеера.Когда пуляется wave/warp есть нефигово ограничений на тему возможности развернуть "направление" (сделать бранч и проч). Оно так сделано чтобы пройтись широким SIMD катком по всей площади этого региона. Это как раз стиль SIMD характерный для изображения операций GPU через шейдеры.
У GPU логики "GP" меньше чем у нормального проца VS число ALU. Там блок рюхающий это дело один на группу ALU. Так что по сравнению с процом общего назначения это вертится в разные стороны не очень резво.
Принципиально мешает. И многое. ALU - это далеко не весь проц.
MMU с вычислительных юнитов не управляется. Прерываний нет. Ветвления стоят столько, что можно сразу выносить. Если проще - оно годно только в качестве широкого SIMD-модуля "на выносе", это таки не проц общего назначения.
И, надо сказать, использовать GPU как SIMD - это гвозди микроскопом забивать. TMU, VU и прочее простаивают полностью.
> И, надо сказать, использовать GPU как SIMD - это гвозди микроскопом забивать.
> TMU, VU и прочее простаивают полностью.Дядя, ты рак? Судя по тому что я вижу на допустим майнинге и крякинге хешей, GPU делает системный проц раз в 30. И хрен с ними с твоими TMU и VU, они незначительная площадь кристалла.
Представляешь, для TOP500 девайсы вообще без видео выхода делают. А внутрях те же амд и нвидии, тех же архитектур, только compute побольше и топово, клиент жирный и считать хочет много.
> Представляешь, для TOP500 девайсы вообще без видео выхода делаютТе девайсы уже не совсем GPU, и не совсем тех же архитектур, да.
И GPU из них на редкость плохие, хотя встречаются и варианты для игрохостингов.
>> Представляешь, для TOP500 девайсы вообще без видео выхода делают
> Те девайсы уже не совсем GPU, и не совсем тех же архитектур, да."Те девайсы" - это все современные GPU! Без этого можно забыть о поддерже современных стандартов. Да и не особо современных тоже.
Fixed function было лишь GL 1.x - остальное уже подразумевало вместо этого шейдеры. Довольно быстро до всех дошло что соотношения между типами шейдеров бывают разные, так что выгоднее сделать универсальные крушилки, и потом считать на них уж то что реально есть, развернув весь массив в нужную сторону. Железки стали делать с "унифицироваными шейдерами", а графические апи с какого-то момента стали на это уповать - и до кучи и compute шейдеры сделали. А заодно появились и compute only апи.
На PC этот переход случился давно. Даже в MESA весьма винтажные HD5000/6000 (это еще VLIW) могут какой-никакой GPGPU. А GCN был целиком о том чтобы вместо долботни с VLIW в чистом виде донавесить фронтэнд делающий все это более похожим на нормальный проц, чтобы GPGPU прогеры не матюкались. Т.е. по линии AMD все что GCN 1.0 и новее - сразу делано под именно вычисления. А это было довольно много лет назад так то уже. Да и предыдущие поколения к этому подходили, просто боялись порвать с наследием ATI из древних времен.
Все современные GPU это массив унифицированых шейдеров которым вообще похрен что считать и они GPGPU by design потому что почти все что делал fixed function hardware было заменено на шейдеры. И какой-нибудь вулкан на чем-то ином сделать будет душно. Зато на такой архитектуре он приделывается влет и драйвер простой. В чем его пойнт и состоит, оверхеда мало, и это настолко тоникий слой что через него стали делать и compute, и смежные вещи типа декодирования видео. Вотпрямща например в ffmpeg - вкатили пачку фильтров видео которые обсчитываются не на проце, а как шейдеры через вулкан. Ffmpeg с вулканом всяко умел работать для своих целей, а раз так - ну вот и часть процессинга стал уметь оффлоадить через него.
> И GPU из них на редкость плохие, хотя встречаются и варианты для игрохостингов.
Абсолютно все современные GPU деланы под GPGPU изначально и являют собой массив унифицированых шефдеров которым решительно похрен, будет там vertex, pixel, geom, tessel, или compute какой, и в каком соотношении. Что будет, на то массив крушилок и развернут. В этом весь пойнт данного дизайна. И единственный лимит - на память о том что изначально оно было для графических целей, такая архитектура конечно же предпочитает массово параллельные SIMD операции с последовательным доступом и слабым exec flow control.
При том вон то уже даже до мобилок добралось. ARM конечно тупил впаривая откровенно легаси дизайны для GL ES (не)лохам но все что умеет вулкан почти гарантировано следует вон тому паттерну и там.
Сабж в этом смысле архитектурно - "найдите 10 отличий". Их блок напоминает ну тот же CU от амд допустим (compute unit, базовый блок архитектуры GCN). А то что они заменили какой-то самопальный ALU на RISCV - и чего? Основной вопрос в том чтобы они были мелкие по вентилям и массовые по количеству.
Про GCN порадовало.
Заметь, GCN осталась для compute-only применений ныне. Что собственно см. выше.
> Про GCN порадовало.
> Заметь, GCN осталась для compute-only применений ныне. Что собственно см. выше.На минуточку, мистер эксперт, AMD это изменение в архитектуру сделало ... насмотревшись на нвидию, они друг у друга не стесняются копировать идеи :). У них такая же ерунда в примерно те поры случилась. Амд с его VLIW довольно гиморным в програмировании и решил что не есть гуд от конкурента в важном топике отставать и переделал свое добро, добавив фронтэнд в том же духе как у зеленых, делаюший это более похожим на более обычные CPU для програмеров. Так что вычисления и стали первой скрипкой и у тех и у других. Это логичное направление в эволюции когда решили уйти от fixed-function в unified shaders.
А сейчас как ты видишь, GPGPU настолько их (нвидиеско) все - что тебя с твоими проблемами вооюще задвинули куда не светит солнце. Потому что HPC сегмент нагибается, а это нвидии важнее чем все геймеры вместе взятые, походу. Они на ЭТОМ и поднялись, на буме AI - а вовсе не.
И не надо на амдшников свои траблы проецировать, они в отличие от нвидии не тупят месяцами с драйверами.
Майнинг и крякинг хешей - вот это тот самый рак и есть.
> Майнинг и крякинг хешей - вот это тот самый рак и есть.Геймеры, особенно хайэнд - еще хуже. Это самые тупые и вредные двуногие на планете вообще. Жрут кучу ресурсов с вообще нулевым полезным результатом. Да еще в отличие от вон тех как правило тупые аки дрова. За что в любом приличном обществе считаются за биомусор.
Абсолютно нулевой полезный результат - именно в майнинге.
На выходе получается набор данных, не имеющих никакой реальной ценности вообще.
Сжигая тонны ресурсов.Геймеры хотя бы стресс снимают и удовольствие получают, так же как от кино, театра и т.п.
> Абсолютно нулевой полезный результат - именно в майнинге.Независимость от диктатуры банков и прочих умников с их инфляцией сжирающей накопления и пытающихся диктовать как нам НАШИ деньги юзать - по моему так весьма полезный результат.
Деньги изначально появились как универсальный инструмент I/O ценностями. То что некоторые охренели и решили пользуясь этим внедрить концлагерные порядки и лохотроны en masse, когда чтобы стать лохом ДАЖЕ ДЕЛАТЬ НИЧЕГО НЕ НАДО - ИНФЛЯЦИЯ САМА СОЖРЕТ - вообще-то деньги появились не для этого. А вон то - хорошая напоминалка что если кто будет зарываться, можно и без него обойтись. Я нахожу это весьма полезным - вносит лимиты на оборзение вон тех и позволяет в пиковом случае слать оборзелых в пень, забыв их вообще спросить "а можно ли".
> На выходе получается набор данных, не имеющих никакой реальной ценности вообще.
Он обеспечивает абстракцию денежной системы и активов - децентрализованно, не спрашивая мнения банков и прочих оборзелых в край личностей.
> Сжигая тонны ресурсов.
Копание золота тоже сжигает тонны ресурсов, да еще и весьма материально загаживает зону раскопок. При том в технике его столько - нахрен не надо. Если бы банкиры не складировали золото, оно бы внезапно стоило в десятки раз дешевле. Потому что с его физическими свойствами оно имеет достаточно ограниченное применение в технике.
> Геймеры хотя бы стресс снимают и удовольствие получают,
И это кому-то полезно кроме самого геймера? Это как? А некоторые игроки в байду типа постала еще и стали общественно опасными элементами потом. Майнер с ружьем или бензопилой в офис не пойдет, его интересы совсем не в этом. А вот пережравший тех гамез малолетний даун, утративший различие между реалом и виртуалом - могет.
> так же как от кино, театра и т.п.
Электричества жрут и планету засирают короткоживущей электроникой. Раньше была отмазка что прогресс двигают. Но судя по тому как нвидия откровенно задвинула геймеров в пользу HPC эта отмазка более не катит и теперь прогресс двигает именно GPGPU. Поэтому он и играет первую скрипку. Ну ты там жди короче фиксы дров, но таки первыми у нвидии в приоритете вон те датацентры. Потому что AMD их оттуда - того. И это совсем другие деньги, с тебя столько не получишь даже если на органы распродать.
Да-да. Нэзавысимость.
Пока счета за э/э контора оплачивает, не знающая, что там майнер завёлся. Или пока их не подняли.
Или пока обмен с фиатом не прихлопнут до конца + операции с криптой не объявят нелегальными операциями.
Дальше административные методы сведут число майнящих до почти нуля. Вот и вся нэзавысимость.
> Да-да. Нэзавысимость.Worksforme.
> Пока счета за э/э контора оплачивает, не знающая, что там майнер завёлся.
> Или пока их не подняли.Можно еще просто оплачивать из своих. Такая неявная конверсия шила в мыло. Или вообще - только подумайте - купить на бирже/в обменнике.
> Или пока обмен с фиатом не прихлопнут до конца + операции с
> криптой не объявят нелегальными операциями.Проще всех тараканов на планете выморить чем это. Имел дело с правильными бизнесменами. Понравилось. За свой скромный процент клиент всегда прав. Это и есть правильный подход к бизнесу.
> Дальше административные методы сведут число майнящих до почти нуля. Вот и вся
> нэзавысимость.При том я эту сказку слышу... эээ... с 2009 чтоли года? Ну да, пару каких-то особо жирных и наглых котов даже пощипали немного. Но они знали на что шли.
За площадь кристалла вообще не всосал. Основная площадь кристалла того же GPCPU - это L1/L2/L3 кеши ныне. Вот только ценность GPCPU не в этом самом L3 кеше вовсе.
> За площадь кристалла вообще не всосал. Основная площадь кристалла того же GPCPU
> - это L1/L2/L3 кеши ныне. Вот только ценность GPCPU не в
> этом самом L3 кеше вовсе.Вообще-то числокрушилки занимают солидную площадь. И топовый GPU от середнячка и затычки отличается прежде всего числом шейдер-процессоров и частотой на которые это загнали. Ну может еще насколько крутой VRAM донавесили. А размер кешей как параметр для GPU никто вообще не выпячивает, игорям оно вообще не особо то и актуально.
Кеши внезапно нужнее всего GPGPU, при том именно не особо адаптированному к природе GPU. Всякие игровые ворклоады отродясь умели жить с устройством GPU by design, не сильно уповая на ломовые кеши которых не было, просто делая жирные линейные доступы, на которых те штуки показывали нехилые результаты и так. GDDR отродясь был сильно быстрее системной DRAM - если линейный доступ делать. Не говоря о том что это отдельная шина с отдельным бандвизом в довесок к системной. Но вот если попытаться в рандомный доступ (нафига он игорям и их шейдерам?) - окажется что разворот тех DRAM занимает время и все становится печально. Для GPGPU вычислений это разумеется икается, ведь адаптировать вообще все алгоритмы к GPU можно и задолбаться. Народ хочет всякий уже совсем генерик оффлоад типа OpenMP какого и проч, когда на GPU часть вычислений вообще прозрачно и в фоне неявно уйдет, а вот там уже алгоритмы могли быть и не в курсе о тех аспектах.
Я не о том немножко. Я о том, что площадь кристалла вообще не важна в данном разрезе. Важны в первую очередь параметры того, чем этот кристалл набит. И если это GPU - мы имеем утилизацию полезной площади кристалла вещами, которые SIMD-акселератору нафиг не нужны + совершенно другую "набивку", потому что кроме числодробилок нужны прочие модули. В этом плане специализированные SIMD-акселераторы - аха, на той же архитектуре GPGPU - будут эту самую площадь и термобюджет использовать гораздо эффективнее, нежели консумерский GPU.Что же за остальное - давайте с простого начнём. В ECC консумерские GPU почти не умеют, хотя nV настолько в спешке выкатила консумерскую аду, что даже ECC умудрились не обрезать. А без ECC из GPU так себе SIMD-акселератор, разве что на поиграться или для отладки.
> Я не о том немножко. Я о том, что площадь кристалла вообще
> не важна в данном разрезе. Важны в первую очередь параметры того,
> чем этот кристалл набит.Числокрушилками. Ну и кешами при случае. Чего еще в GPGPU надо собссно. Есть немного вспомогательных блоков для графики, но вот именно место на кристалле от них не стоит упоминания.
> И если это GPU - мы имеем утилизацию полезной площади кристалла вещами,
GPU в чистом виде умерли в эпоху GL1. В эпоху GL 3 -> 4 и каком там DX где unified shaders были затребованы как mandatory - кроме GPGPU на PC ничего и не осталось.
> которые SIMD-акселератору нафиг не нужны + совершенно другую "набивку",
Этой набивки мизер по сравнению с остальным. И поскольку оно все же GPU то ALU структурируют так чтобы шейдеры в характерном для графике стиле оно все же жрало хорошо.
И вот эта вот набивка с wave/warp/etc это как раз то как сейчас работают современные амд и нвидии. У них вот этот блок - примерно так же. И "wave" там пуляется в таком же стиле. Эти походу решили передрать паттерн у грандов. Нормальная идея так то. И красные и зеленые используют этот подход, у AMD это wave называется, а у нвидии вроде тоже warp.
Технически это поток инструкций пуляемых относительно линейно по широкой группе ALUшек. При этом ограничения на управление exec и проч, это ориентировано на процессинг в стиле GPU, когда более-менее однотипные операции оптом применяют к куче данных параллельно.
> потому что кроме числодробилок нужны прочие модули.
ЧСХ об этом сто лет догадались и в амд и в нвидии. Сабжи видимо посмотрели на архитектуру современных железок до того как велосипедить - и бесцеремонно содрали структуру с воооон тех. Которые сдирали друг у друга и в результате у них достаточно похожие структуры как я понимаю.
> В этом плане специализированные SIMD-акселераторы - аха, на той же архитектуре
> GPGPU - будут эту самую площадь и термобюджет использовать гораздо эффективнее,
> нежели консумерский GPU.Да вот что-то специализированные акселераторы оказались не особо популярны. Единственное исключение это NPU, куча совсем примитивных крушилок которые вообще int8 (для минимизации размера ядра) или совсем куцый float не более 16 бит. Состояние нейрона трекать хватает, а остальное и не надо. И если и работает - то до кучи.
> Что же за остальное - давайте с простого начнём. В ECC консумерские
> GPU почти не умеют, хотя nV настолько в спешке выкатила консумерскую аду,Это отличие в Memory Controller. И то может запросто оказаться что MC чипа умел это сто лет, просто линий не раскидали и памяти не допаяли. А что, они будут новый MC спецом для маркетинга делать? А оно надо?
> что даже ECC умудрились не обрезать. А без ECC из
> GPU так себе SIMD-акселератор, разве что на поиграться или для отладки.Делать отдельную версию IP-блока с обрезаным под маркетинг набором фич достаточно специфичная затея в целом. В половине случаев на это вобще забивают.
>> Им надо много одного и того же, тогда они молотят хорошо.
> Нет, не надо. Там точно такие же ALU, как и в любом
> другом процессоре. Альтернативную физику и математику для GPU пока что никто
> не придумал.Ты не прав, анон, отличия есть. В GPU - много относительно низкочастотных и упрощенных ядер, ориентированных на супер-массовый SIMD и последовательные операции с памятью характерные для графики (а в дискретках и специализиорванная RAM ориентированная на такой стиль работы).
Кроме того у GPU обычно слабый exec flow control. Это именно молотилка в SIMD стиле, а как процессор общего назначения оно все же достаточно неинтересное.
Однопоточный алгоритм который не параллелится там вообще будет жалок. Равно как управляющие или системные задачи там не имеют особого смысла.
> Принципиально ничто не мешает приспособить GPU для GP (что
> и происходит, как мы видим).Однако алгоритмы для GPU все же выгдядят... специяично. И работают тоже. Вон те wave/warp/как вы там это называете, на обычном проце вообще не присутствует.
> Проблема в том, что GPU по сравнению с CPU окажется для таких задач очень медленным, так как
> оптимизирован под совершенно иное, что со стороны выглядит как «много одного
> и того же». А так, никто не запрещает хоть Линукс там исполнять.Кроме здравого смысла. Что линух будет делать с кучей относительно простых и не сильно шустрых по отдельности ALUшек с слабым exec flow control? Они не умеют быстро крутиться в разные стороны, так что код с бранчами там будет в полном ауте.
У шейдеров то изначальная идея была пройтись алгоритмом "по всей площади" более менее линейно. И когда fixed function заменили на репрограмабельные ALU, от них прежде всего хотели вон то.
Для GPU ещё характерны блоки TMU, которые за такт интерполяцию как минимум двух пикселей делают. Начиная с 3dfx Voodoo именно наличие TMU является хорошим отличительным признаком GPU.
На самом деле сейчас и TMU уже по факту GP, но есть нюанс.
>Поддержка промежуточного представления шейдеров SPIR-V реализована через трансляцию в OpenCL.Yo dawg! SPIR-V—>OpenCL—>POCL—>SPIR-V—>LLVM—>RISC-V
У них так плохо с фантазией и поисками торговых марок или они решили затмить легендарный аудиопроцессор своим графическим процессором??
Чем оно лучше, чем покойный Intel Larrabee?
Чем арбуз лучше, чем колбаса?
Да.
А есть в топике люди, которые разбираются в FPGA? На базе чего это будет собрать дешевле всего? Есть вариант скомпилить это и залить во что-то дешёвое и китайское, чтобы пощупать?
Поясню. Я занимался программированием научных задач под GPU. Можно такое решение потестить без необходимости покупки жирной плисины за overprice? Или в принципе за сопостовимые деньги можно собрать что-то на 6-12 видеокарт и экономически ПЛИС для целей вычислений ещё очень невыгодны?