एक सी ++ सीपीयू बाध्य सिमुलेशन कि मैं लिख रहा हूँ में, मैं cmath::exp
करने के लिए अपने कार्यक्रम में valgrind के माध्यम से एक टोंटी का पता लगाया गया है। यह वर्तमान में मेरे सिमुलेशन समय का 40% से अधिक खाता है। मैं इनपुट को अपेक्षाकृत छोटे डोमेन पर बाध्य कर सकता हूं, लेकिन मैं सटीकता को नियंत्रित करना चाहता हूं। मैं exp
को प्रतिस्थापित करने के लिए एक LUT (लुकअप टेबल) पर जाने पर विचार कर रहा था, लेकिन मुझे पूरा यकीन नहीं है कि यह "सही तरीका" (टीएम) कैसे करें। चिंताएं मेरे पास है:सी ++ exp lut (लुकअप तालिका)
- बड़े देखने टेबल कैश में फिट नहीं हो इस प्रकार के लिए उपयोग जवाब धीमा
- सबसे अच्छा तरीका लुकअप तालिका
- में उपयोग करने के लिए एक पूर्णांक के लिए एक डबल इनपुट कन्वर्ट करने के लिए करता है (2) इनपुट फ़ंक्शन की ढलान पर निर्भर करता है?
- क्या मैं पहिया को फिर से शुरू कर रहा हूं - क्या यह पहले से ही किया जा चुका है?
exp
के लिए एक LUT को लागू करने (/ लाइब्रेरी से शामिल) करने का सबसे अच्छा तरीका क्या है?
आपको किस डोमेन को संभालने की आवश्यकता है? –
@AlanStokes 'exp (x)' जहां 'x = [-k ... -1]', 'k> 1' और' k' केवल रनटाइम पर जाना जाता है (इस प्रकार संभवतः एलयूटी को हर बार पुनर्निर्मित करने की आवश्यकता होगी कार्यक्रम चलाया जाता है (यह ठीक है क्योंकि अनुकरण समय में दिन लग सकते हैं))। – Hooked
आपके गणना कोड का एक छोटा सा हिस्सा हमारे लिए उपयोगी हो सकता है। क्या यह एक तरह का "मुख्य लूप" है या वास्तव में एक जटिल एसओ पोस्ट में कुछ जटिल और कठिन है? –