इंटेल सी ++ कंपाइलर

From alpha
Jump to navigation Jump to search
Intel oneAPI DPC++/C++ Compiler
और नाम
  • icx
  • icpx
  • dpcpp (icpx -fsycl)
डेवलपर(ओं)Intel
Stable release
2023.0 / December 14, 2022; 17 months ago (2022-12-14)[1]
ऑपरेटिंग सिस्टमWindows, Linux
प्रकारCompiler
लाइसेंसFreeware, proprietary
वेबसाइटsoftware.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html
Intel C++ Compiler Classic
और नाम
  • icl
  • icpc
  • icc
डेवलपर(ओं)Intel
Stable release
2021.8.0 Build 20221119_00000 / December 14, 2022; 17 months ago (2022-12-14)[2]
ऑपरेटिंग सिस्टमWindows, macOS, Linux
प्रकारCompiler
लाइसेंसFreeware, proprietary
वेबसाइटsoftware.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html

Intel oneAPI DPC++/C++ कंपाइलर और Intel C++ कंपाइलर क्लासिक (पदावनत icl[3] Intel OneAPI HPC टूलकिट में है) Intel प्रोसेसर-आधारित सिस्टम के लिए Intel की C (प्रोग्रामिंग लैंग्वेज), C++, SYCL, और Data Parallel C++ (DPC++) कंपाइलर हैं, जो Microsoft Windows, Linux और macOS ऑपरेटिंग सिस्टम के लिए उपलब्ध हैं।[4]


सिंहावलोकन

Intel oneAPI DPC++/C++ कंपाइलर Windows और Linux के लिए उपलब्ध है और Intel IA-32, Intel 64 (उर्फ x86-64), Intel Core, Xeon को लक्षित करते हुए C, C++, SYCL, और डेटा समानांतर C++ (DPC++) स्रोत कोड को संकलित करने का समर्थन करता है। , और Xeon#Superकंप्यूटर प्रोसेसर, साथ ही Intel प्रोसेसर ग्राफिक्स Gen9 और इसके बाद के संस्करण, Intel Intel Xe|X सहित GPUe आर्किटेक्चर, और Intel Arria 10 GX FPGA के साथ Intel Programmable Acceleration Card।[5]Intel C++ Compiler Classic की तरह, यह Microsoft Visual Studio और ग्रहण (सॉफ्टवेयर) विकास वातावरण का भी समर्थन करता है, और Intel oneAPI थ्रेडिंग बिल्डिंग ब्लॉक्स, OpenMP और देशी थ्रेड्स के माध्यम से थ्रेडिंग का समर्थन करता है।

डीपीसी++[6][7] द ख्रोनोस ग्रुप के एसवाईसीएल विनिर्देशन पर निर्मित है। यह डेवलपर्स को हार्डवेयर लक्ष्य (सीपीयू और त्वरक जैसे जीपीयू और एफपीजीए) में कोड का पुन: उपयोग करने और एक विशिष्ट त्वरक के लिए कस्टम ट्यूनिंग करने की अनुमति देने के लिए डिज़ाइन किया गया है। DPC++ में C++17 और SYCL भाषा सुविधाएँ शामिल हैं और इसमें ओपन-सोर्स सामुदायिक एक्सटेंशन शामिल हैं जो SYCL को उपयोग में आसान बनाते हैं। इनमें से कई एक्सटेंशन SYCL 2020 के अनंतिम विनिर्देश द्वारा अपनाए गए थे[8] एकीकृत साझा मेमोरी, समूह एल्गोरिदम और उप-समूह सहित।

Intel ने अगस्त 2021 में नवीनतम C++ मानकों का समर्थन करने से तेजी से निर्माण समय और लाभों के लिए LLVM को पूर्ण रूप से अपनाने की घोषणा की।[9] Intel C++ कंपाइलर क्लासिक Windows, Linux, और macOS के लिए उपलब्ध है और Intel IA-32, Intel 64 (x86-64), Core, Xeon, और Xeon स्केलेबल प्रोसेसर को लक्षित करते हुए C और C++ स्रोत के संकलन का समर्थन करता है।[5] यह माइक्रोसॉफ्ट विजुअल स्टूडियो और एक्लिप्स आईडीई विकास वातावरण का समर्थन करता है। Intel C++ कंपाइलर क्लासिक Intel oneAPI थ्रेडिंग बिल्डिंग ब्लॉक्स, OpenMP और नेटिव थ्रेड्स के माध्यम से थ्रेडिंग का समर्थन करता है।

