Универзитет у Београду
Катедра за рачунарство и информатику

ПЛАТО

Програмски језици и алати

Статичко профилисање засновано на машинском учењу

Ова страница представља истраживачки пројекат настао у сарадњи Математичког факултета Универзитета у Београду и компаније Oracle. Пројекат се бави применом машинског учења за предвиђање профила у компајлеру GraalVM Native Image, који преводи програме пре извршавања. Модели предвиђају вероватноће гранања и учесталост извршавања метода. Ова предвиђања усмеравају одлуке компајлера о уметању тела метода, оптимизацијама петљи, распореду кода и односу између брзине извршавања и величине извршне датотеке.

Профил програма описује његово понашање током извршавања, укључујући вероватноће гранања и учесталост извршавања метода и основних блокова. Код динамичког профилисања заснованог на инструментацији, оптимизација вођена профилом (PGO) прикупља ове податке извршавањем инструментоване верзије програма над репрезентативним радним оптерећењима, а затим поново преводи апликацију уз прикупљени профил. Динамичко профилисање је стандардни приступ добијању висококвалитетних профила за апликације високих перформанси. Додатно превођење и извршавање ради профилисања продужавају поступак изградње, док инструментација повећава време извршавања и потрошњу меморије. Ови трошкови се нагомилавају у континуираној интеграцији и могу премашити ограничења ресурса уграђених система. Програмери морају да осмисле репрезентативна радна оптерећења и одржавају их како се код мења, а настала сложеност и захтеви за ресурсима ограничавају примену овог приступа. Статички профајлер предвиђа профил из кода програма током превођења. Тако компајлер добија податке о профилу у једном поступку изградње, без извршавања апликације која се преводи ради профилисања. Модели машинског учења, претходно обучени на профилима других програма, уче обрасце који омогућавају тачна предвиђања.

Статичко профилисање повезује компаније и универзитете више од три деценије. На конференцији MICRO 1994, Wu и Larus, тада у компанији Sequent Computer Systems и на универзитету University of Wisconsin–Madison, представили су темељни рад о статичкој анализи учесталости гранања и профила програма. Систем VESPA, који су на конференцији OOPSLA 2021 представили истраживачи компаније Facebook, данас Meta, и универзитета Federal University of Minas Gerais (UFMG), користи неуронску мрежу за статичко профилисање при оптимизацији бинарног кода. Rotem и Cummins у компанији Meta користе машинско учење за оптимизацију вођену профилом без профила саме апликације. Raman и Li у компанији Google уче вероватноће гранања из радних оптерећења центара података. Овај пројекат доноси статичко профилисање засновано на машинском учењу у Oracle GraalVM Native Image, у коме је доступно као уграђена могућност.

Изабрани радови

Изабрано је седам радова. Шест је објављено. Један је у току.

Profiling Beyond IR: Method-Signature Embeddings for Static Profiling

Статус: У току.

Аутори: Stefan Milenković, Lazar Milikić, Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović и Milena Vujošević Janičić.

GraalNN претвара токене потписа метода у векторе и обједињује их механизмом пажње, а затим резултат спаја са својствима графа тока контроле ради предвиђања вероватноће гранања.
GraalNN · Слика 2. Векторске репрезентације потписа метода придружују се репрезентацији графа тока контроле пре предвиђања вероватноћа гранања. Отвори у пуној величини.
GraalMHC засебно разлаже имена пакета, класе и метода на токене, претвара их у векторе и обједињује. Добијене векторе додаје својствима модификатора приступа, потписа, међурепрезентације и тока података ради класификације учесталости извршавања метода.
GraalMHC · Слика 3. Векторске репрезентације имена пакета, класе и метода комбинују се са изворним својствима ради класификације учесталости извршавања метода. Отвори у пуној величини.

Слика за GraalNN приказује разлагање потписа метода на токене и њихово кодирање у сажету репрезентацију која се придружује својствима графа тока контроле ради предвиђања вероватноћа гранања. Слика за GraalMHC приказује засебно кодирање имена пакета, класе и метода и њихово додавање постојећим својствима програма. На основу њих методе се класификују као хладне или топле, што усмерава стратегију њиховог превођења.

