คอมไพเลอร์ของ Intel ดีกว่าของ Microsoft หรือเปล่า [ปิด]


56

หลายปีก่อนฉันรู้สึกประหลาดใจเมื่อค้นพบว่า Intel ขายคอมไพเลอร์ที่เข้ากันได้กับ Visual Studio ฉันพยายามเป็นพิเศษสำหรับ C / C ++ รวมถึงเครื่องมือวินิจฉัยที่ยอดเยี่ยม แต่รหัสไม่ได้เป็นเพียงการคำนวณอย่างเข้มข้นที่จะสังเกตเห็นความแตกต่าง ความประทับใจเพียงอย่างเดียวคือ: Intel ทำเพื่อฉันจริง ๆ เพียงแค่ตอนนี้ว้าวเครื่องมือที่น่าทึ่งที่มีความละเอียดระดับนาโนวินาทีไม่น่าเชื่อ แต่การพิจารณาคดีสิ้นสุดลงและทีมไม่เคยพิจารณาการซื้ออย่างจริงจัง

จากประสบการณ์ของคุณหากค่าลิขสิทธิ์ไม่สำคัญผู้ขายใดจะเป็นผู้ชนะ

มันไม่ใช่คำถามที่กว้างหรือคลุมเครือเพื่อจุดประกายสงครามศักดิ์สิทธิ์ คำถามประเภทนี้เป็นเครื่องมือสองอย่างที่มองเห็นได้ชัดเจน ไม่มีใครชอบเมื่อเครื่องมือมีความลึกลับหรือความประหลาดใจ และตัวเลือกระหว่างดีที่สุดและดีที่สุดมักเป็นความเจ็บปวด ฉันยังเข้าใจหญ้าสีเขียวอยู่เสมออาร์กิวเมนต์ ฉันต้องการฟังเรื่องราวทั้งหมด "สิ่งที่ควรทำ"

จะเกิดอะไรขึ้นถ้าหาก Intel เพิ่มประสิทธิภาพให้กับชิปในแต่ละเดือนและไม่ใช่ว่าเป้าหมายฮาร์ดแวร์ทุกอันจะทำงานได้ดีเท่ากับ Microsoft ที่คอมไพล์แล้ว? ถ้าฮาร์ดแวร์ของ AMD เป็นเป้าหมายและทุกอย่างจะช้าลงอย่างไม่มีเหตุผล หรือในทางกลับกันถ้าฮาร์ดแวร์ของ Intel มีโอกาสที่ไม่สามารถคาดเดาได้มากมายนักเขียนคอมไพเลอร์ของ Microsoft นั้นช้าเกินกว่าที่จะยอมรับและไม่เคยนำไปใช้ในคอมไพเลอร์ จะเกิดอะไรขึ้นถ้าทั้งคู่เหมือนกันจริง ๆ แล้วมี codebase เพียงอันเดียวที่ห่อไว้ในกล่องสองกล่องที่แตกต่างกันและอนุญาตให้ผู้ขายทั้งสองรายจากร้านค้าของบุคคลที่สาม

และอื่น ๆ แต่บางคนก็รู้คำตอบ


17
Intel Compilers มีชื่อเสียงในการผลิตรหัสตัวเลขที่มีประสิทธิภาพมาก
quant_dev

2
@honk: หาก quant_dev สามารถให้ลิงก์บางอย่างเพื่อสำรองข้อมูลได้ก็ควรเป็นเช่นนั้น!
FrustratedWithFormsDesigner

2
@RocketSurgeon: ไม่ใช่ทุกคนที่จะเห็นด้วยกับคำสั่งของคุณ ในความเป็นจริงแล้ว Eric Raymond นั้นเป็นกรณีที่ค่อนข้างแข็งแกร่งสำหรับ Microsoft ที่มีความคืบหน้าในการคำนวณย้อนกลับไปประมาณสองสามทศวรรษด้วยวิธีปฏิบัติทางธุรกิจ
Mason Wheeler

2
@RocketSurgeon โอเพนซอร์สไม่มีส่วนเกี่ยวข้องกับเงิน
kaoD

