แบนด์วิดท์หน่วยความจำของข้อมูลพื้นผิวอาจเป็นคอขวดที่อาจส่งผลต่อประสิทธิภาพของ GPU ของแอป โปรไฟล์ระบบ AGI มีตัวนับบางรายการที่ช่วยวินิจฉัยปัญหาแบนด์วิดท์หน่วยความจำของพื้นผิวได้
ตัวนับ Qualcomm Adreno
ในอุปกรณ์ที่มี GPU Qualcomm Adreno ตัวนับที่น่าสนใจบางรายการ ได้แก่
| ตัวนับ | คำอธิบาย |
|---|---|
| แบนด์วิดท์การอ่านหน่วยความจำของพื้นผิว (ไบต์/วินาที) | แบนด์วิดท์ของข้อมูลพื้นผิวที่อ่านจากหน่วยความจำภายนอก |
| % การพลาดแคช L1 ของพื้นผิว | ไม่พบแคช L1 จากการดึงข้อมูลพื้นผิว |
| % พื้นผิวระดับที่ไม่ใช่ระดับฐาน | เปอร์เซ็นต์ของการดึงข้อมูลพื้นผิวที่เป็น MIP Map |
| % การกรองแบบแอนไอโซทรอปิก | เปอร์เซ็นต์ของเทกเซลที่กรองแบบแอนไอโซทรอปิก |
ตัวนับ ARM Mali
ในอุปกรณ์ที่มี GPU ARM Mali ตัวนับที่น่าสนใจบางรายการ ได้แก่
| ตัวนับ | คำอธิบาย |
|---|---|
| จังหวะการอ่านพื้นผิวจากหน่วยความจำภายนอก | จังหวะข้อมูลที่อ่านจากหน่วยความจำภายนอกโดยหน่วยพื้นผิว โดยเฉลี่ยในคอร์ของ Shader |
| จังหวะการอ่านพื้นผิวจากแคช L2 | จังหวะข้อมูลที่อ่านจากแคช L2 โดยหน่วยพื้นผิว โดยเฉลี่ยในคอร์ของ Shader |
| [เพิ่มเติม] |
หากต้องการคำนวณแบนด์วิดท์โดยรวมจากจังหวะการอ่านเฉลี่ย ให้คูณค่าตัวนับด้วยความกว้างของบัส (โดยปกติคือ 16 ไบต์) และจำนวนคอร์ของ Shader ทั้งหมด
การวิเคราะห์ตัวนับ
หากต้องการวัดพฤติกรรมของตัวนับเหล่านี้ ให้วัดแบนด์วิดท์เฉลี่ยและแบนด์วิดท์สูงสุดในเฟรม GPU เดียว จากนั้นกำหนดด้วยบล็อกการใช้งาน GPU ที่ต่อเนื่องกัน
เราขอแนะนำให้แบนด์วิดท์การอ่านหน่วยความจำของพื้นผิวโดยเฉลี่ยไม่สูงกว่า 1 GBps และแบนด์วิดท์สูงสุดไม่สูงกว่า 3 GBps การไม่พบแคช L1 ของพื้นผิวก็ไม่ควรสูงกว่า 10% ค่าแบนด์วิดท์หรือแคช L1 ที่สูงขึ้นอาจบ่งชี้ถึงปัญหาพื้นผิวที่ลึกกว่า ซึ่งรวมถึง
- _พื้นผิวมีขนาดใหญ่เกินไป_: พื้นผิวขนาดใหญ่จะทำให้ขนาดแพ็กเกจใหญ่ขึ้น มีค่าใช้จ่ายสูงขึ้น และอาจลดประสิทธิภาพของแคช
- พื้นผิวไม่ได้บีบอัด: โทรศัพท์ Android ทุกรุ่นรองรับการบีบอัดพื้นผิวบางประเภท ไม่ว่าจะเป็น ETC1 หรือ ASTC คุณควรบีบอัดพื้นผิวเพื่อลดขนาดแพ็กเกจและลดแบนด์วิดท์ของพื้นผิว
- อื่นๆ: คุณควรพิจารณาข้อกังวลอื่นๆ เกี่ยวกับพื้นผิว ซึ่งรวมถึงพื้นผิวที่เป็นกำลังสอง, MIP Mapping, การกรองแบบแอนไอโซทรอปิก และอื่นๆ คุณอาจสังเกตเห็นปัญหาบางอย่างจากโปรไฟล์ระบบตามที่กล่าวไว้ด้านล่าง แต่ปัญหาอื่นๆ อาจต้องมีการตรวจสอบที่ลึกซึ้งยิ่งขึ้น
สำหรับเกม 3 มิติที่มีกล้องอิสระ ชิ้นงานพื้นผิวควรใช้ MIP Mapping เพื่อให้วัตถุที่อยู่ไกลจากกล้องมีแบนด์วิดท์หน่วยความจำลดลง ประสิทธิภาพของแคชพื้นผิวดีขึ้น และคุณภาพของภาพดีขึ้น สำหรับอุปกรณ์ที่ใช้ GPU Qualcomm Adreno ตัวนับ % พื้นผิวระดับที่ไม่ใช่ระดับฐาน ที่ต่ำกว่า 10% โดยเฉลี่ยอาจบ่งชี้ว่า MIP Mapping ไม่เพียงพอ
อีกสิ่งที่ควรพิจารณาคือการใช้การกรองแบบแอนไอโซทรอปิก ซึ่งอธิบายโดยตัวนับ % การกรองแบบแอนไอโซทรอปิก สำหรับ GPU Qualcomm Adreno สำหรับสัดส่วนของเทกเซลที่กรองแบบแอนไอโซทรอปิก แม้ว่าการกรองแบบแอนไอโซทรอปิกอาจปรับปรุงคุณภาพของภาพสำหรับเกมบางเกมได้ แต่ก็อาจมีค่าใช้จ่ายสูงมาก และคุณควรพิจารณาการใช้งานเทียบกับค่าใช้จ่ายด้านประสิทธิภาพของ GPU
วิธีที่ดีที่สุดในการวินิจฉัยปัญหาที่เฉพาะเจาะจงมากขึ้นคือการใช้การติดตามโปรไฟล์เฟรมเพื่อวิเคราะห์ชิ้นงานพื้นผิว