compiler-optimization पर टैग किए गए जवाब

कंपाइलर ऑप्टिमाइज़ेशन में रन-टाइम या ऑब्जेक्ट आकार या दोनों को कम करने के लिए एक कंपाइलर को शामिल करना शामिल है। यह संकलक तर्कों (यानी CFLAGS, LDFLAGS), संकलक प्लगइन्स (उदाहरण के लिए DEHYDRA) या संकलक (जैसे संशोधित स्रोत कोड) से सीधे संशोधनों का उपयोग करके पूरा किया जा सकता है।

10
एक संयुक्त लूप की तुलना में अलग-अलग छोरों में एलीमेंटवाइज़ जोड़ बहुत तेज़ी से क्यों होते हैं?
मान लीजिए a1, b1, c1, और d1ढेर स्मृति और मेरे संख्यात्मक कोड इंगित निम्नलिखित मुख्य लूप है। const int n = 100000; for (int j = 0; j < n; j++) { a1[j] += b1[j]; c1[j] += d1[j]; } इस लूप को किसी अन्य बाहरी forलूप के माध्यम से 10,000 …

12
GCC एक * a * a * a * a (a (* a * a) * (a * a * a) ऑप्टिमाइज़ क्यों नहीं करता है?
मैं एक वैज्ञानिक अनुप्रयोग पर कुछ संख्यात्मक अनुकूलन कर रहा हूं। एक बात जो मैंने देखी वह यह है कि जीसीसी कॉल pow(a,2)को इसमें संकलित करके अनुकूलित करेगा a*a, लेकिन कॉल pow(a,6)अनुकूलित नहीं है और वास्तव में लाइब्रेरी फ़ंक्शन को कॉल करेगा pow, जो प्रदर्शन को धीमा कर देता है। …

10
64-बिट के साथ 32-बिट लूप काउंटर को बदलना इंटेल सीपीयू पर _mm_popcnt_u64 के साथ पागल प्रदर्शन विचलन का परिचय देता है
मैं popcountडेटा के बड़े सरणियों का सबसे तेज़ तरीका ढूंढ रहा था । मुझे एक बहुत ही अजीब प्रभाव का सामना करना पड़ा : मेरे पीसी पर प्रदर्शन ड्रॉप को 50% unsignedतक uint64_tबनाने के लिए लूप चर को बदलना । बेंचमार्क #include <iostream> #include <chrono> #include <x86intrin.h> int main(int argc, …

9
स्विफ्ट बीटा प्रदर्शन: सरणियों को सॉर्ट करना
मैं स्विफ्ट बीटा में एक एल्गोरिथ्म लागू कर रहा था और देखा कि प्रदर्शन बहुत खराब था। गहरी खुदाई के बाद मुझे महसूस हुआ कि अड़चनों में से एक छँटाई सरणियों की तरह सरल थी। प्रासंगिक हिस्सा यहाँ है: let n = 1000000 var x = [Int](repeating: 0, count: n) …

6
यदि मैं गति के बजाय आकार के लिए अनुकूलन करता हूं तो जीसीसी 15-20% तेज कोड क्यों उत्पन्न करता है?
मैंने पहली बार 2009 में देखा कि जीसीसी (कम से कम मेरी परियोजनाओं पर और मेरी मशीनों पर) गति को ( या ) के बजाय यदि मैं आकार ( -Os) के लिए अनुकूलित करता हूं, तो मैं काफी तेज कोड उत्पन्न करने की प्रवृत्ति रखता हूं और मैं सोच रहा …

1
रस्ट कंपाइलर कोड को यह मानकर ऑप्टिमाइज़ क्यों नहीं करता कि दो परस्पर संदर्भ अलग-अलग नहीं हो सकते?
जहां तक ​​मुझे पता है, संदर्भ / पॉइंटर एलियासिंग कंपाइलर की क्षमता को अनुकूलित कोड उत्पन्न करने में बाधा डाल सकते हैं, क्योंकि उन्हें यह सुनिश्चित करना चाहिए कि उत्पन्न बाइनरी सही तरीके से उस मामले में व्यवहार करती है जहां दो संदर्भ / पॉइंटर्स वास्तव में उपनाम हैं। उदाहरण …

12
SSE4.2 और AVX निर्देशों के साथ Tensorflow को कैसे संकलित करें?
यह संदेश है कि एक स्क्रिप्ट चलाने से प्राप्त होता है यह जांचने के लिए कि क्या Tensorflow काम कर रहा है: I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so.5 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened …

2
C में &&& ऑपरेशन क्या है
#include <stdio.h> volatile int i; int main() { int c; for (i = 0; i < 3; i++) { c = i &&& i; printf("%d\n", c); } return 0; } उपयोग करके संकलित उपरोक्त कार्यक्रम का आउटपुट gccहै 0 1 1 साथ -Wallया -Waddressविकल्प, gccएक चेतावनी जारी करता है: warning: …

3
जीसीसी लगभग समान सी कोड के लिए इस तरह की अलग-अलग विधानसभा क्यों उत्पन्न करता है?
एक अनुकूलित ftolफ़ंक्शन लिखते समय मुझे कुछ बहुत ही अजीब व्यवहार मिला GCC 4.6.1। मैं आपको पहले कोड दिखाऊंगा (स्पष्टता के लिए मैंने अंतर चिह्नित किया है): fast_trunc_one, C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i …

4
क्या मैं एक पूर्णांक की सीमा देकर अनुकूलक का संकेत दे सकता हूँ?
मैं एक intप्रकार का उपयोग कर रहा हूं एक मान संग्रहीत करने के लिए। कार्यक्रम के शब्दार्थ द्वारा, मान हमेशा एक बहुत छोटी श्रेणी (0 - 36) में भिन्न होता है, और int(ए char) केवल सीपीयू दक्षता के कारण उपयोग किया जाता है। ऐसा लगता है कि पूर्णांक की इतनी …

2
मेमने को सादे कार्यों की तुलना में संकलक द्वारा बेहतर क्यों चुना जा सकता है?
उनकी किताब में The C++ Standard Library (Second Edition)निकोलई जोसुटिस ने कहा है कि मेमने को सादे कार्यों की तुलना में बेहतर तरीके से संकलक द्वारा अनुकूलित किया जा सकता है। इसके अलावा, C ++ कंपाइलर लैंबडास को बेहतर करते हैं, क्योंकि वे साधारण कार्य करते हैं। (पेज पेज 3) …

5
कैसे देखें कि कौन से झंडे -मार = देशी सक्रिय होंगे?
मैं GCC 4.3 का उपयोग करके अपने C ++ ऐप का संकलन कर रहा हूं। इसके बजाय मैं अपने द्वारा उपयोग किए जा रहे ऑप्टिमाइज़ेशन फ़्लैग का चयन कर रहा हूं -march=native, जो कि सिद्धांत में उस हार्डवेयर पर लागू होने वाले सभी ऑप्टिमाइज़ेशन फ़्लैग को जोड़ना चाहिए, जिस पर …

2
शेपलेस में नट प्रकार की सीमा
आकारहीन में, नेट प्रकार एक प्रकार के स्तर पर प्राकृतिक संख्याओं को एनकोड करने का एक तरीका दर्शाता है। यह निश्चित आकार सूचियों के लिए उदाहरण के लिए उपयोग किया जाता है। आप प्रकार के स्तर पर भी गणना कर सकते हैं, उदाहरण के लिए Nतत्वों की एक सूची को …

5
वर्धित GCC 6 ऑप्टिमाइज़र व्यावहारिक C ++ कोड को क्यों तोड़ता है?
GCC 6 में एक नया ऑप्टिमाइज़र फ़ीचर है : यह मानता है कि thisयह हमेशा अशक्त नहीं है और इसके आधार पर अनुकूलन करता है। मान श्रेणी प्रसार अब मानता है कि C ++ सदस्य फ़ंक्शन का यह सूचक गैर-शून्य है। यह सामान्य अशक्त पॉइंटर चेक को समाप्त कर देता …

7
संकलक (या नहीं) संकलक एक गुणा में लूप के अतिरिक्त लूप का अनुकूलन क्यों नहीं कर सकता है?
यह एक ऐसा सवाल है जो मिस्टिकियल के शानदार जवाब को पढ़ते हुए दिमाग में आया : एक अनारक्षित सरणी की तुलना में सॉर्ट किए गए सरणी को संसाधित करना अधिक तेज़ क्यों है ? शामिल प्रकारों के लिए संदर्भ: const unsigned arraySize = 32768; int data[arraySize]; long long sum …

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