1
คอมไพเลอร์ Microsoft สร้างรหัสที่ดีมาก การตรวจสอบชุดประกอบด้วยตนเองไม่ค่อยพบลำดับการสอนที่งี่เง่า ในความเป็นจริงฉันรู้สึกประทับใจกับการเพิ่มประสิทธิภาพที่ลึกซึ้งยิ่งขึ้นแม้จะป้องกันคำแนะนำจากการข้ามขอบเขตของบรรทัดแคช
doug65536

คำตอบ:


57

คำเตือน: คำตอบขึ้นอยู่กับประสบการณ์ของตัวเอง - YMMV

ถ้ารหัสมันแพงคอมพิวเตอร์, ใช่แน่นอน ฉันได้เห็นการปรับปรุงมากกว่า 20x ครั้งกับอดีต Intel C ++ Compiler (ตอนนี้ Intel Studio ถ้าฉันจำได้อย่างถูกต้อง) เทียบกับ Microsoft Visual C ++ Compiler มาตรฐาน มันเป็นความจริงรหัสนั้นยังห่างไกลจากความสมบูรณ์แบบและนั่นอาจมีบทบาท (ที่จริงแล้วคือเหตุผลที่เราใส่ใจกับการใช้คอมไพเลอร์ของ Intel มันง่ายกว่า refactoring codebase ยักษ์) อีกทั้งซีพียูที่ใช้ในการเรียกรหัสคือ Intel Core 2 Quad ซึ่งเป็น CPU ที่สมบูรณ์แบบสำหรับสิ่งนั้น แต่ผลลัพธ์นั้นน่าตกใจ คอมไพเลอร์เองมีวิธีเพิ่มประสิทธิภาพโค้ดจำนวนมากรวมถึงการกำหนดเป้าหมาย CPU เฉพาะในแง่ของความสามารถในการพูดความสามารถSSE มันทำให้-O2/ -O3อายจริง ๆ และนั่นก็คือก่อนใช้ profiler

โปรดทราบว่าการเปิดใช้งานการเพิ่มประสิทธิภาพเชิงรุกจริงๆจะทำให้การรวบรวมใช้เวลาค่อนข้างนานสองชั่วโมงสำหรับโครงการขนาดใหญ่นั้นเป็นไปไม่ได้เลย นอกจากนี้เมื่อมีการเพิ่มประสิทธิภาพระดับสูงมีโอกาสสูงที่จะเกิดข้อผิดพลาดในโค้ดเพื่อแสดงตัวเอง (ซึ่งสามารถสังเกตได้ด้วย gcc -O3เช่นกัน) สำหรับโครงการที่คุณรู้จักดีนี่อาจเป็นข้อได้เปรียบเนื่องจากคุณจะพบและแก้ไขข้อบกพร่องในที่สุดที่คุณไม่เคยพบมาก่อน แต่เมื่อรวบรวมระเบียบที่มีขนดกคุณแค่ข้ามนิ้วของคุณและสวดภาวนาต่อเทพ x86

สิ่งที่เกี่ยวกับประสิทธิภาพการทำงานบนเครื่องเอเอ็มดี: มันไม่ดีเท่า CPU ของ Intel แต่ก็ยังคงเป็นวิธีที่ดีกว่า MS c ++ คอมไพเลอร์ (อีกครั้งจากประสบการณ์ของฉัน) เหตุผลก็คือคุณสามารถกำหนดเป้าหมาย CPU ทั่วไปด้วยการสนับสนุนSSE2 (ตัวอย่าง) จากนั้นซีพียู AMD ที่มี SSE2 จะไม่ถูกแยกแยะมากนัก คอมไพเลอร์ของ Intel บน Intel CPU ขโมยการแสดงจริงๆ มันไม่ใช่สายรุ้งสองเท่าและยูนิคอร์นมันวาว มีการกล่าวหาอย่างหนักเกี่ยวกับไบนารีที่ไม่ได้ทำงานเลยในซีพียูที่ไม่ใช่ของแท้ GenuineIntel และ (อันนี้เป็นที่ยอมรับ) ทำให้เกิดประสิทธิภาพการทำงานที่ด้อยคุณภาพของซีพียูจากผู้ขายรายอื่น. โปรดทราบว่านี่เป็นข้อมูลอย่างน้อย 3 ปีที่ผ่านมาและยังไม่เป็นที่ทราบแน่ชัด แต่คำอธิบายผลิตภัณฑ์ใหม่ทำให้ไบนารีทำงานได้ช้ากว่าที่ Intel เห็นว่าเหมาะสมกับซีพียูที่ไม่ใช่ของ Intel

