The Kernel-Bridge Framework

Тема в разделе "WASM.PROJECTS", создана пользователем HoShiMin, 18 ноя 2018.

  1. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Хотелось бы, но у AngelScript именно в этом случае большие преимущества: статическая типизация, работа с целыми числами и очень похожий на плюсы синтаксис. Плюсовик освоит легко, большинство конструкций один в один из плюсов. И никогда не будет сомнений в типах аргументов.
    Из популярного подошёл бы питон с ctypes, но уж больно он громадный.
     
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    этот цикл позволяет жечь проц из юма == если тепловая защита не срабатывает, то может и пожарчик выйти.
     
  3. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Да ничего он не жжёт, аналог обычного while (true);. Вряд ли он даже на 10 градусов сумеет разогреть процессор.
    Настоящие алгоритмы-печки - это разные умножения матриц на FMA/AVX, как в Линпаке, или поиск чисел Мерсенна и их тестирование по Лукасу-Лемеру. Глянь на Prime95, вот это настоящий кочегар.
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ну хз, Haxe тоже статически типизирован, похож на смесь плюсов и джаваскрипта (формально больше всего похож на экшнскрипт из времен флеша, но нормальный язык). Я бы не стал желать писать скрипты на плюсах. Кстати посмотри еще ChaiScript, только там вроде плюсы должны быть не меньше стандарта 17 года.
     
  5. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    HoShiMin,

    Лишь единственный раз за всё время была попытка взять ядро под трассировку. Это было очень давно в виде двух вариантов, ты врядле знаешь и эту инфу не найдёшь. Попытка реализации ядерной трассировки, тогда активно реверсилось ядро, это был викс ресурс как минимум два человека тут это знают. Вторая реализация это была частичная трассировка ядра при работе с кодом обрабатывающем ядерные сервисы, эта задача была успешной. Третья попытка связанная с трассировкой была связана с механизмом памяти, это была полная неудача(крэши при серии задач по подмене памяти). Это вторая версия форума и та инфа тут не сохранилась.
     
  6. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    неа, другие схемы так жарить не могут == происходит переключение регистра из нуля в #FF..FF, то бишь наведённые токи максимальны в силу полного переключения регистра и максимальной частоты переключения. :)
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Virustech? Или может тот самый злополучный Инде-форум, куда все с васма ходили тебя троллить?
     
    Indy_ нравится это.
  8. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Rel,

    Да, вт. Но дампов нет, может есть где то на резервных дисках но это долго искать. ТС думаю интересна была бы та попытка взять ядро под отладку. В частности нерешаемые трудности.
     
  9. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Язык-то, может, и хороший, но скачал сурсы... Там всё на OCaml'e и сурсов не меньше, чем у питона. Никак ты его не утащишь в ядро, даже пытаться нет смысла. Да он и не позиционируется как встраиваемый.

    Стандарт не проблема, у меня C++20. Глянул, и вот какое дело: чем-то на JS похож, но всё же другой - его тоже придётся изучать. И в плане простоты AngelScript выглядит лучше: синтаксис привычный и, опять же, типизация.

    Кстати, из обсуждений статьи по ChaiScript - не такой уж AngelScript и ноунейм:

    upload_2020-7-21_23-19-38.png

    В общем, по совокупности остановлюсь на AS, мне он приглянулся.
    --- Сообщение объединено, 21 июл 2020 ---
    А ты возьми и убедись сам, что твой цикл хорошо если на десять градусов разогреет процессор, а Prime95 в AVX2+FMA уничтожит любую систему охлаждения. Уж на что у меня могучий Noctua NH-D15 (ты только глянь, почти полтора килограмма хромированной меди!), а в прайме процессор гонится как BMW - до ста за три секунды!
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Эмм, я же тебе говорил, что тебе нужен HashLink, он написан на сишечке. На Окамле написан компилятор в байткод, который ты потом будешь интерпретировать через HashLink. Альтернативно там есть реализация Neko виртуальной машины. И Cppia, но ее не смотрел. Почитай сначала перед тем, как делать выводы.
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    полевые испытания проводились :) это физИка, ети её налево + цикл-то мб многопоточным :grin: однако, нормальная работа защиты от перегрева просто скидывает частоту и пиковые температуры легко роняются, однако ж роняется и скорость системы.. но лучше так, чем прожарка :)
     
  12. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Да, глянул. Всё-таки, фииииг знает. На первый взгляд, кода не очень много, но требуются сторонние либы.
    Где-то в сурсах заметил зависимость от WinSock. Всё это придётся выпиливать. В общем, всё равно не очень подходит для портирования в ядро.

    Когда говорят, что проводились испытания, я азартно потираю ладошки, потому что сейчас мы проведём свои.

    Без нагрузки - 33 градуса.

    Итак, твой вариант:
    Код (Text):
    1.  
    2. .CODE
    3.  
    4. Heat PROC PUBLIC
    5.     xor rax, rax
    6. @Loop:
    7.     not rax
    8.     jmp @Loop
    9.     ret
    10. Heat ENDP
    11.  
    12. END
    13.  

    upload_2020-7-22_0-10-19.png

    Prime95, пресет Small FFT с AVX2+FMA:
    upload_2020-7-22_0-12-54.png
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Там да, сокеты и mbedtls для реализации https клиента, тебе оно не нужно. Более того, вроде их нет в базовой пачке. Но нужно иметь ввиду, что в HashLink только JIT, там нет интерпретатора. Так что для ядра это наверное слишком, канеш это значительно быстрее, но слишком.
     
  14. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    и в скольких потоках запускал ? :)
     
  15. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Статически типизированных скриптовых языков не много, было бы классно иметь что-то небольшое типа Lua, но со статической типизацией и отдельным компилятором в байткод. Есть новый проект, который вроде ведет русский программист, называется Umka. Чисто со стороны выглядит весьма интересно, но до продакшена ему еще далеко.
    --- Сообщение объединено, 22 июл 2020 ---
    https://github.com/vtereshkov/umka-lang
     
  16. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    HoShiMin, но очень советую НЕ ОТКЛЮЧАТЬ ТЕПЛОВУЮ ЗАЩИТУ С ТАКИМИ НЯШКАМИ == там проблема не просто перегрева, а ЛОКАЛЬНОГО ПЕРЕГРЕВА == против такого не спасёт и жидкостное охлаждение == ТОЛЬКО СБРОС ЧАСТОТЫ :)
     
  17. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Оба по 16. Специально ведь диспетчер заскринил, чтобы показать, что все ядра загружены.
     
  18. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    потоков можно запускать неограниченно, дабы увеличивать вероятность захвата проца/ядра + там возможны варианты юзанья всех доступных регистров :)
     
  19. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    А вот это уже интересно. Синтаксис приятный (с Go знаком, воспринимается легко), бенчмарк радует, сурсов мало, нет зависимостей.
    Пожалуй, хороший кандидат на портирование. Завтра ещё гляну, как у него с вызовом нативок.

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

    Наоборот, потоков нужно запускать ровно по числу ядер, а задавать приоритеты. В реалтайме твой поток будет работать почти эксклюзивно.
    Но нет, твой код по-хорошему процессор не нагреет. Ты даже сравни энергопотребление (или тепловыделение? - не важно) 95 Ватт против 245.
    AVX - самые горячие блоки. Если хочешь разогреть процессор - упирайся в них.
     
  20. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    для реалтайма достаточно и одного потока, однако я говорю про случаи, где задать приоритет низя в силу недостаточных прав :grin:
    главная фишка заключается в том, чтоб скорость переключения регистра была максимально близка к рабочей частоте.
    --- Сообщение объединено, 22 июл 2020 ---
    локальный перегрев коварен тем, что пиковая теплота может скакать за красную линию на малое время и сенсоры такое могут даже не детектить (такие скачки чреваты физ повреждением проца, кои сразу незаметны, но со временем может получаться лавинообразный эффект).