Имена пакета, класа и метода садрже семантичке назнаке које структурна својства програма остављају неискоришћеним. Овај рукопис додаје сажете векторске репрезентације идентификатора у два профајлера за GraalVM Native Image.

У поређењу са основном верзијом без векторских репрезентација имена, проширење система GraalNN смањује величину бинарних датотека за Barista за 4.14% и време превођења за 1.58% на нивоу O2. На нивоу O3 смањења достижу 6.53% и 5.51%, уз непромењене или благо побољшане перформансе извршавања. Проширење система GraalMHC смањује величину бинарних датотека до приближно 11%, уз губитак перформанси извршавања од неколико процената. Подаци његових наменских векторских репрезентација заузимају 2.77 MB, у поређењу са 163 MB за GloVe.

GraalMHC++: A Tunable ML Framework for Size-Aware Optimizing Compilation

Публикација или скуп: Journal of Systems and Software (Elsevier).

Датум: октобар 2026.

Статус: Објављено.

ScienceDirect.

Тематски број Special Issue on AI Techniques for Performance, Reliability, and Sustainability of Modern Software Systems.

Аутори: Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović и Milena Vujošević Janičić.

Статичка својства из кода метода, међурепрезентације компајлера Graal и графа тока података улазе у ансамбл XGBoost. Његов резултат се пореди са подесивим прагом за класификацију метода као хладних или топлих.
Статичка својства метода улазе у један модел XGBoost, а подесиви праг одређује превођење за хладне или топле методе. Отвори у пуној величини.

Слика изнад приказује статичка својства издвојена из потписа метода, модификатора приступа, репрезентације у компајлеру и графа тока података. Један модел XGBoost претвара ова својства у оцену учесталости извршавања, а подесиви праг претвара оцену у класификацију метода као хладних или топлих. Та класификација одређује превођење усмерено на мању величину или на боље перформансе.

Оптимизације попут уметања тела метода и одмотавања петљи могу повећати бинарне датотеке чак и када се примењују на код који се ретко извршава. Праг одлучивања доступан је као опција компајлера, што омогућава различите односе величине и перформанси без обучавања и дистрибуције засебних модела.

На микросервисима Barista и апликацијама Renaissance, на нивоима O2 и O3, прагови од 0.1 до 0.7 смањују величину бинарних датотека за 8% до 32%, уз губитак перформанси од 1% до 8%. Праг од 0.3 даје бинарне датотеке мање за 12% до 21%, уз губитак перформанси од 1% до 3%. Агресивнији праг од 0.9 доноси уштеде у величини до 43%. Оквир је интегрисан у Oracle GraalVM Native Image.

The Promise of Static Profiling: Exploring the Limits

Публикација или скуп: MoreVMs Workshop, Programming 2026, Минхен, Немачка.

Датум: март 2026.

Статус: Објављено.

ACM Digital Library.

Аутори: Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović и Milena Vujošević Janičić.

Извршавање ради динамичког профилисања даје измерене профиле. Изабране врсте профила се задржавају, а превођење вођено профилом производи оптимизован извршни програм за евалуацију.
Поступак евалуације издваја појединачне врсте профила како би измерио потенцијал идеалног статичког профајлера. Отвори у пуној величини.

Слика изнад приказује динамичко профилисање праћено избором профила гранања, броја позива, виртуелних позива или монитора, појединачно или у комбинацији. Задржани профили усмеравају превођење, а евалуација добијених програма процењује побољшања перформанси и величине бинарних датотека која би идеалан статички профајлер могао да постигне за иста радна оптерећења.

Већина статичких профајлера предвиђа понашање гранања, док је вредност других врста профила мање истражена. Процене важе за испитана радна оптерећења у оквиру модела профилисања компајлера.