ผมไม่ทราบว่ามันคืออะไรเกี่ยวกับ บริษัท อินเทลและทำไมพวกเขาทำเครื่องมือการคำนวณเป็นตัวเลขที่ดีมาก แต่มีลักษณะที่นี้เกินไป: http://julialang.org/ มีการเปรียบเทียบและถ้าคุณดูที่แถวสุดท้ายMATLAB จะส่องแสงด้วยการเอาชนะทั้งรหัส C และJuliaสิ่งที่ทำให้ฉันประทับใจคือผู้เขียนคิดว่าเหตุผลคือMath Kernel Libraryของ Intel

ฉันรู้ว่ามันฟังดูเหมือนโฆษณาสำหรับชุดเครื่องมือ Intel Compiler แต่จากประสบการณ์ของฉันมันทำงานได้ดีจริง ๆ และแม้แต่ตรรกะง่ายๆก็บอกว่าคนที่สร้างซีพียูควรรู้วิธีการตั้งโปรแกรมให้ดีที่สุด IMO คอมไพเลอร์ Intel C ++ บีบประสิทธิภาพทุกบิตสุดท้ายให้ได้มากที่สุด


@ K.Steff คุณเปรียบเทียบคอมไพเลอร์ vs ms นี้กับโปรแกรมเพิ่มประสิทธิภาพ opt และโปรแกรมช่วยแนะนำโปรไฟล์
รันใหม่

2
Intel ถูกบังคับให้เปิดเผยว่าคอมไพเลอร์ของพวกเขาตั้งใจใช้เส้นทางโค้ดที่ไม่ได้เพิ่มประสิทธิภาพในขณะรันไทม์หาก CPU นั้นไม่ได้ผลิตโดย Intel อินเทลได้เป็นปัญหากับ FTC คุณไม่สามารถจ่ายเงินให้ฉันเพื่อใช้ ICC ฉันจะไม่แตะต้องอึที่ต่อต้านการแข่งขันด้วยเสาขนาด 10 ฟุต
doug65536

@ doug65536 คำถามที่ถูกถามคือ "เป็นคอมไพเลอร์ของ Intel ดีกว่าจริง ๆ หรือไม่" ไม่ใช่ "Intel เป็นผู้ผูกขาดในตลาดฮาร์ดแวร์หรือไม่ ฉันไม่ได้พูดถึงความคิดเห็นของคุณเป็นเรื่องแปลก แต่สำหรับฉันแล้วอุดมการณ์ไม่มีที่ในการสนทนานี้ ใช้หรือไม่ - การโทรของคุณ แต่นั่นจะไม่เปลี่ยนความจริงที่ว่า ICC ค่อนข้างดีที่สร้างไบนารีสำหรับ Intel CPU
K.Steff

ภาษา C ซึ่งเป็นที่นิยมในปี 1990 ได้ขยายภาษา C ในหลาย ๆ ด้านที่อนุญาตให้โปรแกรมเมอร์เขียนโค้ดที่มีประสิทธิภาพมากขึ้น แต่คอมไพเลอร์ที่เพิ่มประสิทธิภาพบางตัวไม่สนับสนุน Microsoft มาจากสิ่งที่ฉันสามารถบอกได้ว่ามีความกระตือรือร้นน้อยกว่าผู้จำหน่ายรายอื่น ๆ เพื่อดำเนินการเพิ่มประสิทธิภาพที่ไม่สามารถใช้ร่วมกับส่วนขยายดังกล่าวได้ สิ่งนี้ทำให้คอมไพเลอร์มีประสิทธิภาพน้อยกว่าคอมไพเลอร์ที่ไม่สนใจความเข้ากันได้ดังกล่าวเมื่อประมวลผลโค้ดที่ไม่ต้องการ แต่ให้ประมวลผลโค้ดที่ต้องการได้อย่างถูกต้อง
supercat

35

Intel Compiler มีชื่อเสียงในการผลิตรหัสตัวเลขที่มีประสิทธิภาพมาก:

https://stackoverflow.com/questions/1733627/anyone-here-has-benchmarked-intel-c-compiler-and-gcc

http://www.open-mag.com/754088105111.htm

http://www.freewebs.com/godaves/javabench_revisited/

โปรดทราบว่าฉันไม่ได้อ้างว่ามันเป็นคอมไพเลอร์ที่เร็วที่สุด แต่มันก็สนุกกับชื่อเสียงที่ดีมากสำหรับประสิทธิภาพ โปรดทราบว่าผู้เขียนไบนารี LAPACK "เป็นทางการ" สำหรับ Windows ใช้คอมไพเลอร์ Intel Fortran เพื่อสร้างพวกเขา: http://icl.cs.utk.edu.lu/lapack-for-windows/และพวกเขาควรรู้สิ่งหนึ่งหรือสองเกี่ยวกับประสิทธิภาพ


2
ไม่เพียง แต่มีชื่อเสียงเท่านั้น แต่ยังมีชีวิตอยู่ต่อไป ไม่จำเป็นถ้าคุณใช้มันเพื่อเขียนแอปพลิเคชั่น CRUD แต่ผลิตภัณฑ์ C, C ++ และ FORTRAN นั้นค่อนข้างดิบเมื่อมันมาถึงการกระทืบหมายเลข
Blrfl

27

Intel C ++ มีข้อได้เปรียบเหนือ gcc นอกเหนือจากตัวสร้างโค้ด ต้นกำเนิดทั้งสองนี้ (ส่วนใหญ่) จากข้อเท็จจริงที่ว่ามันขึ้นอยู่กับEDG front-end สำหรับดีขึ้นหรือแย่ลงทั้งสองอย่างนี้คือการเซาะ (ช้า) ดังนั้นข้อดีก็ไม่ได้ดีอย่างที่เคยเป็น

ประการแรกคือมันออกข้อความแสดงข้อผิดพลาดที่ดีกว่ามากเป็นกฎ คุณอาจต้องการดูการเปรียบเทียบข้อความแสดงข้อผิดพลาดระหว่าง Clang และ gcc Intel C ++ (พร้อมด้วยคนอื่น ๆ ส่วนใหญ่ที่ใช้ EDG front-end) ได้รับการวินิจฉัยเช่นเดียวกับ Clang มาหลายปี

ประการที่สองคือส่วนหน้าของ EDG นั้นเป็นที่รู้จักกันดีในเรื่องความสอดคล้องทางภาษาที่ยอดเยี่ยมเนื่องจากตัวสร้างรหัส Intel นั้นใช้สำหรับการสร้างรหัสที่รวดเร็ว เกือบทุกมาตรการที่เหมาะสม EDG front-end ให้ความสอดคล้องกับ C ++ 98, 03 หรือ (ในรุ่นปัจจุบัน) C ++ 0x ได้ดีกว่าคอมไพเลอร์อื่น ๆ

ดังที่ฉันพูดข้อดีทั้งสองข้อนี้ได้กัดเซาะไปตามองศาที่แตกต่างกันไปตามกาลเวลา gcc รุ่นล่าสุดมีความสอดคล้องทางภาษาที่ดีพอสมควร เสียงดังกราวมีข้อความแสดงข้อผิดพลาดที่ดีขึ้นอย่างมากและมีความคืบหน้าในการใช้ภาษา C ++ ทั้งหมดเช่นกัน เมื่อคุณลงไปได้เลย Intel C ++ ก็ยังดีกว่าทั้งสองอย่างเกี่ยวกับเรื่องนี้และมันเป็นแพคเกจเดียวที่ทำสิ่งต่าง ๆ ให้ถูกต้องแทนที่จะต้องใช้คอมไพเลอร์ตัวเดียวเพื่อการวินิจฉัยที่ดีและอีกอันหนึ่ง


14

