API-ja e Dispatch-it LiteRT për Integrimin e NPU-së në Kohën e Funksionimit

Kur duhet ta implementoj API-në e Disptach?

Një API i Dispatch-it LiteRT është i nevojshëm kur duhet të integroni një kohëzgjatje specifike të përshpejtuesit të harduerit në kornizën LiteRT. Ai punon me Kompilatorin Shtojcë për të ekzekutuar nëngrafet e kompiluara të emetuara nga shtojca e kompilatorit.

API-ja e dispeçimit është një grup funksionesh të implementuara nga shitësi që LiteRT do të përdorë për të menaxhuar një seancë me kohën e ekzekutimit të një përshpejtuesi. Këto funksione mbulojnë seancat e pajisjes, ekzekutimin e nëngrafit dhe lëvizjen e buffer-it midis hostit dhe pajisjes. Implementimet e API-së së dispeçimit, në lidhje me një plugin për kompiluesin, i lejojnë LiteRT të shfrytëzojë plotësisht aftësitë e një përshpejtuesi për nxjerrje efikase të përfundimeve.

Më shumë detaje në lidhje me "kur" duhet të implementohet API-ja e dispatch-it (dhe plugin-i i kompiluesit) mund të gjenden në faqen e plugin-it të kompiluesit LiteRT .

Si funksionon API-ja e Dispatch-it?

API-ja e Dispatch përdoret nga CompiledModel duke përdorur NpuAccelerator . Kjo krijon në mënyrë të brendshme një DispatchDelegate dhe është ky DispatchDelegate që përdor API-në e Dispatch për të angazhuar NPU-në e integruar në harduerin në punë.

Llojet e të dhënave të API-së së dërgimit

Në Dispatch API, llojet e mëposhtme të të dhënave përdoren për të ekzekutuar një model në NPU-të.

  • DispatchDeviceContext

    Përdoret për të menaxhuar buferat që përdoren nga përfundimi i NPU-së.

  • DispatchInvocationContext

    Kjo është struktura e të dhënave e përdorur për të ekzekutuar modelin. Funksionon duke shoqëruar memorien aktuale të hyrjes dhe daljes të regjistruar në DispatchDeviceContext me DispatchGraph të gjeneruar.

API-të e dërgimit

Për përkufizimin e plotë të API-t të Dispatch, ju lutemi referojuni skedarit vendors/c/litert_dispatch.h .