На 31 самосталној апликацији и 7 микросервисних апликација, комбиновање све четири врсте профила побољшава перформансе извршавања самосталних апликација за 25% и пропусност микросервиса за 40%. Такође смањује величину бинарних датотека за 20.7% и 30%, редом. Резултати издвајају предвиђање броја позива и виртуелних позива као перспективне правце проширивања статичког профилисања изван вероватноћа гранања.

GraalMHC: ML-Based Method-Hotness Classification for Binary-Size Reduction in Optimizing Compilers

Публикација или скуп: International Conference on Compiler Construction (CC), Сиднеј, Аустралија.

Датум: јануар 2026.

Статус: Објављено.

ACM Digital Library.

Аутори: Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović и Milena Vujošević Janičić.

Метод heapSort представљен је својствима изворног кода, међурепрезентације и тока података, која ансамбл XGBoost користи да предвиди учесталост извршавања метода.
Својства метода издвојена из кода и графова компајлера покрећу класификацију учесталости извршавања помоћу модела XGBoost. Отвори у пуној величини.

Слика изнад приказује својства издвојена из потписа метода, модификатора приступа, репрезентације у компајлеру и графа тока података, која се затим прослеђују класификатору XGBoost. Добијена ознака хладне или топле методе усмерава Oracle GraalVM Native Image да за хладне методе даје предност мањем коду, а за топле методе оптимизацијама усмереним на перформансе.

Примена оптимизација усмерених на перформансе на методе које се ретко извршавају повећава величину бинарних датотека без одговарајућег побољшања перформанси извршавања.

Три засебно обучена модела нуде различите односе величине и перформанси. S1 смањује величину бинарних датотека за 9% до 13%, уз губитак перформанси од 1% до 2%. S2 постиже смањења од 15% до 25%, уз губитак од 3% до 5%, док S3 достиже смањења од 17% до 35%, уз губитак од 5% до 7%. Евалуација такође бележи време превођења краће за 7% до 10%.

GraalNN: Context-Sensitive Static Profiling with Graph Neural Networks

Публикација или скуп: International Symposium on Code Generation and Optimization (CGO), Лас Вегас, САД.

Датум: март 2025.

Статус: Објављено.

ACM Digital Library.

Аутори: Lazar Milikić, Milan Čugurović и Vojin Jovanović.

GraalNN комбинује графове тока контроле позиваоца и позване методе током уметања тела метода, кодира структуру графа графовском неуронском мрежом и предвиђа вероватноће гранања неуронском мрежом са пропагацијом унапред.
Кодирање графа и закључивање неуронском мрежом производе профиле гранања, уз додавање контекста позиваоца током уметања тела метода. Отвори у пуној величини.

Слика изнад приказује граф тока контроле метода кодиран графовском неуронском мрежом, након чега следи предвиђање вероватноћа гранања. Током уметања тела метода, граф позиваоца се пре кодирања комбинује са графом позване методе. Тако добијени профили гранања одражавају контекст позива и усмеравају оптимизацију компајлера.

Учење непосредно из графова тока контроле смањује потребу за ручним осмишљавањем својстава која описују структуру програма.

Интегрисан у GraalVM Native Image, оквир постиже убрзање извршавања од 10.13% по геометријској средини на стандардним индустријским бенчмарковима, уз повећање величине бинарних датотека од 2.94%, у односу на превођење без профила. Са оптимизационим буџетом O3, стварне микросервисне апликације остварују повећање пропусности од 13.16%, уз повећање величине бинарних датотека од 5.05%, у односу на превођење без профила са истим буџетом.

GraalSP: Polyglot, Efficient, and Robust Machine Learning-Based Static Profiler

Публикација или скуп: Journal of Systems and Software (Elsevier).

Датум: јул 2024.

Статус: Објављено.

ScienceDirect.

Аутори: Milan Čugurović, Milena Vujošević Janičić, Vojin Jovanović и Thomas Würthinger.

