Да, похоже это для мазохистов. Столько усилий и 50% кончились пшиком.
Не соглашусь. Попытка "в слепую" запустить 8-ми битные библиотеки от Arduino на 32-х битной платформе без адаптации дает такой вот результат.
Стандартная HAL библиотека от производителя тоже не эффективна, содержит кучу избыточного неисполняемого кода который быстро пожирает крохотный EEPROM. В одном из проектов мне пришлось отказаться от HAL, работать с регистрами самостоятельно и компилировать с флагом -flto. Всё получилось.
Ну хоть цена уже позволяет купить, все же не 100 тыщ за камушек или "отгружаем только партией от миллиона чипов".
Микросхему пока еще можно купить без проблем в Чипдипе - 3000 руб за шт. Скорее всего они скоро закончатся, так как была произведена всего одна партия, AFAIK.
Хочу сделать пару замечаний по поводу низкой производительности МК MIK32 "Амур" наблюдаемой автором статьи.
Стандартные библиотеки для Arduino рассчитаные для работы на 8-ми битной ATmega ожидаемо не могут работать быстро на 32-х битной платформе без глубокой переработки, так как по-байтовый доступ к памяти очень медленный! Нужно всё переписывать на использование 32-х битных слов.
Код обработчика прерывания, как и весь остальной критичекий для скорости исполнения код, желательно располагать в EEPROM или в SRAM. Исполнение кода из QSPI Flash очень медленнное. Идея разработчиков микросхемы расположить в EEPROM загрузчик, а основную программу в QSPI показала свою полную непригодность!
По возможности следует использовать аппаратные блоки для работы с SPI и прочей аппаратурой, так как "bit banging" будет очень медленым.
Основной недостаток MIK32 это катастрофически малый обьем EEPROM - 8КБ для 32-х битной платформы это жутко мало и эквивалентно 2КБ для ATmega. Разместить в этом объёме какую-то полезную программу крайне затруднительно, учитывая что код инизацилизации аппаратуры достаточно громоздкий и съедает весь объём EEPROM. То же самое могу сказать и про статическое ОЗУ которого всего 16КБ. Из-за этих проблем MIK32 конкретно проигрывает 8-ми битным МК архитектуры AVR8. Ждем следующей версии этого МК. :-)
Вы не понимаете самого главного - необходимость регулярно менять батарейки во всех этих датчиках. При таком охвате как у автора статьи на диване полежать не получиться. :-)
Предположим, что на каждом поколении было по 100 особей, всего "два из ста" = 4950 комбинаций надо протестировать на каждом этапе или 9900000 тестов за 2000 поколений. Предположим, что на тестирование одной особи потребуется около 1 секунды (старт ПЛИС, подача входного сигнала в разном состоянии, проверка выхода). Итого 2750 часов на одном ПЛИС. Задача хорошо параллелится, и на 10-ти ПЛИС решается за полторы недели. Эмулятор того времени скорее всего будет решать эту же задачу гораздо дольше или потребует суперкомпьютера. :-)
Я где-то читал, что при названии техпроцесса сейчас исходят из минимально различимой "фичи" которую можно вытравить на поверхности кристалла. Но у каждого эта "фича" своя. :)
Похоже для Тюмени это норма. Я знаком с еще одним таким случаем - человек до середины 2000-х был хирургом, сейчас командует кабелеукладчиками в телекоммуникационной (читай "Ай-Ти") компании. Весьма странный дауншифтинг.
Все перечисленные Вами известные люди в медицине не преуспели ни на грамм. Это замечательно, что они в раннем возрасте осознали свою профнепригдность и нашли себя в совсем другой сфере, а не стали "посредственными врачевателями".
Я помню что в статье упоминалось про паразитные "индуктивные" связи внутри самой микросхемы, больше ничего не помню. :)
Подозреваю, что этот эксперимент был не единственным в своём роде. Скорее всего были подобные опыты от нескольких исследователей и у всех был различный результат. :-)
Дело в том, что нейросети, которые у нас сейчас есть, они обучены на каком-то датасете и не могут сгенерировать что-то принципиально отличное, только компиляцую из того, что сеть видела ранее. А вот генетический алгоритм сопособен создавать новое, он вообще может решить любую задачу если обеспечить соответствующие условия для "естественного отбора".
Если кто-то желает погрузиться в теорему Гёделя, то рекомендую к прочтению почти детскую книгу Дугласа Хофштадтера "Гёдель, Эшер, Бах: Бесконечная золотая цепь" ("Gedel, Escher, Bach: En Eternal Golden Braind" или GEB). Очень клёвая книга для будущих ученых - на гране науки, философии и отрыва башки.
На мой взгляд было бы гораздо интересней исследовать генетический алгоритм. Более осмысленный реультат мог бы получиться при меньшем числе итераций (поколений).
В конце 1990-х читал статью про то, как исследователи получили на ПЛИС цифровую схему детектирования сигнала частотой 1 кГц всего за ~2000 поколений применяя генетический алгоритм. Но был нюанс - при изменнии температуры окружающей среды на более чем 5 градусов схема переставала работать. После детального анализа выяснилось, что "природа" сгенерировала схему используя паразитные взаимодействия между логическими элементами внутри микросхемы ПЛИС, которые при изменении температуры переставали работать так как требовалось для алгоритма. Вот такая вот она природа, не предсказуемая.
Без Bad Apple будет несчитово. :)
Статью читал с помощью нейросети ? ;-)
Я тестировал АЦП на MIK32, 12 бит там нет - снизу и сверху присутствует сильная нелинейность. Vref = 1.8V создает массу схемотехнических проблем.
Не соглашусь. Попытка "в слепую" запустить 8-ми битные библиотеки от Arduino на 32-х битной платформе без адаптации дает такой вот результат.
Стандартная HAL библиотека от производителя тоже не эффективна, содержит кучу избыточного неисполняемого кода который быстро пожирает крохотный EEPROM. В одном из проектов мне пришлось отказаться от HAL, работать с регистрами самостоятельно и компилировать с флагом -flto. Всё получилось.
Микросхему пока еще можно купить без проблем в Чипдипе - 3000 руб за шт. Скорее всего они скоро закончатся, так как была произведена всего одна партия, AFAIK.
Хочу сделать пару замечаний по поводу низкой производительности МК MIK32 "Амур" наблюдаемой автором статьи.
Стандартные библиотеки для Arduino рассчитаные для работы на 8-ми битной ATmega ожидаемо не могут работать быстро на 32-х битной платформе без глубокой переработки, так как по-байтовый доступ к памяти очень медленный! Нужно всё переписывать на использование 32-х битных слов.
Код обработчика прерывания, как и весь остальной критичекий для скорости исполнения код, желательно располагать в EEPROM или в SRAM. Исполнение кода из QSPI Flash очень медленнное. Идея разработчиков микросхемы расположить в EEPROM загрузчик, а основную программу в QSPI показала свою полную непригодность!
По возможности следует использовать аппаратные блоки для работы с SPI и прочей аппаратурой, так как "bit banging" будет очень медленым.
Основной недостаток MIK32 это катастрофически малый обьем EEPROM - 8КБ для 32-х битной платформы это жутко мало и эквивалентно 2КБ для ATmega. Разместить в этом объёме какую-то полезную программу крайне затруднительно, учитывая что код инизацилизации аппаратуры достаточно громоздкий и съедает весь объём EEPROM. То же самое могу сказать и про статическое ОЗУ которого всего 16КБ. Из-за этих проблем MIK32 конкретно проигрывает 8-ми битным МК архитектуры AVR8. Ждем следующей версии этого МК. :-)
Вы не понимаете самого главного - необходимость регулярно менять батарейки во всех этих датчиках. При таком охвате как у автора статьи на диване полежать не получиться. :-)
А если не хватит, то Вы в любой момент можете поставить на проц стакан с жидким азотом и разогнать его до 12.7 ГГц. ;-)
Предположим, что на каждом поколении было по 100 особей, всего "два из ста" = 4950 комбинаций надо протестировать на каждом этапе или 9900000 тестов за 2000 поколений. Предположим, что на тестирование одной особи потребуется около 1 секунды (старт ПЛИС, подача входного сигнала в разном состоянии, проверка выхода). Итого 2750 часов на одном ПЛИС. Задача хорошо параллелится, и на 10-ти ПЛИС решается за полторы недели. Эмулятор того времени скорее всего будет решать эту же задачу гораздо дольше или потребует суперкомпьютера. :-)
Проблема в том, что прослойка кода на Пайтоне с каждым годом все толще и толще.
Я где-то читал, что при названии техпроцесса сейчас исходят из минимально различимой "фичи" которую можно вытравить на поверхности кристалла. Но у каждого эта "фича" своя. :)
В статье было про реальную ПЛИС, откуда Вы взяли про эмулятор ?
В техпроцессе 2nm GAA-FET от IBM толщина диэлектрика составляет 5нм, то есть около 9-ти периодов кристаллической решетки.
А теперь отгадайте, где здесь 2 нм и почему эта цифра присутствует в названии ? :)
Достаточно просто отказатся от Python и Java, и вернуться к истокам - к C и C++ сделав упор на оптимизацию.
Похоже для Тюмени это норма. Я знаком с еще одним таким случаем - человек до середины 2000-х был хирургом, сейчас командует кабелеукладчиками в телекоммуникационной (читай "Ай-Ти") компании. Весьма странный дауншифтинг.
Все перечисленные Вами известные люди в медицине не преуспели ни на грамм. Это замечательно, что они в раннем возрасте осознали свою профнепригдность и нашли себя в совсем другой сфере, а не стали "посредственными врачевателями".
Я помню что в статье упоминалось про паразитные "индуктивные" связи внутри самой микросхемы, больше ничего не помню. :)
Подозреваю, что этот эксперимент был не единственным в своём роде. Скорее всего были подобные опыты от нескольких исследователей и у всех был различный результат. :-)
Оригинальный текст статьи вообще написан с юморком. Чувак явно имел доступ к хорошим ресурсам за просто так и развлекался как мог. :-)
Дело в том, что нейросети, которые у нас сейчас есть, они обучены на каком-то датасете и не могут сгенерировать что-то принципиально отличное, только компиляцую из того, что сеть видела ранее. А вот генетический алгоритм сопособен создавать новое, он вообще может решить любую задачу если обеспечить соответствующие условия для "естественного отбора".
Если кто-то желает погрузиться в теорему Гёделя, то рекомендую к прочтению почти детскую книгу Дугласа Хофштадтера "Гёдель, Эшер, Бах: Бесконечная золотая цепь" ("Gedel, Escher, Bach: En Eternal Golden Braind" или GEB). Очень клёвая книга для будущих ученых - на гране науки, философии и отрыва башки.
На мой взгляд было бы гораздо интересней исследовать генетический алгоритм. Более осмысленный реультат мог бы получиться при меньшем числе итераций (поколений).
В конце 1990-х читал статью про то, как исследователи получили на ПЛИС цифровую схему детектирования сигнала частотой 1 кГц всего за ~2000 поколений применяя генетический алгоритм. Но был нюанс - при изменнии температуры окружающей среды на более чем 5 градусов схема переставала работать. После детального анализа выяснилось, что "природа" сгенерировала схему используя паразитные взаимодействия между логическими элементами внутри микросхемы ПЛИС, которые при изменении температуры переставали работать так как требовалось для алгоритма. Вот такая вот она природа, не предсказуемая.