c++ - Including thrust/sort.h before curand_kernel.h gives compilation error -
यह कोड ठीक संकलित करता है:
#include & lt; curand_kernel.h & gt; # शामिल करें & lt; जोर / क्रम। & Gt; Int मुख्य (शून्य) {वापसी 0; }
जबकि यह संकलन त्रुटियों को देता है:
#include & lt; thrust / sort.h & gt; # शामिल करें & lt; curand_kernel.h & gt; Int मुख्य (शून्य) {वापसी 0; }
CUDA 6 मुझे तीन त्रुटियों को देता है:
... curand_mtgp32_kernel.h (315): त्रुटि: __device__ फ़ंक्शन ("__ सिंकट्रेड्स") को कॉल करना __host__ __device__ फ़ंक्शन ("curand_mtgp32_single") से अनुमति नहीं है ... शामिल / curand_mtgp32_kernel.h (373): त्रुटि: __होस्ट__ __device__ फ़ंक्शन ("curand_mtgp32_single_specific") से __device__ फ़ंक्शन ("__ सिंकट्रेड्स") को कॉल करने की अनुमति नहीं है। .. curand_kernel.h (392): चेतावनी: गैर-शून्य समारोह "__curand_uint32_as_float"
पर CUDA 5 के अंत में वापस लौटाने की कथन मुझे केवल मिलते हैं:
< कोड> ... curand_kernel.h (405): चेतावनी: गैर-शून्य फ़ंक्शन "__curand_uint32_as_float"
के अंत में वापस बयान दर्ज करें जहां "..." मेरी CUDA स्थापना निर्देशिका है। ऐसा लगता है कि इन सभी क्षेत्रों को मैक्रोज़ परीक्षण में लपेटा जाता है कि क्या __CUDA_ARCH __
परिभाषित किया गया है, या उसका मूल्य क्या है मैं इस समस्या को केवल sort.h
के साथ देख रहा / रही हूं, विभिन्न अन्य प्रमुख शीर्षलेखों के साथ नहीं हूं (होस्ट / डिवाइस वैक्टर, स्कैन, स्कैटर + इकट्ठा और कुछ फैंसी इटरेटर्स) )।
मैं (आसानी से और समझदारी से) अपने मौजूदा प्रोजेक्ट में सभी हेडर नहीं बना सकता आत्मनिर्भर, इस व्यवहार को देखते हुए क्या कोई भी मुझे समझा सकता है कि ऑर्डर यहां क्यों होता है, या क्या यह इन शीर्षलेखों में से किसी एक का बग या 'फीचर' है?
यह एक ज्ञात समस्या है (यह वास्तव में 2 अलग-अलग समस्याएं हैं)
यह भविष्य के रिलीज में तय किया जाना चाहिए।
इस बीच, आप के आसपास काम करने में सक्षम होना चाहिए यह उन हैडर फाइलों को शामिल करने के क्रम को पीछे कर, या फिर आप वर्तमान में अपडेट करने की कोशिश कर सकते हैं।
Comments
Post a Comment