LINUX.ORG.RU
ФорумTalks

Операционная система на видеокарте

 ,


1

1

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

Перемещено CrX из general


Ответ на: комментарий от LongLiveUbuntu

Разве данное затруднение останавливало когда либо энтузиастов? Сейчас например куча гиков ковыряют разное железо редкое и древнее или там например делают моды для игр

doomer
() автор топика

Обращайся с твоей идеей и предложением по реализации в Nvidia, думаю им будет интересно. Их основной профиль - видео карты.

В Intel или AMD - не ходи.

anonymous
()
Ответ на: комментарий от doomer

Ну надо же. Кидай номер банковской карты, куда деньги тебе перевести за такую невиданную щедрость?

anonymous
()
Ответ на: комментарий от doomer

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

То есть:

  • Или вы разрабатываете ОС, которая строго однопоточная и одноядерная
  • Или вы магическим образом делаете все вычисления параллельными
PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Или вы разрабатываете ОС, которая строго однопоточная и одноядерная

Такое уже есть.

Или вы магическим образом делаете все вычисления параллельными

Делаем аналог DOS он вертится на одном ядре ГПУ, а по мере необходимость остальной софт параллелим

doomer
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

А можешь выдержку оттуда запостить - у меня сайт недоступен, белые списки все дела. Давно это было хотя бы?

doomer
() автор топика

Позовите Dimez-а чтобы снес очередной тупняк

cobold ★★★★★
()
Ответ на: комментарий от doomer

Источник

 Эмулятор RISC-V в форме пиксельного шейдера, позволивший запустить Linux в VRChat
27.08.2021 10:35

Опубликованы результаты эксперимента по организации запуска Linux внутри виртуального 3D-пространства многопользовательской online-игры VRChat, допускающей загрузку 3D-моделей со своими шейдерами. Для реализации задуманной идеи был создан эмулятор архитектуры RISC-V, выполняемый на стороне GPU в виде пиксельного (фрагментного) шейдера (VRChat не поддерживает вычислительные шейдеры и UAV). Код эмулятора опубликован под лицензией MIT.

В основе эмулятора заложена реализация на языке Си, при создании которой, в свою очередь, использованы наработки минималистичного эмулятора riscv-rust, развиваемого на языке Rust. Подготовленный Си-код транслируется в пиксельный шейдер на языке HLSL, пригодный для загрузки в VRChat. В эмуляторе предоставляется полная поддержка архитектуры набора команд rv32imasu, блок управления памятью SV32 и минимальный набор периферийных устройств (UART и таймер). Подготовленных возможностей достаточно для загрузки ядра Linux 5.13.5 и базового окружения командной строки BusyBox, с которым можно взаимодействовать напрямую из виртуального мира VRChat.

Эмулятор реализован в шейдере в форме собственной динамической текстуры (Unity Custom Render Texture), дополненной предоставляемыми для VRChat скриптами Udon, задействованными для управления эмулятором во время его выполнения. Содержимое оперативной памяти и состояние процессора эмулируемой системы сохраняется в форме текстуры, размером 2048x2048 пикселей. Эмулируемый процессор работает с частотой 250 kHz. Помимо Linux в эмуляторе также может быть запущен Micropython.

Для организации постоянного хранения данных с поддержкой чтения и записи применяется трюк, связанный с использованием объекта Camera, привязанного к прямоугольной области, генерируемой шейдером, и направлением вывода отрисовываемой текстуры на вход шейдера. Таким образом любой пиксель, записанный в процессе выполнения пиксельного шейдера, может быть прочитан при обработке следующего кадра.

При применении пиксельных шейдеров для каждого пикселя текстуры параллельно запускается отдельный экземпляр шейдера. Данная особенность существенно усложняет реализацию и требует отдельной координации состояния всей эмулируемой системы и сопоставления позиции обрабатываемого пикселя с закодированными в нём состоянием CPU или содержимым ОЗУ эмулируемой системы (каждый пиксель может кодировать 128 бит информации). Код шейдера при этом требует включения огромного числа проверок, для упрощения реализации которых был задействован perl-препроцессор perlpp.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Мда, давненько уже это было. Что-то не пойму как они в пиксель 128 бит информации записали, если там 4 переменных можно от 0 до 255

doomer
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Сам ibb работает, но картинки попали под блок уже недели как 2.

Опеннет работает, .ru сайтов это вообще не должно касаться если там нет запрещённых материалов.

Dr64h ★★★★
()
Последнее исправление: Dr64h (всего исправлений: 1)
Ответ на: комментарий от doomer

Делай динамическую прорисовку и выполнение всего вообще при помощи ИИ. Интерфейс и наполнение ОС зависит от того, что захочет юзер.

LightDiver ★★★★★
()
Ответ на: комментарий от doomer

Есть множество решений. Это не большая проблема. Вектора обычное дело в шейдерах.

1.7 HLSL Memory Models [Intro.Memory]
1 Memory accesses for Shader Model 5.0 and earlier operate on 128-bit slots aligned on 128-bit boundaries. This
optimized for the common case in early shaders where data being processed on the GPU was usually 4-element vectors
of 32-bit data types

А уж как ты это будешь интерпретировать в своей программе дело двадцатое. Даже на Atmega микроконтроллере можно делать вычисления с 2048битными числами например, если очень захочется =)

