Даешь порт 1801вм1 на Verilator, даешь новый backend в Verilator, который транслируется в kernel-функции CUDA. Так победим!![]()
Даешь порт 1801вм1 на Verilator, даешь новый backend в Verilator, который транслируется в kernel-функции CUDA. Так победим!![]()
Последний раз редактировалось yu.zxpk; 20.06.2020 в 21:06.
Это был не аргумент, эта была информация к размышлению - за эти 37 я повидал очень много чего в компахТак что меня теперь очень трудно чем то новым удивить - подавляющее большинство идей, которые преподносятся (сейчас) как новые - мне уже знакомы
Может, не все - практически, но - знакомы
Конкретно именно с SSE - нет, но однажды пришлось писать модуль обработки массива данных под одну железяку, в которой у проца был очень похожий (по идее) набор команд. Так что в самой идее SSE для меня - ничего нового.
Ну и применимо это дело для определённого класса алгоритмов. А значит, на обычных задачах этот модуль (в проце) будет простаивать. То есть получается, как в современных программах - объём кода - гигантский, но (условно говоря) - 99 процентов его используется в 1 проценте случаев использованияКак не нравится мне это в программах, так не будет нравится и в процах
- - - Добавлено - - -
Он уже есть.
Аха, конечно![]()
Это была шутка, на самом деле. Тему эту поднимали лет 10 тому. Модель работы verilator плохо ложится на много мелких CPU, большие накладные расходны на синхронзацию.
Не, Юр. У меня есть интересная идея с динамической трансляцией инструкций PDP-11 в микроинструкции и параллельном out-of-order исполнении на CUDA. Даже в недорогом Jetsone ресурсов хватит чтобы пытаться одновременно десяток инструкций транслировать, отслеживать зависимость аргументов и прочее. В итоге конвейер будет длинный, на десяток тактов и достаточно простой, но их будет много - несколько десятков слотов и с исполнением нескольких веток (ложные выбросим, правильные закоммитим в реальность), в итоге ретайрить на выходе 1-2 инструкции PDP за такт может быть реально, а FPGA встанут на подсос. Интересно потрогать идею и сделать не сильно сложную реализацию, на CUDA оно видится проще и быстрее чем на HDL.
А верилог ВМ1 - он довольно линейный и не особо архитектурно поражает. Одно АЛУ на все-про-все? Не, для того транзисторного бюджета что тогда был - оно великолепно вышло. Но сейчас ресурсы немножко другие, можно попробовать другой интересный подход, хотя и программный. В CUDA на самом деле много интересного и способного удивить даже после многих лет классического опыта. Ну - меня, по крайней мере. Я не утратил способность радоваться и удивляться? Так победим!![]()
yu.zxpk(20.06.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ясно
Наверное, имелись ввиду GPU? Если да - для меня ничего удивительного - GPU и CUDA заточены под исходно параллельные алгоритмы, то есть, скажем, какой-нибудь CRAY, скорее всего, будет проще сделать (ибо всякие вопросы синхронизации уже решены - в нём). А много ли параллелизма в PDP-11?Вот и придётся самому решать их в реализации под CUDA
![]()
Надо использовать нативную синхронизацию по данным, в GPU все есть для построения сложных конвейеров, но оно реально на общий случай ложится неважно. А вот продумать алгоритм чтобы нативные средства GPU использовать и задействовать их в эмуляции - результат может быть поразительным.
- - - Добавлено - - -
Параллелизьму в любом старом кода маловато. Но даже если out-of-order окажется неподъемным, то 1 такт на инструкцию должен получится, и в итоге - 1801ВМ1 на Jetson с эквивалентной частотой 3GHz. Как, на FPGA осилишь?![]()
Согласен, что надо нативные средства синхронизации SM в gpu использовать. И тут конвейеры между блоками pdp-11 cpu ложаться идеально, кмк
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)