Опис послуги
ПерекладЯ низькорівневий розробник, який працює впритул до залізо. Уже більше десяти років пишу і вручну оптимізую асемблер для x86 і ARM, видавлюючи продуктивність там, де важливий кожен такт і кожна лінія кешу. Коли гарячий цикл гальмує весь продукт, я розбираю його на рівні інструкцій, точно розумію, як процесор його виконує, і переписую так, щоб конвеєр не простоював, переходи добре передбачалися, а доступ до пам'яті був дружній до кешу. Це не звичайна прикладна розробка: я читаю розібраний код так само вільно, як інші читають вихідники, і міркую про регістри, SIMD-доріжках, вирівнюванні і мікроархітектурі, а не про фреймворки.
Моя повсякденна робота — це ручна оптимізація критичних до швидкості ділянок, акуратне профілювання і чесні замісяння до й після, щоб виграш був видний у цифрах, а не тільки на словах. Роблю відлагодження на рівні інструкцій, коли збій або тонка помилка проявляються тільки в оптимізованій збірці, і проводжу легальний реверс-інжиніринг: відновити втрачену документацію, розібратися в недокументованій поведінці вашого ж компонента або супровідити софт, чий бінарник розійшовся з вихідниками. Пишу чистий, прокоментований асемблер, який зможе прочитати й звичайний інженер, і завжди тримаю поряд переносимий еталонний варіант, щоб код залишався поддерживаємим.
Покажіть, де болить: кодек, математичне ядро, парсер, внутрішній цикл фізики, прошивочна процедура. Я замірю, знайду справжнє вузьке місце замість здогадок і відам оптимізовану, протестовану версію з цифрами на підтвердження.
— Асемблер x86 і ARM, написаний і оптимізований вручну
— SIMD-векторизація: SSE, AVX і NEON
— Профілювання, бенчмарки й аналіз гарячих ділянок
— Відлагодження оптимізованих збірок на рівні інструкцій
— Реверс-інжиніринг і розібрання для супроводу
— Тюнінг кешу, вирівнювання і передбачення переходів
Моя повсякденна робота — це ручна оптимізація критичних до швидкості ділянок, акуратне профілювання і чесні замісяння до й після, щоб виграш був видний у цифрах, а не тільки на словах. Роблю відлагодження на рівні інструкцій, коли збій або тонка помилка проявляються тільки в оптимізованій збірці, і проводжу легальний реверс-інжиніринг: відновити втрачену документацію, розібратися в недокументованій поведінці вашого ж компонента або супровідити софт, чий бінарник розійшовся з вихідниками. Пишу чистий, прокоментований асемблер, який зможе прочитати й звичайний інженер, і завжди тримаю поряд переносимий еталонний варіант, щоб код залишався поддерживаємим.
Покажіть, де болить: кодек, математичне ядро, парсер, внутрішній цикл фізики, прошивочна процедура. Я замірю, знайду справжнє вузьке місце замість здогадок і відам оптимізовану, протестовану версію з цифрами на підтвердження.
— Асемблер x86 і ARM, написаний і оптимізований вручну
— SIMD-векторизація: SSE, AVX і NEON
— Профілювання, бенчмарки й аналіз гарячих ділянок
— Відлагодження оптимізованих збірок на рівні інструкцій
— Реверс-інжиніринг і розібрання для супроводу
— Тюнінг кешу, вирівнювання і передбачення переходів