แนวทางปฏิบัติที่ดีที่สุดในการดำเนินการไดรเวอร์ NNAPI

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

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

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

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

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

การใช้กลุ่ม NN HAL SchedTune

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

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

writepid /dev/stune/nnapi-hal/tasks