मैं कैसे nVidia असतत कार्ड / इंटेल इंटीग्रेटेड ग्राफिक्स के साथ लैपटॉप पर काम करने वाले NVidia CUDA या OpenCL प्राप्त कर सकता हूं?


28

पृष्ठभूमि: मैं एक 3D कलाकार हूं (एक शौक के रूप में) और हाल ही में विंडोज 7 के साथ दोहरे बूट के रूप में उबंटू 12.04 एलटीएस का उपयोग करना शुरू कर दिया है। यह मेरे बिल्कुल नए 64-बिट तोशिबा लैपटॉप पर एक एनवीडिया जीईफ़ोर्स जीटी 540 एम जीपीयू के साथ चल रहा है। चित्रोपमा पत्रक)। हालांकि, इसमें इंटेल इंटीग्रेटेड ग्राफिक्स भी हैं (जो मुझे लगता है कि उबंटू का उपयोग कर रहा है)।

इसलिए, जब मैं अपने 3 डी दृश्यों को विंडोज पर छवियों के लिए प्रस्तुत करता हूं, तो मैं अपने सीपीयू या मेरे एनवीडिया जीपीयू (तेज) का उपयोग करने के बीच चयन करने में सक्षम हूं। 3D एप्लिकेशन से, मैं CUDA या OpenCL का उपयोग करने के लिए GPU सेट कर सकता हूं। Ubuntu में, कोई GPU विकल्प नहीं है।

लिनक्स और एनवीडिया ऑप्टिमस तकनीक के साथ मुद्दों पर बहुत अधिक (?) शोध करने के बाद, मैं थोड़ा अधिक प्रबुद्ध हूं, लेकिन बहुत अधिक भ्रमित हूं।

मैं ऑप्टिमस तकनीक के बारे में एक बिट की परवाह नहीं करता, क्योंकि बैटरी जीवन मेरे लिए किसी भी तरह से समस्या नहीं है।

यहाँ मेरा सवाल है: मैं उबंटू में अपने एनवीडिया जीपीयू पर क्यूडा-उपयोग कार्यक्रमों (जैसे ब्लेंडर) का उपयोग करने में सक्षम होने के लिए क्या कर सकता हूं? क्या मुझे nVidia ड्राइवरों की आवश्यकता होगी? (मैंने सुना है कि वे लिनक्स पर ऑप्टिमस सेटअप के साथ अच्छी तरह से नहीं खेलते हैं।) क्या उबंटू में मेरे GPU पर OpenCL का उपयोग करने का कम से कम एक तरीका है?

जवाबों:


27

मैंने अभी कुछ प्रयोग किए हैं और एरिक Appleman के कथनों की पुष्टि कर सकता है कि Bumblebee CUDA के लिए आवश्यक नहीं है। ( भौंरा के बारे में अधिक जानकारी : क्या उबंटू द्वारा समर्थित ऑप्टिमस टेक्नोलॉजी के साथ एक NVIDIA GeForce है? )

हालांकि, जब आप ओपन का उपयोग कर चित्रमय उदाहरण दिखाने की जरूरत है, तो आप कर ऑप्टिमस सिस्टम के लिए बम्बलबी की तरह कुछ की जरूरत है, अन्यथा आप या तो अपने प्रदर्शन पर कुछ भी नहीं दिख रहा है या त्रुटि मिलती है:

ERROR: Support for necessary OpenGL extensions missing.

CUDA प्रोग्राम चलाते समय, आपको CUDA टूलकिट और एनवीडिया ड्राइवर को इंस्टॉल करना होगा। यदि आप कार्यक्रमों को संकलित करने का इरादा रखते हैं, तो आपको एसडीके की भी आवश्यकता है। इंस्टॉलर्स http://developer.nvidia.com/cuda-downloads पर पाए जा सकते हैं , कृपया अपने ऑप्टिमस लैपटॉप को बोर करने से पहले नीचे दिए गए निर्देशों को पढ़ें।

CUDA की स्थापना

चालक

मैं उबंटू के पैकेज मैनेजर से एनवीडिया ड्राइवर स्थापित करने की सलाह देता हूं। यदि आप भौंरा स्थापित करते हैं, तो आपको चालक के बारे में चिंता करने की आवश्यकता नहीं है। अन्यथा, स्थापना के बाद, https://idubuntu.com/a/107746/6969 पर वर्णित के रूप में एनवीडिया लाइब्रेरी को अक्षम करें । यदि आप ऐसा नहीं करते हैं, तो आप 3D त्वरण को ढीला कर देंगे और संभवतः कम रिज़ॉल्यूशन पर अटक सकते हैं।

