প্রশ্ন ট্যাগ «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
জিসিসি কেন * * * * * * * * * * * * (ট * (এ * এ * এ) * (এ * এ * ক) কে অনুকূলিত করে না?
আমি একটি বৈজ্ঞানিক অ্যাপ্লিকেশন নেভিগেশন কিছু সংখ্যাগত অপ্টিমাইজেশন করছি। একটি জিনিস আমি লক্ষ্য করেছি যে জিসিসি কলটি pow(a,2)সংকলন করে কলটি অনুকূল করে তুলবে a*a, তবে কলটি pow(a,6)অনুকূলিত হয়নি এবং প্রকৃতপক্ষে লাইব্রেরির ফাংশনটি কল করবে pow, যা কার্য সম্পাদনকে অনেক ধীর করে দেয়। (বিপরীতে, ইন্টেল সি ++ কম্পাইলার , এক্সিকিউটেবল icc, …

10
32৪-বিটের সাথে একটি 32-বিট লুপের কাউন্টার প্রতিস্থাপনের সাথে ইনটেল সিপিইউগুলিতে _mm_popcnt_u64 এর সাথে ক্রেজি পারফরম্যান্সের বিচ্যুতিগুলি প্রবর্তিত হয়
আমি popcountডেটা বৃহত অ্যারে দ্রুততম উপায় খুঁজছিলাম । আমি খুব অদ্ভুত প্রভাবের মুখোমুখি হয়েছি : লুপ ভেরিয়েবল থেকে অন্যটিতে পরিবর্তন unsignedকরছিuint64_t আমার পিসিতে 50% কর্মক্ষমতা ড্রপ করেন। বেঞ্চমার্ক #include <iostream> #include <chrono> #include <x86intrin.h> int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr << …

9
সুইফ্ট বিটা পারফরম্যান্স: অ্যারে বাছাই করা
আমি সুইফ্ট বিটাতে একটি অ্যালগরিদম বাস্তবায়ন করছিলাম এবং লক্ষ্য করেছি যে পারফরম্যান্সটি খুব খারাপ। আরও গভীর খননের পরে আমি বুঝতে পারি যে বাধাগুলির মধ্যে একটি হ'ল অ্যারে বাছাইয়ের মতো সহজ কিছু। সম্পর্কিত অংশটি এখানে: let n = 1000000 var x = [Int](repeating: 0, count: n) for i in 0..<n { …

6
আমি যদি গতির পরিবর্তে আকারের জন্য অপ্টিমাইজ করি তবে জিসিসি কেন 15-20% দ্রুত কোড উত্পন্ন করে?
আমি ২০০৯ সালে প্রথম লক্ষ্য করেছি যে জিসিসি (কমপক্ষে আমার প্রকল্পগুলিতে এবং আমার মেশিনে) আমি গতির ( বা ) পরিবর্তে আকারের ( -Os) এর জন্য অপ্টিমাইজ করলে খুব দ্রুততর কোড তৈরি করার প্রবণতা রয়েছে এবং কেন আমি তখন থেকেই ভাবছিলাম।-O2-O3 আমি এই বিস্ময়কর আচরণটি দেখায় এবং এখানে পোস্ট করার জন্য …

1
কেন মরিচা সংকলক কোডটি দুটি অপরিবর্তনীয় রেফারেন্সের উপনামটি দিতে পারে না এই ধারণা করে কোডটি অপ্টিমাইজ করে না?
যতদূর আমি জানি, রেফারেন্স / পয়েন্টার আলিয়াসিং সংকলকটির অনুকূলিত কোড উত্পন্ন করার ক্ষমতা বাধাগ্রস্ত করতে পারে, যেহেতু অবশ্যই তাদের অবশ্যই জেনারেটেড বাইনারি ক্ষেত্রে সঠিকভাবে আচরণ করে যেখানে দুটি রেফারেন্স / পয়েন্টার প্রকৃতরূপে উপনাম রয়েছে ensure উদাহরণস্বরূপ, নিম্নলিখিত সি কোডে, void adds(int *a, int *b) { *a += *b; *a += …

12
SSE4.2 এবং AVX নির্দেশাবলীর সাথে টেনসরফ্লো কীভাবে সংকলন করবেন?
টেনসরফ্লো কাজ করছে কিনা তা পরীক্ষা করতে স্ক্রিপ্ট চালানো থেকে প্রাপ্ত বার্তাটি: 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 CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library …

2
সি তে &&& অপারেশন কী
#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: the …

3
জিসিসি কেন প্রায় একই সি কোডের জন্য এ জাতীয় মূলত বিভিন্ন সমাবেশ তৈরি করে?
একটি অনুকূলিত ftolফাংশন লেখার সময় আমি কিছু খুব বিজোড় আচরণ পেয়েছিGCC 4.6.1 । আমাকে আপনাকে প্রথমে কোডটি দেখান (স্পষ্টতার জন্য আমি পার্থক্য চিহ্নিত করেছি): দ্রুত_আরঙ্ক_আপনি, সি: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) & …

4
একটি পূর্ণসংখ্যার পরিসর দিয়ে আমি কী অপটিমাইজারটি ইঙ্গিত করতে পারি?
আমি intএকটি মান সঞ্চয় করতে একটি টাইপ ব্যবহার করছি । প্রোগ্রামটির শব্দার্থবিজ্ঞানের দ্বারা, মানটি সর্বদা খুব কম পরিসরে (0 - 36) পরিবর্তিত হয় এবং int(ক নয় char) কেবলমাত্র সিপিইউ দক্ষতার কারণে ব্যবহৃত হয়। দেখে মনে হচ্ছে অনেকগুলি সংখ্যার গাণিতিক অপ্টিমাইজেশানগুলি এত ছোট সংখ্যার পূর্ণসংখ্যার উপর সম্পাদন করা যেতে পারে। এই …

2
কেন ল্যাম্বডাস সরল ফাংশনগুলির তুলনায় সংকলক দ্বারা আরও ভাল করতে পারেন?
The C++ Standard Library (Second Edition)নিকোলাই জোসুটিস তাঁর বইয়ে লিখেছেন যে ল্যাম্বডাস সংকলক দ্বারা সরল ফাংশনগুলির চেয়ে আরও ভালভাবে অনুকূল করা যেতে পারে। তদতিরিক্ত, সি ++ সংকলকগুলি ল্যাম্বডাসকে সাধারণ ক্রিয়াকলাপের চেয়ে আরও ভাল করে। (পৃষ্ঠা 213) কেন এমন? আমি ভেবেছিলাম যখন এটি ইনলাইনিংয়ের কথা আসে তখন আর কোনও পার্থক্য থাকা …

5
মার্চ = নেটিভ কোন ফ্ল্যাগটি সক্রিয় করবে তা কীভাবে দেখবেন?
আমি আমার সি ++ অ্যাপ্লিকেশনটি জিসিসি ৪.৩ ব্যবহার করে সংকলন করছি। আমি যে অপটিমাইজেশন ফ্ল্যাগগুলি ব্যবহার করছি তা ম্যানুয়ালি নির্বাচনের পরিবর্তে -march=native, যা তাত্ত্বিকভাবে আমি যে হার্ডওয়ারটি সংকলন করছি তার জন্য প্রযোজ্য সমস্ত অপ্টিমাইজেশন পতাকা যুক্ত করা উচিত। তবে এটি কীভাবে পতাকা ব্যবহার করছে তা আমি কীভাবে যাচাই করতে পারি?

2
শেপলেস এ নাট টাইপের সীমা
আকারহীন, নাট টাইপ একটি ধরণের স্তরে প্রাকৃতিক সংখ্যা এনকোড করার একটি উপায় উপস্থাপন করে। এটি নির্দিষ্ট আকারের তালিকার জন্য উদাহরণস্বরূপ ব্যবহৃত হয়। এমনকি আপনি টাইপ স্তরের গণনাও করতে পারেন, উদাহরণস্বরূপ Nউপাদানগুলির তালিকায় উপাদানের একটি তালিকা যুক্ত করুন এবং Kউপাদানগুলি সংকলনের সময় পরিচিত একটি তালিকা ফিরে পাবেন N+K। এই প্রতিনিধিত্ব কি …

5
বর্ধিত জিসিসি 6 অপ্টিমাইজার ব্যবহারিক সি ++ কোডটি কেন ভাঙবে?
জিসিসি এর একটি নতুন অপ্টিমাইজার বৈশিষ্ট্য রয়েছে : এটি ধরে নেওয়া হয় যে thisসর্বদা বাতিল হয় না এবং এর ভিত্তিতে অনুকূলিত হয়। মান পরিসীমা প্রচার এখন ধরে নেওয়া হয়েছে যে সি ++ সদস্য ফাংশনের এই পয়েন্টারটি নাল নয়। এটি সাধারণ নাল পয়েন্টার চেকগুলি সরিয়ে দেয় তবে কিছু অ-অনুসারী কোড-বেসগুলিকেও ভেঙে …

7
সংকলক কেন অনুমানযোগ্য সংযোজন লুপকে একটি গুণে অপ্টিমাইজ করতে পারে (বা না)?
এই প্রশ্নটি মাইস্টিয়ালের উজ্জ্বল উত্তরটি পড়ার সময় মাথায় আসে এমন প্রশ্নের এই প্রশ্ন: একটি বাছাই করা অ্যারের চেয়ে বাছাই করা অ্যারে প্রক্রিয়া করা কেন দ্রুত হয় ? জড়িত প্রকারের জন্য প্রসঙ্গ: const unsigned arraySize = 32768; int data[arraySize]; long long sum = 0; তার উত্তরে তিনি ব্যাখ্যা করেছেন যে ইন্টেল …

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.