แนวทางปฏิบัติแนะนำในการใช้งานไดรเวอร์ NNAPI

หน้านี้อธิบายแนวทางปฏิบัติแนะนำในการใช้งานไดรเวอร์ Neural Networks API (NNAPI) เพื่อช่วยให้นักพัฒนาแอปนำ NNAPI ไปใช้ได้แบบกว้าง

ทำให้เวลาเริ่มต้นสั้น

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

ลดเวลาในการตอบสนองขั้นต่ำ

คุณควรลดเวลาในการตอบสนองขั้นต่ำในไดรเวอร์เพื่อให้โมเดลใช้การเร่งด้วยฮาร์ดแวร์ แอปจํานวนมากใช้โมเดลขนาดเล็กที่เรียกใช้หลายครั้ง และหากเวลาในการตอบสนองต่ำสุดในการเรียกใช้เวิร์กโหลดสูงเกินไป เช่น 2-3 มิลลิวินาที โมเดลอาจเรียกใช้เวิร์กโหลดใน CPU ซึ่งใช้เวลาเพียง 1-2 มิลลิวินาทีแทนที่จะใช้การเร่งด้วยฮาร์ดแวร์ ระวังการซิงค์เธรดที่สิ้นเปลือง

ใช้กลุ่ม NN HAL SchedTune

ตั้งแต่ Android 11 ขึ้นไป AOSP จะมีกลุ่ม SchedTune สำหรับ NN HAL โดยเฉพาะ ซึ่งช่วยให้กระบวนการ NN HAL ระหว่างกระบวนการต่างๆ ใช้ Big Core ได้ คล้ายกับการใช้งานกระบวนการเดียวกันภายใน top-app cgroup ที่กําหนดไว้ล่วงหน้า การใช้กลุ่ม SchedTune นี้ช่วยลดค่าใช้จ่ายเพิ่มเติมของไดรเวอร์ โดยเฉพาะสำหรับรุ่นขนาดเล็ก

หากต้องการใช้กลุ่ม SchedTune ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ init.rc ของกระบวนการ NN HAL

writepid /dev/stune/nnapi-hal/tasks