टूलकिट

मूल रूप से आपको इंस्टॉलर डाउनलोड करना होगा, इसे निष्पादन योग्य बनाना होगा और इसे चलाना होगा। - इंस्टॉलर डाउनलोड करें। इस लेखन के रूप में, 4.2.9 सबसे हाल का ड्राइवर है। जैसा कि मैंने एक 64-बिट ओएस है, मैं 64-बिट 11.04 उबंटू पैकेज का उपयोग करता हूं (हालांकि मैं 12.04 चला रहा हूं) - इसे निष्पादन योग्य बनाएं और स्थापना के लिए अनुमति दें /usr/local/cuda:

chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run

जब इंस्टॉलेशन संदेश होता है जो आपसे पूछता है कि CUDA को कहां स्थापित करना है, तो डिफ़ॉल्ट को स्वीकार करने के लिए Enter दबाएं /usr/local/cuda:

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

स्थापना के बाद, यह कुछ संदेशों को मुद्रित करेगा जो आपके पुस्तकालय खोज पथ में कोडा लाइब्रेरी निर्देशिका डालने का सुझाव देते हैं:

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

यदि आप चाहें, तो आप इस चरण को छोड़ सकते हैं, लेकिन तब आपको LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATHप्रोग्राम चलाते समय बाद में सेट करना होगा।

एसडीके

यदि आप CUDA अनुप्रयोगों को संकलित करने में सक्षम होना चाहते हैं, तो आप एसडीके को उसी तरह स्थापित कर सकते हैं जैसा कि ऊपर वर्णित है। डाउनलोड करें, इसे निष्पादन योग्य बनाएं और इसे चलाएं (जड़ के रूप में नहीं, उदाहरण के बिना sudo!)। इसके हिस्सों को संकलित करते समय, मुझे NVIDIA_GPU_Computing_SDK/C/common/common.mkहालांकि कुछ बदलाव करने थे :

  • लाइन 189 के बाद OPENGLLIB := -lGL -lGLU -lX11 -lXi -lXmu, जोड़ें:

    OPENGLLIB += -L/usr/lib/nvidia-current -L/usr/lib32/nvidia-current
    
  • लाइन 271 के बाद, इस तरह से स्वैप ${RENDERCHECKGLLIB}करें ${OPENGLLIB}कि यह दिखता है:

    LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
    
  • कुछ (5) रेखाएँ आगे भी ऐसा ही करती हैं, लेकिन हटाती -lcudaभी हैं।
  • कुछ (7) लाइनों को आगे, उसी तरह से करें जैसा आपने लाइन 271 में किया था।

CUDA का उपयोग करना

CUDA को काम करने के लिए एनवीडिया-संचालित एक्स सर्वर की आवश्यकता नहीं है। उस स्थिति में आप अपना यादृच्छिक परीक्षण कार्यक्रम चला सकते हैं जैसे:

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: $ LD_LIBRARY_PATH someComputallyIntensiveProgram

यदि आपने CUDA को अपने पुस्तकालय पथ में नहीं जोड़ा है, तो आपको आवश्यकता होगी:

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: / usr / local / cuda / lib64: / usr / स्थानीय / कोडा: lib: $ LD_LIBRARY_PATH someComputallyIntensiveProgram।

(यदि आपका प्रोग्राम 64-बिट है, तो आप 32-बिट पथ को उससे हटा सकते हैं)।

यदि CUDA प्रोग्राम में OpenGL का उपयोग करके प्रदर्शित करने के लिए कुछ है, तो आपको ऑप्टिरन का उपयोग करना होगा:

 optirun blender

या, यदि आपने CUDA को अपने डिफ़ॉल्ट पथ में नहीं जोड़ा है:

LD_LIBRARY_PATH = / usr / local / cuda / lib64: / usr / स्थानीय / cuda / lib: $ LD_LIBRARY_PATH ऑप्टिरन ब्लेंडर


धन्यवाद, मैं आपको इनाम दूंगा (लेकिन मैं अपना सामुदायिक विकी उत्तर स्वीकार करूंगा)।
पीटर कैसट्टा

इसके अलावा, 100 प्रतिनिधि और एक अपवोट सटीक रूप से व्यक्त नहीं करता है कि मैं भौंरा परियोजना पर आपके काम की कितनी सराहना करता हूं। आप और आपके सहयोगियों ने इसे सॉफ्टवेयर का एक बड़ा टुकड़ा बना दिया है। इसलिए धन्यवाद। :)
पीटर कैसट्टा