И так далее, это сокрее не техническая задача, а вариант для творчества, хочешь так, хочешь сяк.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от anonymous

Их основной профиль - видео карты.

Разве? Пишут, что по последнему отчёту больше половины выручки от подразделения по ЦОДами.

Так, конечно, RTX IO они выдвинули, и есть карта ASUS Dual GeForce RTX 4060 Ti со слотом M.2 под SSD на чипе Nvidia, но, может им уже это не особо нужно.

mky ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Самое интересное даже не данный сабж, а микропитон - почитал удивился даже что такое уже есть

doomer
() автор топика
Ответ на: комментарий от doomer

Как заработает интернет, качай гляди код

И читай детали реализации в обзоре самого автора

К слову там же

64 MiB of RAM require a 2048x2048 pixel texture at 128 bit per pixel

И далее манипуляции с этим через маски, побитовые операции и прочее.

Самое интересное даже не данный сабж, а микропитон

Это (как по мне) наименее интересное, так как просто следствие того что всё работает, как и запуск любых других программ (не требующих специфики). Ну разве что в плане, прикладного интереса, тогда да.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 3)

Суть в том, что GPGPU это не многоядерный компьютер, а суперкомпьютер. (Суперкомпьютер - это такая хрень, которая может, например сложить 1000 пар чисел за один такт) Конечно, можно заморочиться и заставить GPU эмулировать компьютер, но потеря производительности будет чудовищной. Это еще в 70х годах поняли. По этому на суперкомпьютерах только считают, а все сервисные функции выполняют обычные компьютеры.

Khnazile ★★★★★
()

Вот возникла идея, а что если сделать ось работающую на видеокарте?

Уже и ХРюшу, и 11 так запускали, используя память карты как RAM-диск. Гугли NTDEV. И линукс, как видишь, тоже.

Какие могут быть подводные камни?

Живет до перезагрузки, например. Потом вкрячивать заново.

anonymous
()

Нужно ли пересматривать тогда архитектуру уже существующих решений и переделывать все с нуля или можно пересмотреть роль цпу в данных решениях?

Шейдеры Тьюринг-полны? Думой :)

anonymous
()
Ответ на: комментарий от Dr64h

Опеннет работает, .ru

Нет, товарищ выше может вполне быть прав - в том же СПб у меня уже второй день ночью-утром работают только белые списки (проверялось на mcn telecom + билайн) - lor грузится, как и общеизвестные ресурсы типа маркетплейсов, а вот всё остальное, включая opennet нет (если зайти в метро, то там нормальный инет появляется без ограничений).

По теме топика - не вижу смысла городить ОС на видяхе, ибо зачем? Есть работающая проверенная архитектура в которой уже есть cpu специально для этих целей.

NightOperator ★★★
()
Последнее исправление: NightOperator (всего исправлений: 1)

У GPU принципиально иная архитектура в сравнение с CPU. Конечно можно и для такой архитектуры сделать ОС, но смысла в этом не очень много. Это по своей сути специализированный со-процессор.

vbr ★★★★★
()

Какие могут быть подводные камни?

Бессмысленность данного занятия. При высокой сложнрости и неимоверной трудозатратности.

Сама по себе операционная система, со всеми ещё scheduler’ами и драйверами использует ничтожный процент мощностей CPU и запускается на любом утюге.

Это прикладной софт нагружает CPU и/или GPU, и его имеет смысл оптимизировать, или давать ему дополнительные мощности.

При этом тот самый тяжёлый прикладной софт, вроде игр или того же вездесущего ИИ вполне себе и сейчас оптимизируют для использования мощностей GPU, для этого есть OpenCL, CUDA и т.д. То же касается и всяких видеокодеков, например (хотя с ними ситуация пока не очень, и наиболее эффективные работают таки на CPU, но вот этим заниматься как раз есть смысл).

А от переноса на GPU именно самой по себе ОС, которая по своей сути является пускалкой программ, какой смысл? Чтобы CPU ещё больше простаивал, а прикладному софту оставалось меньше ресурсов GPU? Ради чего это?

Лучше какой-нибудь компрессор вроде ZStandard под использование GPU перепиши — вот в этом может и будет какой-то практический смысл. А ОС… тупо ненужно.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от LINUX-ORG-RU

опенет никто не блочит, имгбб тоже

На мобильном интернете блочат «замедляют» до полной остановки ещё как. Он же сказал — белый список. У меня самого такое было. Открывается яндекс, ВК, госуслуги и ЛОР (грубо говоря). Проверено на чистых машинах, телефонах и т.д.

knovich ★★
()
Последнее исправление: knovich (всего исправлений: 1)
Ответ на: комментарий от knovich

На мобильном интернете блочат «замедляют» до полной остановки ещё как. Он же сказал — белый список.

Ааа, ну, тут да, мои личные искажения восприятия. Так как я мобильным интернетом не пользуюсь, от слова совсем. Так что я не то чтобы забыл, а тупо не знал, вернее даже сказать не сталкивался по причине неиспользования, а от того не додумался. Спасибо за пояснение. Хотя я мог бы догадаться, так как мобильный интернет это не всегда телефон, у многих USB модемы например.

LINUX-ORG-RU ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)