อินเทลมีสินค้าชิ้นสำคัญในสายซอฟต์แวร์คือ Intel C++ Compiler ที่รีดประสิทธิภาพซีพียูได้ดีกว่าคอมไพล์เลอร์โอเพนซอร์สทั่วไป แต่ปีนี้อินเทลก็เตรียมย้ายเอนจินภายในของคอมไพล์เลอร์นี้ไปใช้ LLVM แทนแล้ว
LLVM เป็นโครงการที่มีโครงการย่อยๆ อยู่จำนวนมาก เช่น คอมไพล์เลอร์ภาษา C++ นั้นมีโครงการ Clang เป็นตัวคอมไพล์ภาษา (frontend) อยู่ โดยอินเทลจะพัฒนาให้ LLVM สามารถออปติไมซ์โค้ดได้ดีขึ้น โดยโค้ดส่วนหนึ่งจะส่งกลับเข้าโครงการ LLVM แต่บางส่วนจะเก็บไว้กับคอมไพล์เลอร์ Intel oneAPI เท่านั้น
LLVM โครงการเฟรมเวิร์คสำหรับการสร้างคอมไพล์เลอร์ ออกเวอร์ชั่น 6.0 โดยฟีเจอร์สำคัญที่สุดคงเป็นการอิมพลีเมนต์ Retpoline ป้องกันการโจมตี Spectre
ฟีเจอร์สำหรับ x86 ที่เพิ่มมาคือการรองรับคำสั่งและซีพียูใหม่ๆ ดีขึ้นมาก เช่น สามารถใช้ชุดคำสั่ง AVX512 ในซีพียูอินเทลได้ดีขึ้น รองรับการคอมไพล์โค้ดให้ตรงกับซีพียูรุ่นใหม่ๆ ของทั้งอินเทลและเอเอ็มดี ในแง่ของระบบปฎิบัติการก็รองรับการออกข้อมูลดีบัก CodeView ได้สมบูรณ์กว่าเดิม
โครงการนำ Clang มาใช้คอมไพล์โค้ดภาษา C++ ของไมโครซอฟท์ มีความก้าวหน้าอย่างจับต้องได้อีกขั้นเมื่อไมโครซอฟท์ได้นำเสนอวิธีการคอมไพล์โค้ดวินโดวส์แอพด้วย Clang ในงาน CPPCon 2015 ที่ผ่านมา และคาดว่าจะเพิ่มวิธีการคอมไพล์นี้ในชุดอัพเดตสำหรับ Visual C++ ที่จะออกมาในเดือนหน้าด้วย
โครงการชุดคอมไพเลอร์โอเพนซอร์ส LLVM มีคอมไพเลอร์ภาษา C/C++/Objective-C ชื่อว่า Clang ที่ถูกใช้งานอย่างแพร่หลาย ปกติแล้ว Clang ทำงานบนระบบปฏิบัติการสายยูนิกซ์ แต่ก็สามารถใช้บนวินโดวส์ได้ด้วย
ล่าสุด Clang ได้ผู้สนับสนุนรายใหม่คือ "ไมโครซอฟท์" ที่ปกติแล้วใช้ Visual C++ ของตัวเองเสมอมา (Clang เริ่มพัฒนาโดยแอปเปิล แต่ปัจจุบันดูแลโดยชุมชน)
นโยบายใหม่ของไมโครซอฟท์มาจาก การเปิดให้ Visual Studio คอมไพล์โค้ดจาก Android/iOS ทำให้ไมโครซอฟท์จำเป็นต้องหาคอมไพเลอร์ที่ทำงานบนแพลตฟอร์มอื่นๆ ได้ด้วย ซึ่ง Clang ก็มารับบทนี้
ไมโครซอฟท์อธิบายการทำงานของการคอมไพล์เป็นแผนภาพด้านล่าง
นักพัฒนาของ LLVM คู่แข่ง GCC (อ่านรายละเอียดได้ใน ข่าวเก่า ) ได้ประกาศเปิดตัว LLVM 3.3 ที่รองรับภาษา C++11 อย่างเป็นทางการ โดย frontend ของ LLVM ที่ใช้คอมไพล์ภาษา C/C++ ชื่อ Clang จะรองรับ AArch64 (ชื่อในกลุ่ม open-source ของ ARMv8), AMD R600 GPU, S390 และบางส่วนของ IBM System Z โดยนักพัฒนาได้กล่าวว่า LLVM 3.3 นี้เป็น "คอมไพเลอร์ที่รองรับมาตรฐาน C++11 รวมทั้งไลบราลี่สำคัญ ๆ ของ C++11 อย่าง std::regex"
Clang ยังมีเครื่องมือ C++11 migration เพื่อช่วยนักพัฒนาอัพเกรดโค้ดของพวกเขาเพื่อรองรับมาตรฐานใหม่อีกด้วย
- Read more about LLVM 3.3 ออกแล้ว รองรับ C++11 เต็มรูปแบบ
- 4 comments
- Log in or register to post comments
ข่าวนี้เกี่ยวข้องกับซอฟต์แวร์ด้านคอมไพเลอร์ ศัพท์เทคนิคเฉพาะทางจะเยอะหน่อยนะครับ
เกริ่นก่อนว่าผู้อ่าน Blognone คงคุ้นเคยกับชื่อ GCC หรือ GNU Compiler Collection ซึ่งเป็นชุดซอฟต์แวร์ด้านคอมไพเลอร์สำหรับภาษาโปรแกรมต่างๆ มากมาย (ตอนแรกเน้น C/C++ เป็นหลัก) มันถูกสร้างขึ้นภายใต้โครงการ GNU และใช้สัญญาอนุญาตแบบ GPL ปัจจุบันมันเป็นคอมไพเลอร์มาตรฐานบนแพลตฟอร์มลินุกซ์และซอฟต์แวร์โอเพนซอร์สต่างๆ
แต่ GCC ไม่ใช่คอมไพเลอร์แบบโอเพนซอร์สเพียงโครงการเดียว เพราะมีโครงการคู่แข่งที่มาแรงในช่วงหลังคือ LLVM ซึ่งพัฒนามาจากโครงการวิจัยของมหาวิทยาลัย University of Illinois at Urbana–Champaign ในปี 2003
เทคโนโลยีการพัฒนาซอฟต์แวร์บน GPU นั้นทุกวันนี้มีสองค่ายใหญ่คือ CUDA ของ NVIDIA กับ OpenCL ที่ค่ายอื่นๆ เช่น อินเทล และเอเอ็มดี ใช้งานร่วมกัน ความเสียเปรียบอย่างหนึ่งของ CUDA คือมันเป็นเทคโนโลยีปิดของ NVIDIA เองทำให้ผู้ผลิตรายอื่นๆ ไม่สามารถเข้ามาใช้งานร่วมด้วยได้ และทาง NVIDIA ก็เลือกแก้ปัญหาด้วยการเปิดชั้นคอลไพลเลอร์ด้านล่างที่เป็น LLVM ออกมา
- Read more about NVIDIA ประกาศเปิดซอร์ส CUDA LLVM
- 2 comments
- Log in or register to post comments