2
तुम हो स्वागत, अब मैं एक अद्यतन xorg + मेसा (? या वेलैंड) ढेर के साथ :) एक अंतिम प्रधान के रूप में समाधान के साथ उस समय इच्छा पुरस्कार आशा हमें
Lekensteyn

1
PRIME , Xorg आपको ग्राफिक्स दिखाने के लिए जिम्मेदार डिस्प्ले सर्वर है, Mesa OpenGL के लिए है, Wayland Xorg का संभावित उत्तराधिकारी है।
लेकेनस्टाइन

1
यह ध्यान रखना चाहिए कि CUDA को न्यूनतम NVIDIA ड्राइवर की आवश्यकता होती है। उदाहरण के लिए, CUDA 6.5 को कम से कम NVIDIA 340.21 की जरूरत है।
यमनकेओ

15

यहाँ पूरा जवाब है ( एलेक्स फलप्पा और लेकेनस्टेन के जवाब के आधार पर):

Ubuntu पर CUDA चलाने के लिए nVidia Optimus GPUs प्राप्त करना वास्तव में संभव है।

CUDA के लिए भौंरा आवश्यक नहीं है। ( भौंरा के बारे में अधिक जानकारी : क्या उबंटू द्वारा समर्थित ऑप्टिमस टेक्नोलॉजी के साथ एक NVIDIA GeForce है? )

हालांकि, जब आप ओपन का उपयोग कर चित्रमय उदाहरण दिखाने की जरूरत है, तो आप कर ऑप्टिमस सिस्टम के लिए बम्बलबी की तरह कुछ की जरूरत है, अन्यथा आप या तो अपने प्रदर्शन पर कुछ भी नहीं दिख रहा है या त्रुटि मिलती है:

ERROR: Support for necessary OpenGL extensions missing. 

यदि आपको ब्लेंडर जैसे ग्राफिक्स-गहन कार्यक्रम का उपयोग करने की आवश्यकता है, तो भौंरा वर्तमान में जाने का एक अच्छा तरीका है।

यदि आप भौंरा स्थापित नहीं करना चाहते (यानी यदि आपको ओपनजीएल की आवश्यकता नहीं है) तो CUDA इंस्टॉल करना छोड़ दें ।
अन्यथा, पर पढ़ें।

भौंरा स्थापित करना

निर्देशों का पालन करें एनवीडिया ऑप्टिमस के साथ लैपटॉप कितनी अच्छी तरह काम करते हैं?

वर्तमान में इन्हें एक भौंरा डेवलपर द्वारा अद्यतित रखा गया है।

एक बार जब आपने भौंरा स्थापित किया है और रिबूट किया गया है, तो आप प्रोग्राम का उपयोग करके प्रोग्राम लॉन्च करते समय उपयोग करने के लिए ग्राफिक्स कार्ड का चयन करने में सक्षम होंगे optirun
उदाहरण के लिए:

optirun blender

सभी सही ढंग से काम करता है, तो जल्दी से परीक्षण करने के लिए, का उपयोग करें:

optirun glxspheres

आप रंगीन कताई क्षेत्रों के साथ एक कार्यक्रम देखेंगे, अगर सभी सही ढंग से काम कर रहे हैं।

सत्यापित करें कि टर्मिनल में GL विक्रेता स्ट्रिंग में nvidia शब्द है ।
यदि आप केवल चलाते हैं glxspheres, तो आप देखेंगे कि विक्रेता स्ट्रिंग में इंटेल कार्ड शामिल है।

CUDA प्रोग्राम चलाते समय, आपको CUDA टूलकिट और एनवीडिया ड्राइवर को इंस्टॉल करना होगा। यदि आप कार्यक्रमों को संकलित करने का इरादा रखते हैं, तो आपको एसडीके की भी आवश्यकता है। इंस्टॉलर्स http://developer.nvidia.com/cuda-downloads पर पाए जा सकते हैं , कृपया अपने ऑप्टिमस लैपटॉप को बोर करने से पहले नीचे दिए गए निर्देशों को पढ़ें।

CUDA की स्थापना

चालक

मैं उबंटू के पैकेज मैनेजर से एनवीडिया ड्राइवर स्थापित करने की सलाह देता हूं। यदि आप भौंरा स्थापित करते हैं, तो आपको चालक के बारे में चिंता करने की आवश्यकता नहीं है। अन्यथा, स्थापना के बाद, https://idubuntu.com/a/107746/6969 पर वर्णित के रूप में एनवीडिया लाइब्रेरी को अक्षम करें । यदि आप नहीं करते हैं, तो आप 3D त्वरण खो देंगे और संभवतः कम रिज़ॉल्यूशन पर अटक सकते हैं।

