2017-01-17 31 views
7

के साथ OpenCL एप्लिकेशन को कैसे प्रोफाइल करें IVVIA अनुप्रयोग, a.out, एनवीआईडीआईए टाइटन एक्स और क्यूडा 8.0 के साथ एक सिस्टम में, मैं प्रोफाइल खोलने की कोशिश कर रहा हूं।CUDA 8.0 nvprof

यदि यह सीयूडीए एप्लीकेशन था, nvprof ./a.out पर्याप्त होगा। लेकिन मैंने पाया कि यह ओपनसीएल एप्लिकेशन के साथ काम नहीं करता है, एक संदेश के साथ "नो कर्नेल प्रोफाइल किए गए थे।"

सीयूडीए 7.5 तक, मैंने this के बाद सफलतापूर्वक COMPUTE_PROFILE=1 का उपयोग किया। दुर्भाग्यवश, प्रलेखन कहता है "पर्यावरण परिवर्तनीय COMPUTE_PROFILE का उपयोग कर कमांड लाइन प्रोफाइलर का समर्थन CUDA 8.0 रिलीज़ में गिरा दिया गया है।"

सवाल यह है कि क्या सीयूडीए को डाउनग्रेड करने के अलावा एनवीप्रोफ के साथ ओपनसीएल एप्लीकेशन को प्रोफाइल करने के अलावा कोई अन्य तरीका है?

+0

क्या आप अपने आवेदन के भीतर 'clReleaseContext' को कॉल कर रहे हैं? – talonmies

+0

@talonmies हां, यह संदर्भ, कतार, प्रोग्राम, कर्नेल, और मेमोरी ऑब्जेक्ट के लिए रिलीज़ फ़ंक्शंस को ठीक से कॉल करता है। – csehydrogen

उत्तर

4

मेरे सर्वोत्तम ज्ञान के लिए, nvprof ने कभी भी ओपनसीएल प्रोफाइलिंग का समर्थन नहीं किया है।

COMPUTE_PROFILE=1 के साथ चलने वाला कोड ड्राइवर आधारित प्रोफाइलिंग तंत्र को आमंत्रित करता है जो nvprof की शुरूआत की भविष्यवाणी करता है। उस ड्राइवर आधारित तंत्र को कुछ समय पहले बहिष्कृत कर दिया गया था और अब nvprof का उपयोग करने के पक्ष में CUDA 8 के रूप में हटा दिया गया है।

नतीजतन, ऐसा लगता है कि CUDA टूलकिट का उपयोग करके एनवीआईडीआईए हार्डवेयर पर ओपनसीएल कोड चलाने का कोई तरीका नहीं है।