У меня как раз параллельный битбанг получился, просто руками за раз не одна, а сразу 16 ног переключается. Три переключения = передали по 1 разному биту сразу на 16 лент.
Имхо главная проблема не в загрузке CPU, а в том, что выдерживание таких точных интервалов на CPU задача не очень приятная, и по возможности её лучше скидывать на более специализированные железяки
Вот да. Насчёт есть — не уверен, по крайней мере, в стоковом Дебиане я такового не нашёл, пришлось писать самостоятельно. И всё ради возможности лочить прерывания.
Хотя лучше, конечно, просто накатить ОС реального времени.
3D принтер, способный одновременно печатать и пластиком, и металлом с вменяемым качеством — это почти революция 3D печати, существенно расширяющая сферу применимости 3D принтеров и очень сильно меняющая подход к формату приобретения бытовых устройств.
Решается. Но ИМХО было очень интересно узнать, как подобная задача решается с помощью аппаратных таймеров STM32. В своё время я делал подобное на STM32 Discovery, но интервалы в 400 нс выдерживал с помощью тучи asm("nop"). Без циклов.
В комментариях умные люди мне объяснили про эти таймеры, а в данной статье ещё и наглядный пример, как с ними управляться в задаче, подобной той, что я решал. И хотя это не совсем мой случай, всё равно, информация очень полезная.
Аппаратные таймеры STM32 очень навороченные, с кучей разных флагов и режимов, и примеры работы с ними — это хорошо. А уж с Bluetooth — вдвойне.
Имхо это из пушки по воробьям. У меня была схожая задача, только лента была не одна а 17. Я пытался, в том числе, решать её и малинкой, т.к. опыта не было, а классические подходы не срабатывали.
И даже с учётом этого всего малинка — это перебор. А уж для одной ленты тем более. В итоге я остановился как раз на STM32.
Я не специалист, но имхо тут фокус в том, что на аналоговой оптике можно сделать высокопроизводительный ускоритель нейросетей. И вот нейросети, которые мы будем гонять на этом ускорителе, могут быть вполне себе универсальны.
Например, вместо того, чтобы устанавливать ОС и софт для 3д моделирования, мы просто запихиваем на этот ускоритель сетку на 400 триллионов параметров, которой на вход даются нажатия клавиш, движения мышки и голос пользователя, а на выходе она дает готовую картинку, чертежи, текст, видео и всё что нужно в реалтайме.
То есть ПО вообще нет, есть сетка, которая слушает клавиши/голос и сразу выводит готовую картинку.
То же самое касается VR/AR гарнитур. Вместо того, чтобы отдельно 3д сканировать окружающее пространство, реконструировать облако точек, считать модели и делать ещё кучу всего, мы просто натягиваем одну большую сетку (или сеть менее больших сеток), пихаем ей на вход картинку + голос пользователя, и она сразу на линзы/имплант в сетчатке глаза/фемтопроектор выводит готовую дополненную/виртуальную реальность.
Иными словами, мы (почти) весь стек технологий заменяем одним жирным ИИ. Тогда узкоспециализированный ускоритель становится универсальным.
Условно говоря, зачем вам какие‑то процессоры, джаваскрипты и операционные системы, если у вас есть кристалл 1×1 см за 20$ с сеткой 200T параметров, который жрёт 10 ватт и без программирования спокойно управляет этим роботом, да еще и сам разбирается где какие у него актуаторы, датчики и обратные связи.
Имхо именно за этой штукой будущее. Оптика снимает проблему ограничения частоты, а аналоговость позволяет не тратить гору ключей на расчёты вещественных чисел. И вместе две этих особенности позволяют преодолеть тот тупик, куда сейчас пришло железо. С огромными видеокартами с ручками для переноски и всё менее заметным приростом скорости с каждым поколением CPU/GPU.
На заре эпохи компы пытались делать аналоговыми, но гонку выиграли цифровые. С появлением нейросетей ситуация должна начать меняться :)
Если говорить совсем просто: вот ~400 млрд коэффициентов, на которые надо умножать числа. Эти коэффициенты надо где‑то хранить. А ещё на них надо умножать. А ещё складывать потом и ещё кое что делать. У среднестатистического смартфона хорошо если это хотя бы в постоянную память влезет.
По‑нормальному то, что хранит коэффициенты и должно быть тем, что на них умножает. То есть должна быть память‑процессор. Желательно аналоговый чтобы не тратить тонны логических элементов на реализацию арифметики с плавающий запятой. Привет, мозг.
Вместо этого современные компы (cpu/gpu/npu/что угодно) устроены так: большая память и вычислитель, а между ними тонюсенький канал данных. У gpu вычислителей побольше и канал не такой тонкий. Но все равно проблема никуда не девается. А ещё всё сделано из аналоговых транзисторов, из которых построена цифровая логика, имитирующая аналоговые (плавные) значения с помощью чисел с плавающий запятой.
При этом прогресс замедляется, новые видеокарты требуют ручек для переноски а процессоры уже скоро будут размером с тарелку (а есть и те которые уже такие). Они там реально собираются в 30е года делать 15квт (не шутка) видеокарты, у которых охлаждающая жидкость прокачивается прямо сквозь кристалл. Видимо ламинарные потоки жидкого гелия, или ещё что‑нибудь такое удобное для бытового повседневного использования.
Оптические аналоговые чипы, которые имхо выведут прогресс из тупика, никто особо делать не хочет.
Думается мне, что если не произойдёт прорыва (который может прийти из квантовой электроники), то в компы/телефоны постепенно распространится и удешевится FPGA и всякие гибриды FPGA/GPU. Или реально появится RAM, способная на несложные вычисления.
Теоретически можно сделать FPGA/ASIC, состоящий из 400 млрд умножителей, сумматоров и ещё разных штук. Но сейчас такое будет стоить как ВПК небольшой страны.
А так — интернет 5G/6G в будущем станет спутниковым и будет буквально везде. Правда, он, скорее всего, уже не будет глобальным.
Берем техпроцесс 10 нм (или меньше) и на кремниевой пластине размером со смартфон изготавливаем миллионы антенн, заточенных под разные длины волн. Предпочтение отдавать тем длинам волн, у которых произведение вероятности их появления на их амплитуду выше. Все пойманные волны сливаем в какой‑нибудь общий котёл и из него кушаем энергию.
Предположу, что КПД будет донным, но есть ненулевая вероятность, что даже с ним может получиться что‑то сносное. По сложности изготовления — кристалл такой площади это конечно неприятно, но у нас тут требования к дефектам в разы ниже (не процессор же делаем) + на фоне ИИ упоротость размеров чипов будет нарастать, и большие кристаллы могут со временем стать обыденностью.
Ну и не стоит забывать, что квантовая электроника тоже не стоит на месте, и могут появиться какие‑нибудь квантовые диоды Шоттки и конденсаторы с запредельными КПД, но работающими только в наномасштабах, что и нужно для подобной технологии.
У меня как раз параллельный битбанг получился, просто руками за раз не одна, а сразу 16 ног переключается. Три переключения = передали по 1 разному биту сразу на 16 лент.
Имхо шикарно. Единственное — не хватает ботов, чтобы если сервер пустой, было с кем играть. Для такой игры бота написать не сложно.
Эм. Если брать протокол WS2812b, то мы на 1 диод тратим
Плюс ещё время на приём с компа и обработку.
Так точно. Светодиодов там правда не десятки тысяч, а всего чуть больше 2к. Это подсветка вокруг видеостены.
Надо было получить в играх низкий лаг и быстрое обновление. При стандартном подходе это давало 1–2 фпс.
Ток в пике 90А, просто ленты низковольтовые, а БП подобраны с запасом.
Имхо главная проблема не в загрузке CPU, а в том, что выдерживание таких точных интервалов на CPU задача не очень приятная, и по возможности её лучше скидывать на более специализированные железяки
Вот да. Насчёт есть — не уверен, по крайней мере, в стоковом Дебиане я такового не нашёл, пришлось писать самостоятельно. И всё ради возможности лочить прерывания.
Хотя лучше, конечно, просто накатить ОС реального времени.
3D принтер, способный одновременно печатать и пластиком, и металлом с вменяемым качеством — это почти революция 3D печати, существенно расширяющая сферу применимости 3D принтеров и очень сильно меняющая подход к формату приобретения бытовых устройств.
Решается. Но ИМХО было очень интересно узнать, как подобная задача решается с помощью аппаратных таймеров STM32. В своё время я делал подобное на STM32 Discovery, но интервалы в 400 нс выдерживал с помощью тучи
asm("nop")
. Без циклов.В комментариях умные люди мне объяснили про эти таймеры, а в данной статье ещё и наглядный пример, как с ними управляться в задаче, подобной той, что я решал. И хотя это не совсем мой случай, всё равно, информация очень полезная.
Аппаратные таймеры STM32 очень навороченные, с кучей разных флагов и режимов, и примеры работы с ними — это хорошо. А уж с Bluetooth — вдвойне.
Имхо это из пушки по воробьям. У меня была схожая задача, только лента была не одна а 17. Я пытался, в том числе, решать её и малинкой, т.к. опыта не было, а классические подходы не срабатывали.
И даже с учётом этого всего малинка — это перебор. А уж для одной ленты тем более. В итоге я остановился как раз на STM32.
Ходят слухи что 128 гб уже втыкать начали
Интересно, а можно ссылку?)
Я не специалист, но имхо тут фокус в том, что на аналоговой оптике можно сделать высокопроизводительный ускоритель нейросетей. И вот нейросети, которые мы будем гонять на этом ускорителе, могут быть вполне себе универсальны.
Например, вместо того, чтобы устанавливать ОС и софт для 3д моделирования, мы просто запихиваем на этот ускоритель сетку на 400 триллионов параметров, которой на вход даются нажатия клавиш, движения мышки и голос пользователя, а на выходе она дает готовую картинку, чертежи, текст, видео и всё что нужно в реалтайме.
То есть ПО вообще нет, есть сетка, которая слушает клавиши/голос и сразу выводит готовую картинку.
То же самое касается VR/AR гарнитур. Вместо того, чтобы отдельно 3д сканировать окружающее пространство, реконструировать облако точек, считать модели и делать ещё кучу всего, мы просто натягиваем одну большую сетку (или сеть менее больших сеток), пихаем ей на вход картинку + голос пользователя, и она сразу на линзы/имплант в сетчатке глаза/фемтопроектор выводит готовую дополненную/виртуальную реальность.
Иными словами, мы (почти) весь стек технологий заменяем одним жирным ИИ. Тогда узкоспециализированный ускоритель становится универсальным.
Условно говоря, зачем вам какие‑то процессоры, джаваскрипты и операционные системы, если у вас есть кристалл 1×1 см за 20$ с сеткой 200T параметров, который жрёт 10 ватт и без программирования спокойно управляет этим роботом, да еще и сам разбирается где какие у него актуаторы, датчики и обратные связи.
Наконец‑то хоть кто‑то всерьёз взялся за это.
Имхо именно за этой штукой будущее. Оптика снимает проблему ограничения частоты, а аналоговость позволяет не тратить гору ключей на расчёты вещественных чисел. И вместе две этих особенности позволяют преодолеть тот тупик, куда сейчас пришло железо. С огромными видеокартами с ручками для переноски и всё менее заметным приростом скорости с каждым поколением CPU/GPU.
На заре эпохи компы пытались делать аналоговыми, но гонку выиграли цифровые. С появлением нейросетей ситуация должна начать меняться :)
Фокус в том что у них имена — это запахи, а не звуки :)
Не задумывались вместо двух мониторов поставить один большой 50 дюймов? :)
Тогда проблемы «выше‑ниже» не будет потому что картинка будет везде, и можно будет окна на любой удобной высоте ставить.
ЕМНИП эти функции были ещё в Windows 3.1 :)
Есть мультимеднйные таймеры работающие на уровне ядра ОС, можно получить точность порядка 1 мс
Без подсветки тяжело сейчас найти хорошее железо.
Я своё упаковал в глухой черный корпус и поставил в вентилируемую кладовку. Пусть себе там светится сколько хочет :)
На фоне развития ИИ есть вероятность появления аппаратных архитектур, где память будет общая, может даже она же будет являться CPU :)
Если говорить совсем просто: вот ~400 млрд коэффициентов, на которые надо умножать числа. Эти коэффициенты надо где‑то хранить. А ещё на них надо умножать. А ещё складывать потом и ещё кое что делать. У среднестатистического смартфона хорошо если это хотя бы в постоянную память влезет.
По‑нормальному то, что хранит коэффициенты и должно быть тем, что на них умножает. То есть должна быть память‑процессор. Желательно аналоговый чтобы не тратить тонны логических элементов на реализацию арифметики с плавающий запятой. Привет, мозг.
Вместо этого современные компы (cpu/gpu/npu/что угодно) устроены так: большая память и вычислитель, а между ними тонюсенький канал данных. У gpu вычислителей побольше и канал не такой тонкий. Но все равно проблема никуда не девается. А ещё всё сделано из аналоговых транзисторов, из которых построена цифровая логика, имитирующая аналоговые (плавные) значения с помощью чисел с плавающий запятой.
При этом прогресс замедляется, новые видеокарты требуют ручек для переноски а процессоры уже скоро будут размером с тарелку (а есть и те которые уже такие). Они там реально собираются в 30е года делать 15квт (не шутка) видеокарты, у которых охлаждающая жидкость прокачивается прямо сквозь кристалл. Видимо ламинарные потоки жидкого гелия, или ещё что‑нибудь такое удобное для бытового повседневного использования.
Оптические аналоговые чипы, которые имхо выведут прогресс из тупика, никто особо делать не хочет.
Думается мне, что если не произойдёт прорыва (который может прийти из квантовой электроники), то в компы/телефоны постепенно распространится и удешевится FPGA и всякие гибриды FPGA/GPU. Или реально появится RAM, способная на несложные вычисления.
Теоретически можно сделать FPGA/ASIC, состоящий из 400 млрд умножителей, сумматоров и ещё разных штук. Но сейчас такое будет стоить как ВПК небольшой страны.
А так — интернет 5G/6G в будущем станет спутниковым и будет буквально везде. Правда, он, скорее всего, уже не будет глобальным.
По идее что‑то подобное сделать можно.
Берем техпроцесс 10 нм (или меньше) и на кремниевой пластине размером со смартфон изготавливаем миллионы антенн, заточенных под разные длины волн. Предпочтение отдавать тем длинам волн, у которых произведение вероятности их появления на их амплитуду выше. Все пойманные волны сливаем в какой‑нибудь общий котёл и из него кушаем энергию.
Предположу, что КПД будет донным, но есть ненулевая вероятность, что даже с ним может получиться что‑то сносное. По сложности изготовления — кристалл такой площади это конечно неприятно, но у нас тут требования к дефектам в разы ниже (не процессор же делаем) + на фоне ИИ упоротость размеров чипов будет нарастать, и большие кристаллы могут со временем стать обыденностью.
Ну и не стоит забывать, что квантовая электроника тоже не стоит на месте, и могут появиться какие‑нибудь квантовые диоды Шоттки и конденсаторы с запредельными КПД, но работающими только в наномасштабах, что и нужно для подобной технологии.