เราลองใช้มันในที่ทำงานสักพัก codebase ส่วนใหญ่ของเราอยู่ใน Delphi แต่เรามีฟังก์ชั่นที่ต้องใช้การคำนวณสูงซึ่งบางคนคิดว่าน่าจะเป็นความคิดที่ดีที่จะทำ C ++ DLL และหนึ่งในเพื่อนร่วมงานของฉันเคยได้ยินสิ่งที่ยอดเยี่ยมเกี่ยวกับคอมไพเลอร์ของ Intel ดังนั้นเขาจึงตัดสินใจลองใช้ เราสร้าง DLL ขึ้นใหม่ในคอมไพเลอร์ของ Intel และทำการทดสอบความเร็วและผลลัพธ์ที่ทำให้เขาประหลาดใจมากจนเขาคิดว่าเขาต้องทำอะไรผิดพลาด

DLL มีการคำนวณปัญหาที่ยากมากเกี่ยวกับคอมบิเนทีฟและส่วนประกอบโทโพโลยีซึ่งเป็นเทคนิคในระดับความยากของปัญหา NP-hard ถ้าเราทำ "ถูกต้อง" แต่เราใช้การวิเคราะห์พฤติกรรมต่าง ๆ เพื่อหลีกเลี่ยงประสิทธิภาพ NP ถึงกระนั้นก็ยังมีตัวเลขจำนวนมากที่กำลังเกิดขึ้น และสำหรับการทดสอบที่เรารันความแตกต่างระหว่าง VS คอมไพเลอร์และคอมไพเลอร์ของ Intel นั้นอยู่ภายใน epsilon หรือคอมไพเลอร์ของ Intel ช้าลงอย่างเห็นได้ชัดโดยทั่วไปอยู่ที่ไหนสักแห่งในละแวกใกล้เคียง 20% และยังคงเป็นเช่นนั้นไม่ว่าเขาจะทำการเปลี่ยนแปลงอย่างไรในการตั้งค่าการคอมไพล์เพื่อพยายามให้ Intel คอมไพเลอร์ผลิตโค้ดได้เร็วขึ้น ดังนั้นเราจึงไม่ได้เปลี่ยนเป็น

แน่นอนว่านี่เป็นเพียงตัวอย่างของโลกแห่งความจริง ไมล์สะสมของคุณอาจแตกต่างกันไป


คุณต้องการแบ่งปันรายละเอียดของ CPU ที่มาตรฐานทำงานหรือไม่
Oak

22
เมื่อฉันอ่านย่อหน้าแรกของคุณฉันคิดว่าคุณกำลังบอกว่าผลการทดสอบความเร็วทำให้เขาประหลาดใจในวิธีที่ดี เห็นได้ชัดว่าผิดหลังจากอ่านย่อหน้าที่สองแล้ว ไม่แน่ใจว่าสิ่งที่ทำให้ฉันเข้าใจผิดในการอ่านครั้งแรก; จากการตรวจสอบอย่างใกล้ชิดคุณไม่ได้ใช้คำพูดในเชิงบวกใด ๆ ที่อาจทำให้ฉันรู้สึกผิด แค่คิดว่าฉันจะแสดงความคิดเห็นในกรณีที่คนอื่นทำผิดพลาดแบบเดียวกันและสับสนเกี่ยวกับสิ่งที่คุณพูดจริงที่นี่
โคดี้เกรย์

2
คุณใช้โปรเซสเซอร์ AMD สำหรับการทดสอบหรือไม่ ฉันคิดว่ามันเป็นข้อมูลที่เกี่ยวข้อง (ไม่ว่าคอมไพเลอร์ทำงานได้ไม่ดีตามวัตถุประสงค์หรือถ้ามันไม่สามารถทำอะไรได้แม้ว่ามันจะทำออกมาได้ดีที่สุดก็ตาม)
Reinstate Monica

3
มันเป็นโปรเซสเซอร์ Intel Core i7
Mason Wheeler

