LiteRT Dispatch API สำหรับการผสานรวมรันไทม์ NPU

ฉันควรใช้ Dispatch API เมื่อใด

LiteRT Dispatch API จำเป็นเมื่อคุณต้องการผสานรวมรันไทม์ของตัวเร่งฮาร์ดแวร์ที่เฉพาะเจาะจง เข้ากับเฟรมเวิร์ก LiteRT โดยจะทำงานร่วมกับ ปลั๊กอินคอมไพเลอร์เพื่อเรียกใช้กราฟย่อยที่คอมไพล์แล้วซึ่งปลั๊กอินคอมไพเลอร์สร้างขึ้น

Dispatch API คือชุดฟังก์ชันที่ผู้ให้บริการติดตั้งใช้งานซึ่ง LiteRT จะใช้เพื่อ จัดการเซสชันด้วยรันไทม์ของตัวเร่ง ฟังก์ชันเหล่านี้ครอบคลุมเซสชันของอุปกรณ์ การดำเนินการกราฟย่อย และการเคลื่อนที่ของบัฟเฟอร์ระหว่างโฮสต์กับอุปกรณ์ การใช้งาน Dispatch API ร่วมกับปลั๊กอินคอมไพเลอร์ ช่วยให้ LiteRT ใช้ความสามารถของตัวเร่งความเร็วได้อย่างเต็มที่เพื่อการอนุมานที่มีประสิทธิภาพ

ดูรายละเอียดเพิ่มเติมเกี่ยวกับ "เมื่อใด" ที่จะใช้ Dispatch API (และปลั๊กอินคอมไพเลอร์) ได้ในหน้าปลั๊กอินคอมไพเลอร์ LiteRT

Dispatch API ทำงานอย่างไร

Dispatch API ใช้โดย CompiledModel โดยใช้ NpuAccelerator ซึ่งจะสร้าง DispatchDelegate ภายใน และ DispatchDelegate นี้จะใช้ Dispatch API เพื่อดึงดูด NPU ที่ฝังอยู่ในฮาร์ดแวร์ที่ทำงานอยู่

ประเภทข้อมูลของ Dispatch API

ใน Dispatch API จะใช้ประเภทข้อมูลต่อไปนี้เพื่อเรียกใช้โมเดลใน NPU

  • DispatchDeviceContext

    โดยใช้เพื่อจัดการบัฟเฟอร์ที่ใช้โดยการอนุมาน NPU

  • DispatchInvocationContext

    นี่คือโครงสร้างข้อมูลที่ใช้ในการเรียกใช้โมเดล โดยจะทำงานด้วยการ เชื่อมโยงหน่วยความจำอินพุตและเอาต์พุตจริงที่ลงทะเบียนไว้ใน DispatchDeviceContext กับ DispatchGraph ที่สร้างขึ้น

Dispatch APIs

โปรดดูคำจำกัดความทั้งหมดของ Dispatch API ในไฟล์ vendors/c/litert_dispatch.h