Слева надесно приказани су стабло одлучивања, тежински ансамбл стабала одлучивања XGBoost и дубока неуронска мрежа.
Слика 3. Стабло одлучивања, ансамбл XGBoost и дубока неуронска мрежа илуструју архитектуре модела. Отвори у пуној величини.
Граф тока контроле метода heapSort групише чвор гранања, његовог претходника и блокове на свакој грани. Табеле наводе статичка својства издвојена из тих области.
Слика 19. Својства издвојена за гранање у методу heapSort нумерисана су као у табели својстава у раду. Отвори у пуној величини.

Слика 3 приказује архитектуре стабла одлучивања, ансамбла XGBoost и дубоке неуронске мреже испитане за предвиђање гранања. Слика 19 илуструје својства кода и тока контроле издвојена за гранање у методу heapSort. Ова својства улазе у примењени лагани регресиони модел XGBoost, чија предвиђања вероватноћа гранања усмеравају оптимизацију компајлера.

Скуп својстава примењив је на језике који се преводе у бајткод језика Java, укључујући Java, Scala и Kotlin. Хеуристике за вероватноће гранања штите одлуке о оптимизацији од нетачних процена и одступајућих вредности.

Профајлер је интегрисан у компајлер Graal. Евалуација на 28 бенчмаркова показује смањење времена извршавања од 7.46% по геометријској средини у поређењу са подразумеваном конфигурацијом компајлера, која додељује униформне вероватноће гранања. GraalSP омогућава оптимизацију вођену профилом без потребе да програмери прикупљају динамички профил или одржавају засебно радно оптерећење за профилисање.

Dynamic Profiling and Static Prediction of the Program Execution Profiles in the Context of Compiler Optimizations

Публикација или скуп: InfoM: Journal of Information Technology and Multimedia Systems, том 23, број 78, стране 17 до 27.

Датум: децембар 2023.

Статус: Објављено.

InfoM.

Аутори: Milan Čugurović.

Статичка својства изворног кода и профили извршавања инструментованог програма образују скуп података за обучавање модела машинског учења.
Динамички профили и статичка својства кода образују скуп података за обучавање модела за предвиђање профила. Прилагођено са слике 4, са ознакама на енглеском. Отвори у пуној величини.

Слика изнад приказује статичка својства кода прикупљена заједно са профилима извршавања инструментованих програма. Одговарајућа својства и профили спајају се у означен скуп података, који се затим користи за обучавање модела који предвиђа профиле извршавања непосредно из кода програма.

Оптимизације вођене профилом користе профиле извршавања за одлуке попут уметања тела метода и распореда кода. Овај прегледни рад пореди динамичко профилисање засновано на инструментацији и на узорковању, објашњавајући како квалитет профила, трошак прикупљања и ограничења ресурса утичу на њихову примену. Затим разматра статичко предвиђање профила као начин да се ови подаци добију непосредно из кода програма током превођења.

Рад прати развој од ручно писаних хеуристика до модела машинског учења, разликујући класификацију гранања од регресије која предвиђа вероватноће извршавања. Разматра како својства изведена из изворног кода, међурепрезентација компајлера и извршног кода описују понашање програма и издваја осмишљавање својстава као кључни изазов. Поређење указује на то када је сваки приступ профилисању користан и мотивише даљи рад на регресионим моделима и општијим репрезентацијама програма.

Патенти

Поднето је пет патентних пријава у САД.

Tunable Machine Learning for Size-Aware Optimizing Compilation

Патентна пријава у САД.

Датум: октобар 2026. Статус: Поднето.

Пријава се односи на подесиво машинско учење за оптимизацију компајлера која узима у обзир величину извршне датотеке.

Static Profiling Using Signature Embeddings

Патентна пријава у САД.

Датум: август 2026. Статус: Поднето.

Пријава се односи на употребу векторских репрезентација потписа метода у статичком профилисању.

Static Profiling with Graph Neural Networks

US20260126977A1.

Датум: мај 2026. Статус: Објављено.

Пријава обухвата предвиђање учесталости гранања из графова тока контроле помоћу графовских неуронских мрежа. Предвиђања образују профиле програма који усмеравају оптимизацију компајлера.

