کامپایلرها کدهای بهینه شده برای معماری آیای-۳۲ و اینتل ۶۴ و کدهای غیربهینه شده برای پردازندههای غیر اینتل اما سازگار مانند پردازندههای خاص ایامدی تولید میکنند. نسخه ویژه ای از کامپایلر (۱۱٫۱) برای توسعه برنامههای مبتنی بر Linux برای پردازندههای (ایتانیوم IA-64 (۲ در دسترس است.
کامپایلر ۱۴٫۰ پشتیبانی از دستگاههای اندروید مبتنی بر اینتل و بهینهسازی شده و دستورالعملهای SSE Family را برای بهبود عملکرد اضافه کردهاست. نسخه ۱۳٫۰ پشتیبانی از پردازنده زئون فای اینتل را اضافه کرد. این پشتیبانی از بردارسازی خودکار، که میتواند دستورالعملهای اساسایی۲، اساسایی۳، اساسایی، اساساسئی۳، اساسایی۴، ایویایکس و AVX2SIMD و نسخه سامانه نهفته برای Intel MMX و MMX 2 را تولید کند، ادامه دارد.[۵] استفاده از چنین دستورالعملی از طریق کامپایلر میتواند منجر به بهبود عملکرد برنامه در برخی از برنامهها با معماری آیای-۳۲ و اینتل ۶۴ شود، در مقایسه با برنامههای ساخته شده با کامپایلرها که از این دستورالعملها پشتیبانی نمیکنند.
کامپایلرهای اینتل از کیلک پلاس پشتیبانی میکنند (که در نسخه ۱۹٫۱ حذف شدهاست)، این یک توانایی برای نوشتن کدهای برداری و موازی است که میتواند در پردازندههای IA-32 و Intel 64 استفاده شود یا میتواند در پردازندههای زئون فای بارگیری شود. آنها همچنین پشتیبانی از اپن امپی ۴، چند پردازی متقارن، موازی سازی خودکار و پارالایزاسیون خودکار هدایت شده (GAP) را ادامه میدهند. با قابلیت افزودنی کلاستر اوپنامپی، کامپایلرها همچنین میتوانند بهطور خودکار تماسهای رابط انتقال پیام برای چندپردازشی حافظه توزیع شده از بخشنامههای اوپنامپی را ایجاد کنند.
Collection و زنجیره ابزار گنو سازگار است. کامپایلر سی++ اینتل برای اندروید در ویندوز، OS X یا لینوکس میزبانی میشود و با اندروید اِندیکی، از جمله جییسیسی و اکلیپس(Eclipse IDE) سازگار است. کامپایلرهای اینتل به دلیل عملکردی که میتوانند با اندازهگیری توسط معیارهایی مانند معیارهای SPEC CPU اندازهگیری کنند، شناخته شدهاند.
بهینهسازیها
کامپایلرهای اینتل با استفاده از پردازندههایی که از معماریهای اینتل پشتیبانی میکنند، برای سیستمهای رایانه ای بهینه میشوند. آنها برای به حداقل رساندن غرفهها (stalls) و تولید کدی طراحی شدهاند که در کمترین تعداد چرخه ممکن اجرا میشود. کامپایلر سی++ اینتل از سه تکنیک سطح بالا جداگانه برای بهینهسازی برنامه کامپایل شده پشتیبانی میکند: ببهینه سازی درون تابع (آیپیاو)، بهینهسازی هدایت شده با پروفایل (پیجییاو) و بهینهسازیهای سطح بالا (اچالاو). کامپایلر سی++ اینتل در محصولات Parallel Studio XE همچنین از ابزارها، تکنیکها و پسوند زبانی برای افزودن و حفظ موازی سازی برنامهها در پردازندههای IA-32 و Intel 64 پشتیبانی میکند و امکان پردازش پردازندههای زئون فای اینتل را فراهم میکند.
بهینهسازی با راهنمای پروفایل به حالت بهینهسازی اشاره دارد که در آن کامپایلر قادر است به دادههای حاصل از اجرای نمونه برنامه از طریق مجموعه ورودی نماینده دسترسی پیدا کند. دادهها نشان میدهد که کدام مناطق از برنامه با دفعات بیشتری اجرا میشوند و کدام مناطق با دفعات کمتری اجرا میشوند. همه بهینهسازیها از بازخورد هدایت شده توسط پروفایل بهرهمند میشوند چون هنگام تصمیمگیری در مورد تدوین، کمتر به روشهای ابتکاری اعتماد دارند.
بهینهسازیهای سطح بالا بهینهسازیهای انجام شده روی نسخه ای از برنامه است که نگاه نزدیک تری به کد منبع دارد. این شامل عوض شدن حلقه، همجوشی حلقه، شکافت حلقه، باز کردن حلقه، پیش تنظیم دادهها و موارد دیگر است.[۶]
بهینهسازی میان فرآیندی، کامپایلرهای معمولی را بهنه سازی میکند اما با استفاده از دامنه گستردهتر که ممکن است شامل چندین روش، چندین پرونده یا کل برنامه باشد.[۷]
دیوید مونیاوکس از کامپایلر اینتل انتقاد کردهاست که بهطور پیش فرض، بهینهسازیهای نقطه شناور را اعمال میکند که توسط استاندارد سی مجاز نیست و به پرچمهای خاصی با کامپایلرهای دیگر مانند جیسیسی نیاز دارند.[۸]
معماری AMD64 (برای ویندوز)، بهینهسازی پیش محاسبات احتمالی مبتنی بر نرمافزار (SSP)، گزارشهای بهینهسازی حلقه بهبود یافته.
کامپایلر Intel C ++ 10.0
۵ ژوئن ۲۰۰۷
موازی سازی و بردار ساز بهبود یافته، پخش جریانی SIMD Extensions 4 (SSE4)، گزارشهای بهینهسازی جدید و پیشرفته برای تحولات حلقه پیشرفته، پیادهسازی جدید مدیریت بهینهسازی بهینه شده.
کامپایلر Intel C ++ 10.1
۷ نوامبر ۲۰۰۷
کتابخانه زمان اجرا سازگاری OpenMP * جدید: اگر از OpenMP RTL جدید استفاده میکنید، میتوانید با کتابخانهها و اشیا built ساخته شده توسط Visual C ++ ترکیب و مطابقت دهید. برای استفاده از کتابخانههای جدید، باید از گزینه جدید "-Qopenmp / Qopenmp-lib: compat" در ویندوز و "-openmp -openmp-lib: compat" در Linux استفاده کنید. این نسخه از کامپایلر Intel از مواد ذاتی بیشتری از Visual Studio 2005 پشتیبانی میکند.
پشتیبانی از VS2008 - خط فرمان فقط در این نسخه. ادغام IDE هنوز پشتیبانی نشدهاست.
کامپایلر Intel C ++ 11.0
نوامبر ۲۰۰۸
پشتیبانی اولیه از C ++ 11. ادغام VS2008 IDE در ویندوز. OpenMP 3.0. منبع بررسی برای حافظه استاتیک / تشخیص موازی.
کامپایلر Intel C ++ 11.1
۲۳ ژوئن ۲۰۰۹
پشتیبانی از آخرین دستورالعملهای Intel SSE SSE4.2، AVX و AES. برنامه افزودنی خطایاب موازی. ادغام پیشرفته در Microsoft Visual Studio , Eclipse CDT 5.0 و Mac Xcode IDE.
Intel C ++ Composer XE 2011 تا بروزرسانی ۵ (کامپایلر ۱۲٫۰)
۷ نوامبر ۲۰۱۰
برنامههای افزودنی زبان Cilk Plus، موازی سازی خودکار هدایت شده، پشتیبانی بهتر C ++ 11.[۹]
Intel C ++ Composer XE 2011 Update 6 و بالاتر (کامپایلر ۱۲٫۱)
۸ سپتامبر ۲۰۱۱
افزونههای زبان Cilk Plus برای پشتیبانی از مشخصات نسخه ۱٫۱ به روز شده و علاوه بر ویندوز و لینوکس در Mac OS X نیز موجود است، Threading Building Blocks برای پشتیبانی از نسخه ۴٫۰ به روز شدهاست، اپل از Mac OS X پشتیبانی میکند، پشتیبانی C ++ 11 از جمله پشتیبانی از Variadic را بهبود میبخشد الگوها، پشتیبانی از OpenMP 3.1.
Intel C ++ Composer XE 2013 (کامپایلر ۱۳٫۰)
۵ سپتامبر ۲۰۱۲
پشتیبانی مبتنی بر لینوکس از پردازندههای پردازنده Intel Xeon Phi، پشتیبانی از Microsoft Visual Studio 12 (دسکتاپ)، پشتیبانی از gcc 4.7، پشتیبانی از دستورالعملهای Intel AVX 2، به روزرسانیهای موجود برای بهبود عملکرد برنامه.[۱۰]
Intel C ++ Composer XE 2013 SP1 (کامپایلر ۱۴٫۰)
۴ سپتامبر ۲۰۱۳
نصب کننده آنلاین؛ پشتیبانی از پردازندههای Intel Xeon Phi؛ پیش نمایش Win32 فقط برای گرافیک Intel پشتیبانی میکند. پشتیبانی از C ++ 11 بهبود یافتهاست
سرعت را بهینه کنید و برخی از بهینهسازیها را فعال کنید
O3/
O3-
همه بهینهسازیها را به عنوان O2 و بهینهسازیهای حلقه فشرده را فعال کنید
arch:SSE3/
msse3/-
SSE3، SSE2 و دستورالعملهای SSE را قادر میسازد بهینهسازی برای پردازندههای غیر اینتل[۱۱]
fast/
fast-
مختصر نویسی در ویندوز این برابر است با " / O3 / Qipo / QxHost / Opred-div- "؛ در Linux " -O3 -ipo -static -xHOST-no-prec-div ". توجه داشته باشید که پردازنده خاص بهینهسازی پرچم (-xHOST) برای پردازنده بهینهسازی وارد شده در آن تنها پرچم fast که ممکن است نادیده گرفتهاست
Qprof-gen/
prof_gen-
برنامه را کامپایل کرده و برای اجرای پروفایل از آن استفاده کنید
Qprof-use/
prof_use-
فقط پس از اجرای برنامه ای که قبلاً با استفاده از prof_gen کامپایل شده بود، قابل استفاده است. در هر مرحله از مراحل گردآوری از اطلاعات پروفایل استفاده میکند
اشکال زدایی
کامپایلر اینتل اطلاعات اشکال زدایی استاندارد برای اشکال زداهای رایج (مانند DWARF 2 در لینوکس، مشابه gdb و COFF برای ویندوز) را ارائه میدهد. پرچمهایی که با اطلاعات اشکال زدایی کامپایل میشوند Zi/ در ویندوز و -g در لینوکس هستند. اشکال زدایی در ویندوز با استفاده از خطایاب ویژوال استودیو(VS) و در لینوکس با استفاده از gdb انجام میشود.
در حالی که کامپایلر اینتل میتواند یک خروجی رخنمانگاری سازگار با gprof ایجاد کند، اینتل همچنین یک پروفایل آماری سطح هسته و سیستم را به نام Intel VTune Profiler فراهم میکند. VTune را میتوان از طریق خط فرمان یا از طریق GUI موجود در لینوکس یا ویندوز استفاده کرد. همچنین میتواند در ویژوال استودیو در ویندوز یا اکلیپس (Eclipse) در لینوکس ادغام شود). علاوه بر ثبت کننده (پروفایلر) VTune , Intel Advisor نیز وجود دارد که در زمینه بهینهسازی برداری، مدلسازی بارگیری، طراحی نمودار جریان و ابزارهای طراحی رشته و نمونه سازی تخصص دارد.
اینتل همچنین ابزاری را برای شناسایی خطای حافظه و نخ با نام Intel Inspector XE ارائه میدهد. در مورد خطاهای حافظه، به تشخیص نشت حافظه، خرابی حافظه، تخصیص / عدم تخصیص تطابق API و استفاده ناسازگار از API حافظه کمک میکند. با توجه به خطاهای نخ (threading)، این امر به شناسایی انواع مختلف داده (heap و stack)، بنبستها و خطاهای همگام سازی API کمک میکند.
↑A. J. C. Bik, The Software Vectorization Handbook (Intel Press, Hillsboro, OR, 2004), شابک۰−۹۷۴۳۶۴۹−۲−۴.
↑The Software Optimization Cookbook, High-Performance Recipes for IA-32 Platforms, Richard Gerber, Aart J.C. Bik, Kevin B. Smith, and Xinmin Tian, Intel Press, 2006
↑Intel C++ Compiler XE 13.0 User and Reference Guides