CtsNpuManagerMoblyTestCases सुइट, डिवाइस की
NpuManager सेवा के साथ काम करने की पुष्टि करता है. इस सेवा को Android 17 (एपीआई लेवल 37) में जोड़ा गया है. Mobly पर आधारित ये टेस्ट, एनपीयू के वर्कलोड की प्राथमिकता का आकलन करते हैं. साथ ही, यह पक्का करते हैं कि फ़ोरग्राउंड में चल रहे ऐप्लिकेशन के एनपीयू वर्कलोड को, बैकग्राउंड में चल रहे ऐप्लिकेशन के मुकाबले ज़्यादा प्राथमिकता मिले. इसके अलावा, ये टेस्ट एनपीयू के ऐक्सेस कंट्रोल की पुष्टि भी करते हैं.
टेस्ट कॉन्फ़िगरेशन
इस टेस्ट सुइट के लिए, ग्लोबल डिफ़ॉल्ट पैरामीटर, रेफ़रंस डिवाइसों के लिए ऑप्टिमाइज़ किए जाते हैं. एनपीयू के हार्डवेयर की क्षमताएं अलग-अलग डिवाइसों के लिए अलग-अलग हो सकती हैं. इसलिए, टेस्ट कॉन्फ़िगरेशन के पैरामीटर अडजस्ट करें, ताकि यह पक्का किया जा सके कि आपके हार्डवेयर पर टेस्ट सही तरीके से चलें.
ट्यूनिंग करना क्यों ज़रूरी है
प्राथमिकता तय करने वाले टेस्ट test_foreground_app_finishes_first का मुख्य हिस्सा, रेस कंडीशन पर निर्भर करता है. इसमें यह आकलन किया जाता है कि फ़ोरग्राउंड में चल रहा ऐप्लिकेशन, बैकग्राउंड में चल रहे ऐप्लिकेशन से पहले अपने इन्फ़रंस पूरे करता है या नहीं. यह पक्का करने के लिए कि टेस्ट, तीन में से दो बार पास होने की स्थिरता से जुड़ी ज़रूरी शर्त को पूरा करे, इन पैरामीटर को अपने डिवाइस की एनपीयू की खास स्पीड के हिसाब से कॉन्फ़िगर करें.
कॉन्फ़िगरेशन फ़ाइल, Android के सोर्स ट्री में packages/modules/NpuManager/tests/cts/mobly_config.yaml पर मौजूद है.
कॉन्फ़िगर किए जा सकने वाले पैरामीटर
अपने डिवाइस के लिए टेस्ट को ट्यून करते समय, YAML फ़ाइल में मौजूद इन पैरामीटर को अडजस्ट करें. सभी संख्या वाली वैल्यू, शून्य से ज़्यादा होनी चाहिए,
साथ ही, फ़ोरग्राउंड में होने वाली देरी की वैल्यू, डिफ़ॉल्ट
वैल्यू के तौर पर कम से कम 0.5 seconds होनी चाहिए.
foreground_delay_seconds- जानकारी: फ़ोरग्राउंड में चल रहे ऐप्लिकेशन के इन्फ़रंस को ट्रिगर करने से पहले, बैकग्राउंड में चल रहे ऐप्लिकेशन को सेकंड में दिया गया हेड स्टार्ट. सीक्वेंस इस तरह है: बैकग्राउंड में चल रहा ऐप्लिकेशन, इन्फ़रंस शुरू करता है -> [टेस्ट,
foreground_delay_secondsतक इंतज़ार करता है] -> फ़ोरग्राउंड में चल रहा ऐप्लिकेशन, इन्फ़रंस शुरू करता है. - डिफ़ॉल्ट:
0.5 - ट्यूनिंग से जुड़ा दिशा-निर्देश: ज़्यादा देरी होने पर, बैकग्राउंड में चल रहे ऐप्लिकेशन को फ़ोरग्राउंड में चल रहे ऐप्लिकेशन के शुरू होने से पहले, इन्फ़रंस को प्रोसेस करने के लिए ज़्यादा समय मिलता है. फ़ोरग्राउंड में चल रहे ऐप्लिकेशन को, बैकग्राउंड में चल रहे ऐप्लिकेशन के वर्कलोड के लगभग आधे समय में अपने इन्फ़रंस शुरू कर देने चाहिए.
- जानकारी: फ़ोरग्राउंड में चल रहे ऐप्लिकेशन के इन्फ़रंस को ट्रिगर करने से पहले, बैकग्राउंड में चल रहे ऐप्लिकेशन को सेकंड में दिया गया हेड स्टार्ट. सीक्वेंस इस तरह है: बैकग्राउंड में चल रहा ऐप्लिकेशन, इन्फ़रंस शुरू करता है -> [टेस्ट,
foreground_test_num_iterations_per_thread- जानकारी:
test_foreground_app_finishes_firstटेस्ट के लिए, हर थ्रेड, फ़ोरग्राउंड और बैकग्राउंड में चल रहे ऐप्लिकेशन, दोनों के लिए लगातार इन्फ़रंस लूप की संख्या. - डिफ़ॉल्ट:
30
- जानकारी:
foreground_test_num_threads- जानकारी:
test_foreground_app_finishes_firstटेस्ट के लिए, फ़ोरग्राउंड और बैकग्राउंड में चल रहे ऐप्लिकेशन, दोनों के लिए एक साथ इन्फ़रंस चलाने के लिए स्पॉन किए गए एक साथ चलने वाले थ्रेड की संख्या. - डिफ़ॉल्ट:
4
- जानकारी:
टेस्ट चलाएं
अपने डिवाइस को कॉन्फ़िगर और कनेक्ट करने के बाद, सीटीएस ट्रेडफ़ेड के स्टैंडर्ड कमांड का इस्तेमाल करके सुइट चलाएं.
सीटीएस ट्रेडफ़ेड का इस्तेमाल करके मॉड्यूल चलाने के लिए:
cts-tradefed run cts -m CtsNpuManagerMoblyTestCases