2013-03-20 5 views
8

क्या आईईईई 754 विशेष मूल्य जैसे इंफ, नाएन प्राप्त करने के लिए सीयूडीए में कोई डिवाइस फ़ंक्शन है? मेरा मतलब स्थिर तरीका है, कुछ गणित से नहीं, जिसे संकलक द्वारा अनुकूलित किया जा सकता है।सीयूडीए में फ्लोटिंग-पॉइंट विशेष मूल्य प्राप्त करने का तरीका?

मैं केवल नैन() नामक एक डिवाइस फ़ंक्शन ढूंढने का प्रबंधन करता हूं जिसे कुछ अज्ञात स्ट्रिंग तर्क लेना चाहिए।

उत्तर

16

कैसे के बारे में CUDART_NAN (डबल) और CUDART_NAN_F (नाव) /usr/local/cuda/include/math_constants.h में परिभाषित:

#define CUDART_NAN_F   __int_as_float(0x7fffffff) 
#define CUDART_NAN    __longlong_as_double(0xfff8000000000000ULL) 

और:

#define CUDART_INF_F   __int_as_float(0x7f800000) 
#define CUDART_INF    __longlong_as_double(0x7ff0000000000000ULL) 
+0

बहुत धन्यवाद, वास्तव में मैं क्या देख रहा हूँ thats। – user0002128

+3

सीयूडीए में मिले नैन() फ़ंक्शन आईएनओ सी 99 मानक द्वारा निर्दिष्ट नैन() फ़ंक्शन है। मेरा मानना ​​है कि वही कार्य अब सी ++ 11 का हिस्सा है। ध्यान दें कि इस मानक गणित समारोह का डबल-परिशुद्धता संस्करण रॉबर्ट की ओर इशारा करते हुए समाधान का उपयोग करने से बहुत धीमा होगा, क्योंकि इसे NaN के संख्यात्मक मान को बनाने के लिए स्ट्रिंग तर्क को पार्स करने की आवश्यकता है। एकल-परिशुद्धता संस्करण, नैनफ़(), बहुत तेज़ है क्योंकि एनवीआईडीआईए जीपीयू केवल एक कैननिकल सिंगल-प्रेसिजन नाइन का समर्थन करते हैं, इसलिए यह वही है जो फ़ंक्शन देता है। – njuffa

0

CUDA अब गणित पुस्तकालय में नन्फ़ अनुदेश है।

डिवाइस नाव नन्फ़ (स्थिरांक चार * tagp)

Returns "NaN" 
संबंधित मुद्दे