टूलकिट

मूल रूप से आपको इंस्टॉलर डाउनलोड करना होगा, इसे निष्पादन योग्य बनाना होगा और इसे चलाना होगा। - इंस्टॉलर डाउनलोड करें। 9 जनवरी 2013 तक, 5.0.35 सबसे हाल का ड्राइवर है। जैसा कि मैंने एक 64-बिट OS है, मैं 64-बिट 11.10 उबंटू पैकेज का उपयोग करता हूं (हालांकि मैं 12.10 चला रहा हूं) - इसे निष्पादन योग्य बनाएं और स्थापना की अनुमति दें /usr/local/cuda:

chmod +x cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run
sudo ./cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run

जब इंस्टॉलेशन संदेश होता है जो आपसे पूछता है कि CUDA को कहां स्थापित करना है, तो डिफ़ॉल्ट को स्वीकार करने के लिए Enter दबाएं /usr/local/cuda:

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

स्थापना के बाद, यह कुछ संदेशों को मुद्रित करेगा जो आपके पुस्तकालय खोज पथ में कोडा लाइब्रेरी निर्देशिका डालने का सुझाव देते हैं:

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

यदि आप चाहें, तो आप इस चरण को छोड़ सकते हैं, लेकिन फिर आपको LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATHप्रोग्राम चलाते समय बाद में सेट करना होगा।

एसडीके

यदि आप CUDA अनुप्रयोगों को संकलित करने में सक्षम होना चाहते हैं, तो आप एसडीके को उसी तरह स्थापित कर सकते हैं जैसा कि ऊपर वर्णित है। डाउनलोड करें, इसे निष्पादन योग्य बनाएं और इसे चलाएं (जड़ के रूप में नहीं, उदाहरण के बिना sudo!)।

CUDA का उपयोग करना

CUDA को काम करने के लिए एनवीडिया-संचालित एक्स सर्वर की आवश्यकता नहीं है। उस स्थिति में आप अपना यादृच्छिक परीक्षण कार्यक्रम चला सकते हैं जैसे:

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: $ LD_LIBRARY_PATH someComputallyIntensiveProgram

यदि आपने CUDA को अपने पुस्तकालय पथ में नहीं जोड़ा है, तो आपको आवश्यकता होगी:

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: / usr / local / cuda / lib64: / usr / स्थानीय / कोडा: lib: $ LD_LIBRARY_PATH someComputallyIntensiveProgram।

(यदि आपका प्रोग्राम 64-बिट है, तो आप 32-बिट पथ को उससे हटा सकते हैं)।

यदि CUDA प्रोग्राम में OpenGL का उपयोग करके प्रदर्शित करने के लिए कुछ है, तो आपको ऑप्टिरन का उपयोग करना होगा:

 optirun blender

या, यदि आपने CUDA को अपने डिफ़ॉल्ट पथ में नहीं जोड़ा है:

LD_LIBRARY_PATH = / usr / local / cuda / lib64: / usr / स्थानीय / cuda / lib: $ LD_LIBRARY_PATH ऑप्टिरन ब्लेंडर

ब्लेंडर बिल्ड स्थापित करना

(पूर्व संकलित CUDA कर्नेल के साथ)

जब आप दौड़ते हैं optirun blender, तो आपको ब्लेंडर से यह कहते हुए संदेश मिल सकता है कि CUDA कर्नेल संकलन विफल हो गया है, और टर्मिनल में एक संदेश निम्न के जैसा है:

Compiling CUDA kernel ...
nvcc warning : Option '--opencc-options (-Xopencc)' is obsolete and ignored, when
targeting compute_20, sm_20, or higher
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
CUDA kernel compilation failed, see console for details.

यदि आप ब्लेंडर के GPU रेंडरिंग फीचर का उपयोग करना चाहते हैं, तो आपको पूर्व-संकलित CUDA कर्नेल के साथ ब्लेंडर बिल्ड की आवश्यकता हो सकती है। Blender.org से निर्मित सभी में CUDA कर्नेल के पूर्व-संकलित हैं; ppa: cheleb / blender-svn buildds ( अधिक जानकारी इस सवाल पर ) नहीं।

आधिकारिक ब्लेंडर बिल्ड स्थापित करने के लिए, बस इस उत्तर में दिए गए निर्देशों का पालन करें ।