Machine Learning Method Hotness Classification in Optimizing Compilers

Патентна пријава у САД.

Датум: децембар 2025. Статус: Поднето.

Пријава се односи на класификацију учесталости извршавања метода машинским учењем у сврху оптимизације компајлера.

Machine Learning Based Static Profiling

US20250244979A1.

Датум: јул 2025. Статус: Објављено.

Пријава обухвата предвиђање учесталости гранања регресионим моделом који користи својства издвојена из међурепрезентације програма. Добијени статички профил усмерава оптимизацију кода.

Одбрањене тезе

Одбрањене су две тезе.

Предвиђање профила извршавања програма техникама машинског учења

Врста: Докторска дисертација.

Теза у формату PDF.

Аутор: Milan Čugurović.

Установа: Математички факултет, Универзитет у Београду.

Датум одбране: 24. децембар 2025.

Ментор: Milena Vujošević Janičić, Математички факултет, Универзитет у Београду.

Чланови комисије:

  • Filip Marić, Математички факултет, Универзитет у Београду.
  • Mladen Nikolić, Математички факултет, Универзитет у Београду.
  • Saša Misailović, University of Illinois Urbana-Champaign.

Ова дисертација представља GraalSP, који помоћу модела XGBoost и корективних хеуристика предвиђа вероватноће гранања из графовске репрезентације високог нивоа компајлера Graal за језике који се преводе у бајткод језика Java. Интегрисан у Enterprise GraalVM Native Image, постиже убрзање извршавања од 7.46% по геометријској средини на 28 бенчмаркова у односу на основну конфигурацију са униформним профилом. Дисертација такође уводи GraalSP-PLog, алат за испитивање појединачних предвиђања и грешака модела.

Побољшање статичког профајлера GraalMHC коришћењем семантике из имена метода

Врста: Мастер рад.

Теза у формату PDF.

Аутор: Stefan Milenković.

Установа: Математички факултет, Универзитет у Београду.

Датум одбране: 7. август 2026.

Ментор: Milena Vujošević Janičić, Математички факултет, Универзитет у Београду.

Чланови комисије:

  • Mirko Spasić, Математички факултет, Универзитет у Београду.
  • Milan Čugurović, Математички факултет, Универзитет у Београду.

Овај рад проширује породицу профајлера GraalMHC у GraalVM Native Image векторским репрезентацијама речи из потпуно квалификованих имена метода, поредећи GloVe са наменски обученим репрезентацијама. У поређењу са профајлером без семантике имена метода, даје извршне датотеке мање за 4.7% до 6.4% на нивоу O2, уз погоршање перформанси извршавања мање од 2.4%, и датотеке мање за 8.4% до 10.8% на нивоу O3, уз погоршање до 4.4%. Наменске репрезентације постижу боље резултате од GloVe, а заузимају 2.77 MB у односу на 163 MB.

Потпун списак публикација

Списак садржи седамнаест ставки.

Радови у часописима

  1. M. Čugurović, A. Prokopec, B. Spasojević, V. Jovanović и M. Vujošević Janičić. GraalMHC++: A Tunable ML Framework for Size-Aware Optimizing Compilation. Journal of Systems and Software (Elsevier), тематски број Special Issue on AI Techniques for Performance, Reliability, and Sustainability of Modern Software Systems. Октобар 2026. ScienceDirect
  2. I. Ristović, M. Čugurović, S. Stanojević, M. Spasić, V. Marinković и M. Vujošević Janičić. Machine Learning-Driven Prediction of Optimal Control Flow Graph Traversal Strategy. Serbian Journal of Electrical Engineering, том 22, број 3, стране 353 до 376. 2025. doiSerbia
  3. M. Čugurović, M. Vujošević Janičić, V. Jovanović и T. Würthinger. GraalSP: Polyglot, Efficient, and Robust Machine Learning-Based Static Profiler. Journal of Systems and Software (Elsevier). Јул 2024. ScienceDirect
  4. M. Čugurović. Dynamic Profiling and Static Prediction of the Program Execution Profiles in the Context of Compiler Optimizations. InfoM: Journal of Information Technology and Multimedia Systems, том 23, број 78, стране 17 до 27. Децембар 2023. InfoM