आर्किटेक्चर

इंटेल के अनुसार,[10] 2023.0 रिलीज़ के साथ शुरू, Intel oneAPI DPC++/C++ कंपाइलर सभी मौजूदा Intel सामान्य-उद्देश्य x86-64 CPU ग्राफ़िक्स प्रोसेसिंग युनिट इकाइयों का समर्थन करता है जिनमें शामिल हैं:

  • प्रोसेसर:
    • लिगेसी इंटेल IA-32 और Intel 64 (x86-64) प्रोसेसर
    • इंटेल कोर प्रोसेसर
    • इंटेल झियोन प्रोसेसर परिवार
    • इंटेल झियोन स्केलेबल प्रोसेसर
    • इंटेल झियोन प्रोसेसर मैक्स सीरीज
  • जीपीयू:
    • इंटेल प्रोसेसर ग्राफिक्स Gen9 और ऊपर
    • इंटेल एक्स वास्तुकला
    • इंटेल 10 जीएक्स एफपीजीए के साथ इंटेल प्रोग्रामेबल एक्सेलेरेशन कार्ड
    • फ्लेक्स सीरीज़ और मैक्स सीरीज़ सहित इंटेल डेटा सेंटर जीपीयू
  • इंटेल एफपीजीए

Intel C++ Compiler Classic सामान्य-उद्देश्य वाले Intel x86-64 आर्किटेक्चर CPU को लक्षित करता है जिसमें शामिल हैं:[5]* पारंपरिक इंटेल IA-32 और Intel 64 (x86-64) प्रोसेसर

  • इंटेल कोर प्रोसेसर
  • इंटेल झियोन प्रोसेसर परिवार
  • इंटेल झियोन स्केलेबल प्रोसेसर

टूलकिट

Intel oneAPI DPC++/C++ कंपाइलर या तो एक स्टैंडअलोन घटक के रूप में उपलब्ध है[11] या Intel oneAPI बेस टूलकिट, Intel oneAPI HPC टूलकिट और Intel oneAPI IoT टूलकिट के हिस्से के रूप में।[5]

Intel C++ कंपाइलर क्लासिक या तो एक स्टैंडअलोन घटक के रूप में उपलब्ध है[12] या Intel oneAPI बेस टूलकिट के हिस्से के रूप में।[5]


दस्तावेज

दस्तावेज़ीकरण Intel सॉफ़्टवेयर तकनीकी दस्तावेज़ीकरण साइट पर पाया जा सकता है।

डिबगिंग

इंटेल कंपाइलर डिबगिंग जानकारी प्रदान करता है जो सामान्य डिबगर्स (लिनक्स पर डीडब्ल्यूएआरएफ, जीएनयू डीबगर के समान, और विंडोज़ के लिए सीओएफएफ) के लिए मानक है। डिबगिंग जानकारी के साथ संकलित करने के लिए झंडे हैं /Zi विंडोज़ पर और -g लिनक्स पर। डिबगिंग विज़ुअल स्टूडियो डिबगर का उपयोग करके और लिनक्स पर, gdb का उपयोग करके विंडोज पर किया जाता है।

जबकि इंटेल कंपाइलर एक जीप्रोफ संगत प्रोफाइलर (कंप्यूटर विज्ञान) आउटपुट उत्पन्न कर सकता है, इंटेल एक कर्नेल स्तर, सिस्टम-वाइड सांख्यिकीय प्रोफाइलर भी प्रदान करता है जिसे वीट्यून कहा जाता है। वीट्यून का उपयोग कमांड लाइन से या लिनक्स या विंडोज पर शामिल जीयूआई के माध्यम से किया जा सकता है। इसे विंडोज पर विजुअल स्टूडियो, या लिनक्स पर एक्लिप्स (सॉफ्टवेयर) में भी एकीकृत किया जा सकता है)। वीट्यून प्रोफाइलर के अलावा, इंटेल सलाहकार है जो वेक्टराइजेशन ऑप्टिमाइजेशन, ऑफलोड मॉडलिंग, फ्लो ग्राफ डिजाइन और थ्रेडिंग डिजाइन और प्रोटोटाइपिंग के लिए टूल में माहिर है।