यदि आपने ब्लेंडर को स्थापित किया है /usr/lib/blender, तो आपको टर्मिनल से ब्लेंडर चलाने में सक्षम होना चाहिए और इसके साथ GPU रेंडरिंग का उपयोग करना चाहिए:

 optirun '/usr/lib/blender/blender'

भौंरा के हाल के संस्करणों (भौंरा / स्थिर पीपीए से स्थापित) को usermodकमांड की आवश्यकता नहीं है । मैं स्थापना निर्देश Askubuntu.com/a/36936/6969 पर अपडेट रखूंगा , इसलिए कृपया अपने इंस्टॉलेशन निर्देशों को कॉपी करने के बजाय उस पोस्ट से लिंक करें।
लेकेनस्टाइन

@Lekensteyn ठीक है, हो गया!
पीटर कैसट्टा

2

लिनक्स के तहत हाइब्रिड ग्राफिक्स (आमतौर पर इंटेल एकीकृत ग्राफिक्स और एनवीडिया असतत ग्राफिक्स) का समर्थन वर्तमान में थोड़ा परेशानी भरा है। एक्स सर्वर फील्ड में कुछ धीरे-धीरे चल रहा है लेकिन अपनी सांस को रोककर न रखें।

जैसा कि आपने अनुमान लगाया है कि भौंरा वर्तमान में जाने का एक अच्छा तरीका है।

मैंने हाल ही में इंटेल / एनवीडिया ग्राफिक्स के साथ एक एएसयूएस एन 55 लैपटॉप खरीदा था जिसे मैं यूएडीए का उपयोग करने के लिए ब्लेंडर साइकिल रेंडरर प्राप्त करने में सक्षम था।

जब मैंने उबंटू 12.04 स्थापित किया, तो यह इंटेल ग्राफिक्स चालक को डिफ़ॉल्ट रूप से एकीकृत ग्राफिक्स का उपयोग करता था। नोवो ग्राफिक्स ड्राइवर को स्थापित नहीं करना चाहिए।

फिर मैंने एक टर्मिनल खोला और किया:

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

उसके बाद मैंने किया (स्थापना निर्देशों द्वारा अनुशंसित):

sudo usermod -a -G bumblebee $USER

फिर मैंने रिबूट किया।

उदाहरण के लिए, प्रोग्राम लॉन्च करते समय ड्राइवर का चयन करने के लिए ऑप्टिरुन प्रोग्राम का उपयोग करें:

optirun blender

यह जांचने के लिए कि क्या सभी कार्य सही तरीके से उपयोग करते हैं:

optirun glxspheres

और सत्यापित करें कि GL विक्रेता स्ट्रिंग में Nvidia शब्द है। यदि आप इसके बजाय भागते हैं:

glxspheres

विक्रेता स्ट्रिंग में इंटेल शब्द होना चाहिए


क्या भौंरा स्थापित करने से पहले मुझे एनवीडिया ड्राइवरों को स्थापित करने की आवश्यकता होगी? मैं अनुमान लगा रहा हूं कि आपने अपने जवाब को कैसे दिया, इसके आधार पर नहीं। इसके अलावा, यह देखना अच्छा है कि कोई व्यक्ति ऑप्टिमस कार्ड के साथ Ubuntu पर CUDA का उपयोग करने में सक्षम है! 15 प्रतिनिधि मिलते ही मैं इसे वोट करूंगा। :)
पीटर कैसट्टा

ठीक है, मैंने भौंरा स्थापित किया। मैंने उपयोग किया optirunऔर मैं यह सत्यापित कर सकता हूं कि 3D व्यूपोर्ट को रेंडर करने के लिए ब्लेंडर मेरे nVidia GPU का उपयोग कर रहा था। हालांकि, ब्लेंडर उपयोगकर्ता वरीयता में ड्रॉपडाउन में कोई "जीपीयू" विकल्प नहीं है। यह केवल "सीपीयू" को सूचीबद्ध करता है। इस स्क्रीनशॉट को देखें । CUDA का उपयोग करने के लिए मुझे अतिरिक्त ड्राइवर स्थापित करने की आवश्यकता होगी?
पीटर कैसट्टा

1

मुझे लगता है कि CUDA के सभी उदाहरणों को चलाने के लिए, भौंरा का उपयोग करते हुए, आपको ड्राइवरों को यहां से 295.40 स्थापित करना होगा और स्थापना के दौरान ओवरराइड नहीं करना होगा config x11

फिर आपको उदाहरणों को संकलित करने और कार्यक्रम चलाने के लिए उसी ड्राइवर का उपयोग करना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.