Znotraj diplomske naloge je razvit razporejevalnik opravil za vgrajeno platformo NXP FRDM-MCXN947, ki vključuje splošnonamensko procesorsko enoto ARM Cortex-M33 in eIQ Neutron nevronsko procesorsko enoto (NPU). Cilj je sočasno izvajanje opravil prilagojenih za CPU in NPU. Delo naslavlja potrebo po razporejanju opravil na nivoju različnih procesorskih enot in natančno časovno razporejanje v heterogenih vgrajenih sistemih namenjenih za izvajanje sklepanja nevronskih mrež kot tudi konvencionalnih opravil.
Razporejevalnik je implementiran na FreeRTOS in merjen z DWT (Data Watchpoint and Trace) števcem ciklov z mikrosekundno natančnostjo za doseganje zanesljivih meritev izvajanja CPU in NPU opravil. Razviti lastni model opravila opiše opravilo s standardnimi parametri v realnem času (čas sprostitve, perioda, rok izvedbe opravila, čas izvajanja, prioriteta) ter z dodatnimi parametri kot zahtevani računski resor. Parameter zahtevani računski resor omogoča deljenje opravil na CPU in NPU prilagojena opravila.
Razporejanje opravil temelji na prioriteti z dodatnim pravilom Earliest-Deadline-First (EDF) za opravila z isto prioriteto. Za analizo izvedbe opravil se uporabljajo časi izvajanja. Ovrednotenje sestavljajo sintetični primeri CPU opravil in NPU MobileNet opravilo z inferenco, kjer je uporabljen TensorFlow Lite Micro model pretvorjen v Neutron graf. Primeri vključujejo periodična opravila različnih prioritet.
S sintetičnimi primeri je dokazana sočasna uporaba različnih računskih resorjev, kar skrajša celoten čas izvajanja. Pravtako je dokazano pravilno razporejanje opravil na podlagi prioritet in mehkih ter trdih rokov.
|