इंटेल मेमोरी और थ्रेडिंग एरर डिटेक्शन के लिए एक टूल भी प्रदान करता है जिसे इंटेल इंस्पेक्टर एक्सई कहा जाता है। मेमोरी त्रुटियों के संबंध में, यह स्मृति रिसाव , मेमोरी करप्शन, एपीआई बेमेल के आवंटन / डी-आवंटन और असंगत मेमोरी एपीआई उपयोग का पता लगाने में मदद करता है। थ्रेडिंग त्रुटियों के संबंध में, यह डेटा रेस (दोनों हीप और स्टैक), गतिरोध और थ्रेड और सिंक एपीआई त्रुटियों का पता लगाने में मदद करता है।

गैर-इंटेल प्रोसेसर के लिए समर्थन

इंटेल के C/C++ कंपाइलरों के पिछले संस्करणों की गैर-इंटेल प्रोसेसरों के लिए कम आक्रामक रूप से अनुकूलन करने के लिए आलोचना की गई है; उदाहरण के लिए, स्टीव वेस्टफील्ड ने 2005 में एएमडी वेबसाइट पर एक लेख में लिखा था:[13]

Intel 8.1 C/C++ compiler uses the flag -xN (for Linux) or -QxN (for Windows) to take advantage of the SSE2 extensions. For SSE3, the compiler switch is -xP (for Linux) and -QxP (for Windows). ... With the -xN/-QxN and -xP/-QxP flags set, it checks the processor vendor string—and if it's not "GenuineIntel", it stops execution without even checking the feature flags. Ouch!

डेनिश डेवलपर और विद्वान एग्नर फॉग ने 2009 में लिखा था:[14]

The Intel compiler and several different Intel function libraries have suboptimal performance on AMD and VIA processors. The reason is that the compiler or library can make multiple versions of a piece of code, each optimized for a certain processor and instruction set, for example SSE2, SSE3, etc. The system includes a function that detects which type of CPU it is running on and chooses the optimal code path for that CPU. This is called a CPU dispatcher. However, the Intel CPU dispatcher does not only check which instruction set is supported by the CPU, it also checks the vendor ID string. If the vendor string is "GenuineIntel" then it uses the optimal code path. If the CPU is not from Intel then, in most cases, it will run the slowest possible version of the code, even if the CPU is fully compatible with a better version.

यह विक्रेता-विशिष्ट सीपीयू प्रेषण संभावित रूप से प्रोग्रामर के ज्ञान के बिना, गैर-इंटेल प्रोसेसर पर इंटेल कंपाइलर या इंटेल फ़ंक्शन लाइब्रेरी के साथ बनाए गए सॉफ़्टवेयर के प्रदर्शन को प्रभावित कर सकता है। इसने कथित तौर पर भ्रामक बेंचमार्क (कंप्यूटिंग) का नेतृत्व किया है,[14]VIA नैनो के CPUID को बदलते समय एक घटना सहित महत्वपूर्ण रूप से बेहतर परिणाम मिले।[15] नवंबर 2009 में, एएमडी और इंटेल ने इस और संबंधित मुद्दों पर एक कानूनी समझौता किया,[16] और 2010 के अंत में, एएमडी ने इंटेल के खिलाफ एक संघीय व्यापार आयोग प्रतियोगिता कानून तय किया।[17] FTC निपटान में एक प्रकटीकरण प्रावधान शामिल था जहाँ Intel को:[18]

