2010-08-25 15 views
6

मैं जानना चाहता हूं कि बफर आवंटित करने से पहले मेरे डिवाइस पर कितनी मुफ्त मेमोरी है। क्या यह संभव है? मैं वहाँ कुल स्मृति के लिए CL_DEVICE_GLOBAL_MEM_SIZE, और एक वस्तु का अधिकतम आकार के लिए CL_DEVICE_MAX_MEM_ALLOC_SIZE पता है, लेकिन मैं वर्तमान स्मृति राज्य जानना चाहूंगा।मैं ओपनसीएल में उपलब्ध डिवाइस मेमोरी कैसे निर्धारित करूं?

यह खड़ा है जैसा कि मैंने शायद ओपन विक्रेता विशिष्ट एक्सटेंशन का उपयोग करने के लिए जा रहा हूँ।

उत्तर

2

नहीं है, कोई रास्ता नहीं है, और यह पता करने के लिए कोई ज़रूरत नहीं, GPU स्मृति वर्चुलाइज़ किया जा सकता है और जब यह/जरूरत नहीं है ड्राइवर GPU से/बाहर स्मृति स्वैप जाएगा।

+1

यह वहाँ कोई रास्ता नहीं है पता करने के लिए अच्छा है, लेकिन आप क्यों कह सकते हैं कि कोई आवश्यकता नहीं है? मैं स्मृति में/बाहर स्वैप नहीं करना चाहता, और चूंकि मैं जीएल के साथ भी काम कर रहा हूं, मैं जीएल की सभी मेमोरी नहीं खा रहा हूं। – nullspace

+0

कोई ज़रूरत नहीं है क्योंकि चालक इसका ख्याल रखता है। जीएल संसाधन भी वर्चुअलाइज्ड हैं। स्वैपिंग वास्तव में खराब नहीं है, यह केवल वीआरएएम में डेटा को राम में कॉपी करेगा, और जब आवश्यक हो तो उपाध्यक्ष। यदि आप पाते हैं कि पर्याप्त वीआरएएम शेष नहीं है तो आप क्या करेंगे? –

+0

वर्तमान में, यह जीएल सबसाइटम को दुर्घटनाग्रस्त कर रहा है और इसे फिर से शुरू करने के लिए टीडीआर की प्रतीक्षा करता है। यह संभव है कि यह मेरे कोड में एक बग के कारण है, लेकिन छोटे बफर आवंटित करने से यह ठीक हो जाता है। मैं एक इष्टतम बफर आकार निर्धारित करना चाहता हूं। तो यह एक निवारक चीज से अधिक है। – nullspace

2

आप nVidia पर GL_NVX_gpu_memory_info उपयोग कर सकते हैं।

+1

यही वह है जो मैंने उपयोग किया, और एटीआई पर एटीआई_मेमिन्फो, लेकिन यह जीएल है, सीएल नहीं। – nullspace

संबंधित मुद्दे