«Сембитные» компьютеры

4cc1b58662776d34114c01b6ad75d8c6

Сразу уточню, что термин «сембит» — авторский. Сокращенно от «semi bit», т.е. «половина бита» — частичный бит.

Мы привыкли, что минимальным размером информации является бит. Однако, информация может содержаться и в нецелом количестве бит. Например, один палец из десяти. Для целого числа бит — необходимо 4 бита, но это будет избыточным, т.к. 4 бита помещает в себя 2^4=16 вариантов, 6 вариантов будут лишними. Это распространенная практика, когда используется гораздо больший объем данных, чем нужно, ибо целые биты вмещают в себя только количество вариантов в степени двойки.

Тогда, для одного пальца из десяти достаточно log2(10)=3.32192809489 бит. Но в современных битных системах такое просто невозможно. Конструкция на битных транзисторах позволяет лишь целое число бит для любых операций.

Как же тогда может быть представлено нецелое число бит? Аналоговые компьютеры. Для большинства — это громоздкие устаревшие машины на лампах накаливания с перфокартами, 1950–1960. Однако, аналоговые компьютеры позволяют работу с «сембитами». Простым примером может служить обычная схема аналогового сумматора (https://ru.m.wikipedia.org/wiki/Сумматор) взамен битного. Т.е. сембит — это некое значение «истинности» от 0 до 1.

В процессе изучения вопроса натыкался на статью 2012 года, в которой автор сетовал на малое количество разработок в этой области. (https://habr.com/ru/articles/146680/). Прошло уже 12 лет, определеные подвижки в этом направлении есть. Особенным толчком стал ажиотаж вокруг нейронок. Хотелось бы обратить внимание на эти разработки и оценить дальнейшие перспективы.

Логика большинства современных ЭВМ построенна на булевой алгебре, двоичном коде. Тогда любые операции требуют дискретное преобразование входного сигнала в последовательность бит. Затем, совокупность бит представляет собой значение. Булева алгебра ограничена — дихотомична: истина/ложь. В то же время, в физическом мире подобные граничные состояния практически не встречаются. В том числе — в естественных языках. В физике и вовсе 100% истинность физически недостижима (принцип неопределенности Гейзенберга).

Вероятностные процессоры на мемристорах

Одним из серьезнейших ограничений в развитии авм было хранение сембитов. Одним из решений является мемристор. (https://habr.com/ru/articles/667082/). Теоретический концепт был разработан в 2008. Мемристор хранит не только 1 или 0, но и промежуточные значения. Вариантом процессоров, построенных на мемристорах называют «вероятностные процессоры». Первый такой был создан в Бостоне в 2010 году. (https://habr.com/ru/articles/102152/). В 2019 в МФТИ уже разработали мемристор на основе гафния второго поколения (https://www.cnews.ru/news/line/2019–08–28_v_mfti_sozdali_ustrojstvo).

Развитие не стоит на месте. Мемристорная матрица высокой плотности была разработана в Массачусетском технологическом институте в 2020 году. Инженеры МТИ назвали свою разработку «мозг на кристалле». (https://www.techinsider.ru/technologies/1551463-ves-mozg-na-odnom-kristalle-budushchee-memristorov-priblizhaetsya/). В 2022 году вышла книга «мемристорные компьютерные системы» (https://link.springer.com/book/10.1007/978–3–030–90582–8). В 2023 во франции создали «нейросетевой» процессор (https://www.atomic-energy.ru/news/2023/01/31/132341 Оригинал не нашел).

На данный момент, подобные вероятностные процессоры рассматриваются в основном как инструмент решения специфических задач или сопроцессоров. Но они уже сейчас показывают свою эффективность, по сравнению с «классическими». Например, по информации с wiki — «GP5 в 10 раз быстрее и в 1000 раз энергоэффективнее, чем i7».

Одной из таких специфичных задач — модели искуственного интеллекта. Ибо мнемристорные системы наиболее приближенны к реальной модели мозга. В нейросетях, работающих на классических битных процессорах синапс представлен некой совокупностью бит (64, например). Т.е. синапс может находится в одном из 2^64 состояний (1.8+E19). В то время как в мемристоре — искуственных ограничений нет, лишь физические свойства самого элемента. Операции на них являются тоже более «приближенными к реальности».

Например, чип GP5, разработанный google является такого вида сопроцессором. (https://en.m.wikipedia.org/wiki/GP5_chip).

Сембитная/аналоговая/вероятностная логика

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

Но по сути — аналоговая система может учитывать погрешность «из коробки». И эта погрешность вполне может быть конфигурируема как аппаратно, так и программно, за счет снижения производительности. Ибо битные системы являются такими же аналоговыми, просто со скрытой погрешностью. (https://habr.com/ru/articles/146608/). Т.е. формально, реальная погрешность есть всегда, но в сембитной системе она учитывается всегда.

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

Допустим, значение сембита может быть приведено к int64 с 1% погрешностью. Тогда, для двух сембит погрешность приведения к int64 будет 0.01×0.01=0.0001, или 0.01%. И т.д.

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

Системы с повышенной погрешностью отлично подойдут для мультимедиа. Например, для видеоигр. Скорость передачи данных и производительность здесь играют ключевую роль, а разница между цветом #ff0000 и #fe0000 в одном пикселе практически незаметна глазу, тем более на различных мониторах. Где-то на хабре натыкался на применение видеокарт с низкой точностью, которые давали хорошую скорость при практически отсутсвующих визуальных изменениях. Даже в лохматых 90ых битные приставки за счет эффектов телевизора улучшали картинку и вместо квадратов — получались рамытые, но более приятные глазу изображения. Да и сейчас в пиксельных играх такие фильтры широко используются.

Аналоговые устройства. Например, клавиатура с силой нажатия клавиш. Можно будет даже программно реализвать размер букв за счет силы нажатия, например. Ну и аналоговые логические компоненты. Выполнение сложных математических задач прямо на процессоре.

Производители чипа GP5 так же анонсировали возможность программирования на вероятностном языке. О вероятностном программировании (https://habr.com/ru/articles/244625/). Поэтому перспективы у аналоговых информационных систем весьма реальные. А спектр применимости может быть и не только в сфере ИИ.

© Habrahabr.ru