publish clearly that its compiler discriminates against non-Intel processors (such as AMD's designs), not fully utilizing their features and producing inferior code.

इस फैसले के अनुपालन में, इंटेल ने अपने संकलक प्रलेखन में अस्वीकरण जोड़ा:[19]

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

2013 के अंत तक, द रजिस्टर में एक लेख में आरोप लगाया गया था कि AnTuTu मोबाइल बेंचमार्क के लिए इंटेल कंपाइलर द्वारा उत्पादित ऑब्जेक्ट कोड बेंचमार्क के छोड़े गए हिस्से हैं जो एआरएम प्लेटफॉर्म की तुलना में बेहतर प्रदर्शन दिखाते हैं।[20]


रिलीज इतिहास

2003 से इंटेल सी ++ कंपाइलर के निम्न सूची संस्करण:[21]

Compiler version Release date Major new features
Intel C++ Compiler 8.0 December 15, 2003 Precompiled headers, code-coverage tools.
Intel C++ Compiler 8.1 September 2004 AMD64 architecture (for Linux).
Intel C++ Compiler 9.0 June 14, 2005 AMD64 architecture (for Windows), software-based speculative pre-computation (SSP) optimization, improved loop optimization reports.
Intel C++ Compiler 10.0 June 5, 2007 Improved parallelizer and vectorizer, Streaming SIMD Extensions 4 (SSE4), new and enhanced optimization reports for advanced loop transformations, new optimized exception handling implementation.
Intel C++ Compiler 10.1 November 7, 2007 New OpenMP* compatibility runtime library: if you use the new OpenMP RTL, you can mix and match with libraries and objects built by Visual C++. To use the new libraries, you need to use the new option "-Qopenmp /Qopenmp-lib:compat" on Windows, and "-openmp -openmp-lib:compat" on Linux. This version of the Intel compiler supports more intrinsics from Visual Studio 2005.

VS2008 support - command line only in this release. The IDE integration was not supported yet.

Intel C++ Compiler 11.0 November 2008 Initial C++11 support. VS2008 IDE integration on Windows. OpenMP 3.0. Source Checker for static memory/parallel diagnostics.
Intel C++ Compiler 11.1 June 23, 2009 Support for latest Intel SSE SSE4.2, AVX and AES instructions. Parallel Debugger Extension. Improved integration into Microsoft Visual Studio, Eclipse CDT 5.0 and Mac Xcode IDE.
Intel C++ Composer XE 2011 up to Update 5 (compiler 12.0) November 7, 2010 Cilk Plus language extensions, Guided Auto-Parallelism, Improved C++11 support.[22]
Intel C++ Composer XE 2011 Update 6 and above (compiler 12.1) September 8, 2011 Cilk Plus language extensions updated to support specification version 1.1 and available on Mac OS X in addition to Windows and Linux, Threading Building Blocks updated to support version 4.0, Apple blocks supported on Mac OS X, improved C++11 support including support for Variadic templates, OpenMP 3.1 support.
Intel C++ Composer XE 2013 (compiler 13.0) September 5, 2012 Linux-based support for Intel Xeon Phi coprocessors, support for Microsoft Visual Studio 12 (Desktop), support for gcc 4.7, support for Intel AVX 2 instructions, updates to existing functionality focused on improved application performance.[23]
Intel C++ Composer XE 2013 SP1 (compiler 14.0) September 4, 2013 Online installer; support for Intel Xeon Phi coprocessors; preview Win32 only support for Intel graphics; improved C++11 support
Intel C++ Composer XE 2013 SP1 Update 1 (compiler 14.0.1) October 18, 2013 Japanese localization of 14.0; Windows 8.1 and Xcode 5.0 support
Intel C++ Compiler for Android (compiler 14.0.1) November 12, 2013 Hosted on Windows, Linux, or OS X, compatible with Android NDK tools including the gcc compiler and Eclipse
Intel C++ Composer XE 2015 (compiler 15.0) July 25, 2014 Full C++11 language support; Additional OpenMP 4.0 and Cilk Plus enhancements
Intel C++ Composer XE 2015 Update 1 (compiler 15.0.1) October 30, 2014 AVX-512 support; Japanese localization
Intel C++ 16.0 August 25, 2015 Suite-based availability (Intel Parallel Studio XE, Intel System Studio)
Intel C++ 17.0 September 15, 2016 Suite-based availability (Intel Parallel Studio XE, Intel System Studio)
Intel C++ 18.0 January 26, 2017 Suite-based availability (Intel Parallel Studio XE, Intel System Studio)
Intel C++ 19.0 April 3, 2018 Suite-based availability (Intel Parallel Studio XE, Intel System Studio)
Intel C++ Compiler Classic 19.1 October 22, 2020 Initial Open MP 5.1 CPU only
Intel oneAPI DPC++ / C++ Compiler 2021 December 8, 2020 SYCL, DPC++, initial Open MP 5.1
Intel Intel C++ Compiler Classic 2021.1.2
Intel oneAPI DPC++/C++ Compiler 2021.1.2
December 16, 2020 oneAPI DPC++/C++ introduces support for GPU offloading
Intel Intel C++ Compiler Classic 2022.2.1
Intel oneAPI DPC++/C++ Compiler 2022.2.1
November 2, 2022 Support for latest Intel CPUs, GPUs, and FPGAs;
support for upcoming ISO/IEC 9899:2023 (C23) and ISO/IEC 14882:2023 (C++23) language standards
Intel Intel C++ Compiler Classic 2023.0
Intel oneAPI DPC++/C++ Compiler 2023.0
Q1 2023[10] Support for Intel Advanced Matrix Extensions (Intel AMX), Quick Assist Technology (QAT), Intel AVX-512 with Vector Neural Network Instructions (VNNI), bfloat16, GPU datatype flexibility, Intel Xe matrix extensions (Intel XMX), Intel GPU vector engine, XE-Link


यह भी देखें

संदर्भ

  1. Intel Corporation (2022-11-02). "Intel® oneAPI DPC++/C++ Compiler". software.intel.com. Intel. Retrieved 2022-12-01.
  2. Intel Corporation (2022-11-02). "Intel® C++ Compiler Classic". software.intel.com. Intel. Retrieved 2022-12-01.
  3. "DEPRECATION NOTICE: Intel® C++ Compiler Classic". community.intel.com. 2022-09-01. Retrieved 2023-02-13.
  4. Intel (2021). "Intel oneAPI DPC++/C++ Compiler". Intel.com. Intel. Retrieved 2021-02-09.
  5. 5.0 5.1 5.2 5.3 5.4 Intel Corporation (2021). "Intel® oneAPI DPC++/C++ Compiler". software.intel.com. Intel. Retrieved 2021-02-09.
  6. "Intel oneAPI DPC++ Compiler 2020-06 Released With New Features - Phoronix". www.phoronix.com. Retrieved 2020-12-17.
  7. Team, Editorial (2019-12-16). "Heterogeneous Computing Programming: oneAPI and Data Parallel C++". insideBIGDATA. Retrieved 2020-12-17.
  8. "Khronos Steps Towards Widespread Deployment of SYCL with Release of SYCL 2020 Provisional Specification". The Khronos Group. 2020-06-30. Retrieved 2020-12-17.
  9. "Intel C/C++ compilers complete adoption of LLVM". Intel. Retrieved 2021-08-17.
  10. 10.0 10.1 Intel Corporation (November 30, 2022). "Intel oneAPI 2023 Release: Preview the Tools". www.intel.com. Intel. Retrieved 2022-12-01.
  11. Intel Corporation (2020-12-16). "Intel® oneAPI DPC++/C++ Compiler". software.intel.com. Intel. Retrieved 2021-02-09.
  12. Intel Corporation (2020-12-16). "Intel® C++ Compiler Classic". software.intel.com. Intel. Retrieved 2021-02-09.
  13. "Your Processor, Your Compiler, and You: The Case of the Secret CPUID String". Archived from the original on 2012-01-05. Retrieved 2011-12-11.
  14. 14.0 14.1 "एग्नर का सीपीयू ब्लॉग - इंटेल का "अपंग एएमडी" फ़ंक्शन". www.agner.org.
  15. Hruska, Joel (29 July 2008). "Low-end grudge match: Nano vs. Atom". Ars Technica.
  16. "समझौता करार" (PDF). download.intel.com.
  17. "इंटेल और यू.एस. फेडरल ट्रेड कमीशन अस्थायी समाधान तक पहुंचे". Newsroom.intel.com. 2010-08-04. Retrieved 2012-10-13.
  18. "FTC, Intel Reach Settlement; Intel Banned From Anticompetitive Practices". Archived from the original on 2012-02-03. Retrieved 2011-10-20.
  19. "अनुकूलन सूचना". Intel Corporation. Retrieved 11 December 2013.
  20. "Analyst: Tests showing Intel smartphones beating ARM were rigged". The Register.
  21. "Intel® C++ Compiler Release Notes and New Features". Intel Corporation. Retrieved 27 April 2021.
  22. This note is attached to the release in which Cilk Plus was introduced. This URL points to current documentation: http://software.intel.com/en-us/intel-composer-xe/
  23. Intel C++ Composer XE 2013 Release Notes[1] http://software.intel.com/en-us/articles/intel-c-composer-xe-2013-release-notes/


बाहरी संबंध