เวอร์ชั่นย่อ: Intel ช้ากว่า VS2010 ฉันได้ลองสิ่งนี้ในที่ทำงานเมื่อไม่นานมานี้ใน codebase ของข้อมูลที่ค่อนข้างสั้นซึ่งบีบอัด C ++ ฉันลองการตั้งค่าที่แตกต่างกันมากมาย อัลกอริธึมบางอย่างที่มีการทดสอบประสิทธิภาพที่มีอยู่แล้วนั้นเร็วขึ้นอย่างเห็นได้ชัด แต่ช้าลงอย่างเห็นได้ชัดที่สุด โดยรวมแล้วการดำเนินการระดับสูงใด ๆ ที่ฉันทำกับซอฟต์แวร์นั้นสม่ำเสมอและช้าลงอย่างเห็นได้ชัด ฉันยังลองสิ่งนี้กับคอมไพเลอร์ของ Intel ในปี 2013 และ 2010 ดูเหมือนว่าในปี 2010 รหัสผลิตภัณฑ์จะดีขึ้นและมีเสถียรภาพมากขึ้น การทดสอบส่วนใหญ่ของฉันอยู่ใน pre-AVX i7 แต่บางตัวอยู่ใน Core2 ที่เก่ากว่า
รวย

9

ในแอปพลิเคชันแบบฝังที่ฉันเคยใช้งานการทดลองใช้คอมไพเลอร์ของ Intel แสดงให้เห็นว่ามันช่วยให้เราไม่ต้องปั่นฮาร์ดแวร์ใหม่ด้วยประสิทธิภาพที่สูงขึ้น ค่าใช้จ่ายของฮาร์ดแวร์ใหม่อยู่ที่ประมาณ $ 10 / หน่วยยอดขายที่คาดการณ์ไว้ 1 ล้านหน่วยเพิ่มต้นทุนการพัฒนาและความล่าช้าของโครงการ ตัวเลือกที่ 2 คือโปรไฟล์ / ไมโครเพิ่มประสิทธิภาพฐานรหัสที่ดี / เหมาะสมแล้ว - ผลลัพธ์ที่ไม่รู้จักเวลาที่ไม่รู้จัก

คุณคิดว่าเจ้านายพูดอะไรตอนที่เราขอให้กองทุนซื้อคอมไพเลอร์

อย่างไรก็ตาม - นี่เป็นกรณีที่โชคดีและหายากมาก - โค้ดส่งออกที่เร็วขึ้น 10% จากคอมไพเลอร์ Intel ผลักเรากลับสู่ด้านประสิทธิภาพที่ถูกต้อง ถ้าเราอยู่ทางด้านขวาหรือมากกว่า 10% มันคงไม่สร้างความแตกต่าง ถ้าเรามีวิศวกรที่เราอาจจะสามารถปรับปรุงรหัสและบันทึกการหมุนของฮาร์ดแวร์และไม่ต้องการคอมไพเลอร์ของ Intel แต่มีความเสี่ยงสูงและคอมไพเลอร์ของ Intel ทำงานได้ราคาถูกกว่าเวลาวิศวกรรม

ในความสมดุลฉันจะบอกว่ามันเป็นรูปแบบหนึ่งของการเพิ่มประสิทธิภาพขนาดเล็ก - อย่าทำจนกว่าคุณจะรู้ว่าคุณจำเป็นต้องทำหลังจากนั้นหลังจากที่คุณทำโปรไฟล์และพบสาเหตุที่แท้จริงของปัญหา เป็นตัวเลือกที่ดีโดยเฉพาะอย่างยิ่งโปรไฟล์ของคุณแสดงให้คุณเห็นว่า 'ทุกหนทุกแห่ง' ช้าและไม่มีคอขวดระบุ


5

ฉันพบข้อได้เปรียบสามข้อเท่านั้น:

  1. มีการรองรับคุณสมบัติของ CPU Intel รุ่นใหม่เร็วกว่าคอมไพเลอร์ตัวอื่น ๆ

  2. มันเป็นคอมไพเลอร์เพิ่มเติมที่ยอดเยี่ยมในการออกคำเตือนและตรวจจับปัญหาที่คอมไพเลอร์อื่นคิดถึง GCC จับบางสิ่งที่ ICC ทำไม่ได้และในทางกลับกัน Visual Studio จับบางสิ่งที่ ICC ทำไม่ได้และในทางกลับกัน

  3. มันทำงานได้ดีขึ้นมากของลูปการขนานอัตโนมัติ (กระจายไปหลายเธรดโดยอัตโนมัติ) กว่าคอมไพเลอร์อื่น ๆ ไม่ได้รับประโยชน์จากรหัสมากนัก แต่เมื่อคุณมีรหัสที่สามารถทำได้ก็สามารถสร้างความแตกต่างได้


3

