2010-04-23 11 views
11

के साथ विशेष गणना मोड मेरे पास एनवीडिया + ओपनसीएल के साथ विशेष गणना मोड का प्रश्न है।ओपनसीएल + एनवीडिया

मैं एनवीडिया-जीपीयू पर एनवीडिया-एसएमआई के साथ अनन्य गणना मोड (कुडा प्रोग्रामिंग गाइड 3.0 से पृष्ठ 74) स्थापित कर सकता हूं। इसका मतलब है, केवल एक प्रोग्राम जीपीयू पर गणना कर सकता है।

स्वचालित रूप से ऐप की तुलना में cuda रनटाइम शेड्यूल।

लेकिन मैं एक इस मामले में OpenCL-कार्यक्रमों के साथ समस्या है: setted अनन्य गणना मोड और दूसरा OpenCL-कार्यक्रम कॉल clGetDeviceInfo (..., CL_DEVICE_AVAILABLE, ...) के साथ एक GPU पर एक अगर आवेदन रन के साथ एक ही जीपीयू परिणाम == CL_TRUE है। उसके बाद यदि ओपनक्ल-एप इस डिवाइस पर एक संदर्भ बनाने की कोशिश करता है, तो चल रहे ऐप (दोनों) को क्रैश करने से।

मैं ओपनसीएल के साथ एक उपलब्ध जीपीयू कैसे ढूंढ सकता हूं?

धन्यवाद।

+0

यह संभवतः ओपनसीएल कार्यान्वयन में एक बग है। इसके बारे में एनवीडिया से संपर्क करने का प्रयास करें या एनवीडिया फ़ोरम में प्रश्न पोस्ट करें जहां एक एनवीडिया डेवलपर इसे उठा सकता है। – shoosh

उत्तर

1

clGetDeviceIds डिवाइस और उनके डिवाइस आईडी की संख्या देता है। फिर आप जांच सकते हैं कि प्रत्येक डिवाइस उपलब्ध है या नहीं। मुझे यकीन नहीं है कि यह दुर्घटना को हल करेगा हालांकि।

0

मेरे पास एक समान समस्या है जहां मैं सूची में सबसे अच्छा ओपनसीएल डिवाइस ढूंढना चाहता था। मुझे कोई समाधान नहीं मिला, इसलिए मैंने खुद को लिखा है। यह किसी डिवाइस पर एक संदर्भ बनाने की कोशिश करेगा। यदि यह नहीं कर सकता है, तो यह अगले की कोशिश करेगा।

यह कई ओपनसीएल प्लेटफॉर्म का भी समर्थन करता है। आप nvidia (केवल gpu), amd (gpu & cpu), इंटेल (cpu) और सेब (gpu & cpu) के बीच चुन सकते हैं।

आप GitHub पर इसे पा सकते हैं: https://github.com/nbigaouette/oclutils/

मैं अभी भी हालांकि एक बेहतर ताला तंत्र की तलाश में हूँ।

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