Радови на конференцијама и радионицама

  1. M. Čugurović, A. Prokopec, B. Spasojević, V. Jovanović и M. Vujošević Janičić. The Promise of Static Profiling: Exploring the Limits. MoreVMs Workshop, Companion Proceedings of the 10th International Conference on the Art, Science, and Engineering of Programming (<Programming> '26), Минхен, Немачка. Март 2026. ACM Digital Library
  2. M. Čugurović, A. Prokopec, B. Spasojević, V. Jovanović и M. Vujošević Janičić. GraalMHC: ML-Based Method-Hotness Classification for Binary-Size Reduction in Optimizing Compilers. International Conference on Compiler Construction (CC), Сиднеј, NSW, Аустралија. Јануар 2026. ACM Digital Library
  3. M. Čugurović, I. Ristović, S. Stanojević, M. Spasić, V. Marinković и M. Vujošević Janičić. ML-Driven Prediction of Optimal Control Flow Graph Traversal Algorithm in Modern Applications. 12th International Conference IcETRAN, Чачак, Србија. Јун 2025. Награда за најбољи рад младих истраживача
  4. L. Milikić, M. Čugurović и V. Jovanović. GraalNN: Context-Sensitive Static Profiling with Graph Neural Networks. International Symposium on Code Generation and Optimization (CGO), Лас Вегас, Невада, САД. Март 2025. ACM Digital Library
  5. I. Ristović, M. Čugurović, S. Stanojević, M. Spasić, V. Marinković и M. Vujošević Janičić. Efficient Traversal of Program Control Flow Graphs. Conference YuInfo 2024, Копаоник, Србија. Март 2024.

Проширени апстракти и излагања

  1. S. Milenković, M. Čugurović и M. Vujošević Janičić. Improving ML-Based Static Profiling Using Method Names. Symposium Mathematics and Applications, Математички факултет, Универзитет у Београду, том XV. 2025.
  2. M. Čugurović и M. Vujošević Janičić. GraalSP Profiles Logger: A Tool for Analyzing and Interpreting Predictions of the ML-Based Static Profilers. Conference on Artificial Intelligence, Одељење техничких наука САНУ и Математички институт САНУ. Децембар 2024.
  3. M. Spasić, I. Ristović, S. Stanojević, M. Čugurović, M. Karličić и M. Vujošević Janičić. Performance Evaluation of the GraalVM Compiler on a Distributed Computing Cluster. XV Serbian Mathematical Congress, Математички факултет, Универзитет у Београду. 2024.
  4. M. Čugurović и M. Vujošević Janičić. Creation and Analysis of a Dataset for Predicting Execution Probabilities of Virtual Methods in Object-Oriented Programs. Conference on Artificial Intelligence, Математички институт САНУ. Децембар 2023.
  5. M. Čugurović, I. Ristović, S. Stanojević, M. Spasić, V. Marinković и M. Vujošević Janičić. Comparative Analysis of Program Control Flow Graph Traversal Algorithms. Symposium Mathematics and Applications, Математички факултет, Универзитет у Београду, том XIII(1). 2023.
  6. M. Čugurović. Prediction of Program Profiles Using Machine Learning Techniques. Seminar for Artificial Intelligence, Математички институт САНУ. Март 2022.

Предавања по позиву

  1. M. Čugurović. Prediction of Program Execution Profiles Using Machine Learning Techniques. Предавање по позиву на скупу INFORMATIKA 2026: New Trends in the Development of Information Systems, Друштво за информатику Србије. Мај 2026.

У току

  1. Stefan Milenković, Lazar Milikić, Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović и Milena Vujošević Janičić. Profiling Beyond IR: Method-Signature Embeddings for Static Profiling.

Milan Čugurović

Oracle, Београд · Математички факултет, Универзитет у Београду

Последња измена: октобар 2026.