home.social

#branch_prediction — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #branch_prediction, aggregated by home.social.

  1. Процессор в вашем компьютере угадывает будущее. И ошибается в 5% случаев

    В прошлую пятницу я объяснял джуну, почему его код на отсортированном массиве работает в шесть раз быстрее, чем на неотсортированном. Тот же массив, тот же алгоритм, и те же данные. Просто в другом порядке. Джун смотрел на меня как на сумасшедшего и, честно говоря, я его понимаю. Потому что ответ звучит безумно: процессор внутри вашего ноутбука постоянно пытается предсказать будущее. Буквально. Он гадает, какая ветка if выполнится ещё до того, как условие будет вычислено. И на отсортированных данных ему угадывать проще. Ну, давайте разбираться.

    habr.com/ru/articles/1013098/

    #branch_prediction #предсказание_ветвлений #оптимизация_кода #cpu #производительность #алгоритмы #архитектура_процессоров #spectre #конвейер

  2. Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода

    Совершать невозможное и раздавать пинки здравому смыслу — в этом и состоит жизнь членов Гуррен-Дана! (C) Камина Эта статья вступает в техническую полемику со статьей 2015 года за авторством Atakua , подходы из которой я и атакую. Atakua исследует 7 видов интерпретаторов байткода, но делает это без уважения - быстрейшей оказывается двоичная трансляция, которая, по сути, уже не интерпретатор байткода, а форма Ahead-Of-Time компилятора. Эта двоичная трансляция транслирует байткод в машинный код, представляющий собой цепочку вызовов скомпилированных сервисных процедур. Тех самых, что в интерпретаторе байткода отвечают за выполнение каждого опкода. Но Atakua не выжал из интерпретаторов байткода всю скорость которая возможна. Так что эта статья - туториал: как написать интерпретатор байткода, который может обгонять JIT/AOT-компиляцию по скорости. Интересно? Читайте дальше! Бенчмарк прилагается. Будет немного хардкора и ни одной сгенерированной нейросетью картинки!

    habr.com/ru/articles/856480/

    #interpreter #simulation #branch_prediction #threaded #binary_translation #jit #aot #tail_recursion #tail_call_optimization #байткод

  3. Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода

    Совершать невозможное и раздавать пинки здравому смыслу — в этом и состоит жизнь членов Гуррен-Дана! (C) Камина Эта статья вступает в техническую полемику со статьей 2015 года за авторством Atakua , подходы из которой я и атакую. Atakua исследует 7 видов интерпретаторов байткода, но делает это без уважения - быстрейшей оказывается двоичная трансляция, которая, по сути, уже не интерпретатор байткода, а форма Ahead-Of-Time компилятора. Эта двоичная трансляция транслирует байткод в машинный код, представляющий собой цепочку вызовов скомпилированных сервисных процедур. Тех самых, что в интерпретаторе байткода отвечают за выполнение каждого опкода. Но Atakua не выжал из интерпретаторов байткода всю скорость которая возможна. Так что эта статья - туториал: как написать интерпретатор байткода, который может обгонять JIT/AOT-компиляцию по скорости. Интересно? Читайте дальше! Бенчмарк прилагается. Будет немного хардкора и ни одной сгенерированной нейросетью картинки!

    habr.com/ru/articles/856480/

    #interpreter #simulation #branch_prediction #threaded #binary_translation #jit #aot #tail_recursion #tail_call_optimization #байткод

  4. Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода

    Совершать невозможное и раздавать пинки здравому смыслу — в этом и состоит жизнь членов Гуррен-Дана! (C) Камина Эта статья вступает в техническую полемику со статьей 2015 года за авторством Atakua , подходы из которой я и атакую. Atakua исследует 7 видов интерпретаторов байткода, но делает это без уважения - быстрейшей оказывается двоичная трансляция, которая, по сути, уже не интерпретатор байткода, а форма Ahead-Of-Time компилятора. Эта двоичная трансляция транслирует байткод в машинный код, представляющий собой цепочку вызовов скомпилированных сервисных процедур. Тех самых, что в интерпретаторе байткода отвечают за выполнение каждого опкода. Но Atakua не выжал из интерпретаторов байткода всю скорость которая возможна. Так что эта статья - туториал: как написать интерпретатор байткода, который может обгонять JIT/AOT-компиляцию по скорости. Интересно? Читайте дальше! Бенчмарк прилагается. Будет немного хардкора и ни одной сгенерированной нейросетью картинки!

    habr.com/ru/articles/856480/

    #interpreter #simulation #branch_prediction #threaded #binary_translation #jit #aot #tail_recursion #tail_call_optimization #байткод

  5. Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода

    Совершать невозможное и раздавать пинки здравому смыслу — в этом и состоит жизнь членов Гуррен-Дана! (C) Камина Эта статья вступает в техническую полемику со статьей 2015 года за авторством Atakua , подходы из которой я и атакую. Atakua исследует 7 видов интерпретаторов байткода, но делает это без уважения - быстрейшей оказывается двоичная трансляция, которая, по сути, уже не интерпретатор байткода, а форма Ahead-Of-Time компилятора. Эта двоичная трансляция транслирует байткод в машинный код, представляющий собой цепочку вызовов скомпилированных сервисных процедур. Тех самых, что в интерпретаторе байткода отвечают за выполнение каждого опкода. Но Atakua не выжал из интерпретаторов байткода всю скорость которая возможна. Так что эта статья - туториал: как написать интерпретатор байткода, который может обгонять JIT/AOT-компиляцию по скорости. Интересно? Читайте дальше! Бенчмарк прилагается. Будет немного хардкора и ни одной сгенерированной нейросетью картинки!

    habr.com/ru/articles/856480/

    #interpreter #simulation #branch_prediction #threaded #binary_translation #jit #aot #tail_recursion #tail_call_optimization #байткод