เราใช้คอมไพเลอร์ของ Intel สำหรับทุกโครงการประสิทธิภาพของ codebase ของเรา สิ่งที่ยอดเยี่ยมเกี่ยวกับมันคือทำให้การเพิ่มประสิทธิภาพรหัสสามารถบำรุงรักษาได้จริงๆ แทนที่จะเพิ่มการโทร __mm ด้วยตนเองทุกที่และบอกคอมไพเลอร์ให้ดึงข้อมูลล่วงหน้าซึ่งทั้งหมดจะดีที่สุดในรุ่นถัดไปอีกครั้งคุณเพียงแค่จัดเรียงโค้ดของคุณใหม่และรับความเร็วที่บ้า

บ่อยครั้งที่รหัสที่ได้รับการปรับปรุงนั้นง่ายต่อการติดตามมากกว่าการปรับด้วยมือมันจะเร็วกว่าการปรับให้เหมาะมือและเมื่อมีการเปิดตัวชุดคำสั่งใหม่คอมไพเลอร์จะใช้ชุดคำสั่งนั้น มันยอดเยี่ยมมาก

เช่นเดียวกันสำหรับคอมไพเลอร์แขน (จากแขนไม่ใช่ Intel) หากคุณปล่อยแขนทำหน้าที่ที่ยอดเยี่ยมในการปรับเวกเตอร์สำหรับคุณ


+1 Intel มีคอมไพเลอร์ ARM ไหม? Unbeleivable!

1
ไม่ Intel ไม่มีผู้รวบรวม ARM ARM มีคอมไพเลอร์ ARM ซึ่งทำหน้าที่ได้อย่างยอดเยี่ยม
martiert

2
"แก้ไข: แขนไม่มีคอมไพเลอร์แขน" นี่คือสิ่งที่คุณหมายถึงจริงเหรอ?
luiscubal

0

ตรวจสอบหน้าเกณฑ์มาตรฐานนี้ ในระยะสั้น Intel ชนะ

แต่มาร์จิ้นอาจไม่ใหญ่มาก: ถ้าคุณคอมไพล์เป็น 32 บิตและระบบการสร้างของคุณไม่สามารถรองรับการปรับแต่งโปรไฟล์ที่แนะนำได้กำไรจะอยู่ที่ 10% การปรับปรุงเช่นนี้คุ้มค่ากับปัญหาและเวลาในการคอมไพล์ที่นานขึ้น


ลิงก์ URL ดูเหมือนจะไม่ทำงาน
Contango

0

มีการกล่าวกันว่า Intel ได้เปิดตัว Intel C ++ Compiler v13.0 สำหรับ Android OS ซึ่งเป็นความพยายามครั้งแรกในการส่งมอบคอมไพเลอร์ C / C ++ ที่ปรับให้เหมาะสมซึ่งออกแบบมาโดยเฉพาะสำหรับแพลตฟอร์มมือถือของ Google

นักพัฒนาสามารถใช้คอมไพเลอร์บนระบบที่ใช้ Linux * เพื่อสร้างแอพสำหรับอุปกรณ์ Android ที่ใช้โปรเซสเซอร์ Intel รวมถึงโปรเซสเซอร์Intel® Atom ™ คอมไพเลอร์ของ Intel เข้ากันได้กับ GNU C ++ และเครื่องมือสำหรับนักพัฒนาใน Android Native Development Kit (NDK) คุณไม่สามารถใช้คอมไพเลอร์กับเครื่องพัฒนาใด ๆ ก็ได้ ไม่รองรับ Windows หรือ OS X เครื่องมือได้รับการรับรองให้ใช้กับ Ubuntu 10.04 หรือ 11.04 เท่านั้น

รุ่นปัจจุบันของ Android NDK ใช้เวอร์ชัน 4.6 ของ toolchain Gnu Compiler Collection (GCC) โอเพ่นซอร์สตามค่าเริ่มต้น แต่คอมไพเลอร์ของ Intel นั้นมีการเพิ่มประสิทธิภาพที่เป็นกรรมสิทธิ์สำหรับชิปของตัวเองและมักจะสามารถประมวลผลโค้ดที่สามารถประมวลผลได้ดีกว่าคอมไพเลอร์ของบุคคลที่สามเช่น GCC

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.