Архітектура та проєктування репозиторію
Ця сторінка призначена для розробників, яким необхідно зрозуміти, як структурована бібліотека, де розташовані основні компоненти та як розширити структуру, не порушуючи її модульність і контракти середовища виконання.
Скомпільована межа Scheduler
Core споживає SimaScheduler::frontend і типи simaai::scheduler::client з незалежним володінням. Через цю скомпільовану межу проходять створення чисельних запитів, інспекція, динамічний вибір, приєднання зупиненого графа, вибраний доступ до пам’яті та запити розкладки відео. Core не відкриває сеанси Runner і не включає інтерфейси реалізації Kernels або Codecs.
flowchart LR
Core[Core graph and application policy] --> Scheduler[Scheduler client and GStreamer]
Scheduler --> Runner[Runner execution and memory authority]
Runner --> Kernels[Kernels numerical providers]
Scheduler --> Codecs[Codecs providers]
GenAI[Core GenAI API] --> LLiMa[LLiMa generation runtime]
Benchmark[Core benchmark reports] --> Sentinel[Optional Sentinel telemetry]
Model та окремий Resize спільно використовують перелік значень ResizeInterpolation і єдине зіставлення токенів інтерполяції. Планування Model розв’язує необов’язковий типізований вибір до визначення наміру обробки зображення, проєкції стадій і походження графа; попередні рядки залишаються межею сумісності.
Параметри моделі й окремої обробки зображень перетворюються на той самий звичайний запит Preproc. Фіксована арифметика зберігає початкові межі FP32 масштабування, віднімання середнього та ділення після зміни розміру й кроку квантування; це не інтерпретатор довільного порядку перетворень. Вхідний dtype, квантування та фізичний макет і далі визначає MPK. Нові параметри вмикаються явно; без них зберігаються старі байти. Core лише передає намір і геометрію, а числову перевірку та виконання визначає Kernels.
Kernels залишається авторитетним джерелом каталогу операцій і чисельного допуску. Scheduler передає узагальнені запити через Runner; ні Scheduler, ні Core не ведуть ідентифікаторів прошивки або таблиці диспетчеризації за операціями. Core зберігає публічні API вузлів, політику геометрії та дротове форматування. Scheduler створює свіжі екземпляри фабрик адаптерів і розв’язувачів після перевірки когорти. Кешований динамічний вибір утримує свою операцію, але прив’язує пам’ять поточного кадру.
GenAI викликає LLiMa напряму, без Runner або GenAI-адаптера Scheduler. Профілювання MLA — окремий, типово вимкнений прохід: Core викликає клієнт Scheduler, а Runner запускає встановлений інструмент командного рядка mla-rt. Він потребує вільного DevKit без іншої роботи MLA.
Володіння інтерфейсами GStreamer
Scheduler володіє транспортом GStreamer та інтерфейсами структурованих помилок, включно зі встановленим заголовком gst/SimaaiGstErrors.h. Core споживає ці інтерфейси, а не зберігає другу реалізацію. Версія Core 0.6.0 включає цей перехід володіння файлом. Оновлюйте узгоджений набір пакетів Core/Scheduler разом; ця версія пакета не змінює контракт платформи або чисельний контракт.
Фреймворк проти середовища
Слово «Neat» використовується для позначення двох пов’язаних, але різних аспектів:
- Neat Library: бібліотека C++/Python і середовище виконання, що міститься в цьому репозиторії. Вона завантажує модель. створює пакети, формує конвеєри, перевіряє контракти, працює на апаратному забезпеченні Modalix і надає доступ до публічного API.
- Palette SDK / середовище: контейнеризований процес розробки, що охоплює роботу з фреймворком. зокрема, DevKit Sync, спільні робочі простори та інструменти для агентів.
Під час внесення змін до цього репозиторію оптимізуйте його для властивостей фреймворку, які підтримують як людей, так і агентів: чіткі API, детермінована поведінка, структуровані засоби діагностики, сувора перевірка та стабільні публічні контракти.