Android

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

เวก้าผับ ฉบับพิเศษ

เวก้าผับ ฉบับพิเศษ
Anonim

การเพิ่มแกนประมวลผลมากขึ้นได้กลายเป็นวิธีหลักในการเพิ่มประสิทธิภาพของชิปเซิร์ฟเวอร์และพีซี แต่ผลประโยชน์จะลดลงอย่างมากหากอุตสาหกรรมไม่สามารถเอาชนะปัญหาด้านฮาร์ดแวร์และการเขียนโปรแกรมผู้ร่วมงานที่งาน Multicore Expo ในซานตาคลาร่า, แคลิฟอร์เนียกล่าวว่าในสัปดาห์นี้

ซอฟท์แวร์ส่วนใหญ่ในปัจจุบันยังคงเขียนขึ้นสำหรับชิพประมวลผลเดี่ยวและจะต้องมีการเขียนใหม่หรือปรับปรุงใหม่เพื่อให้สามารถใช้ประโยชน์จากแกนที่เพิ่มขึ้นของ Intel, Sun Microsystems และผู้ผลิตชิพรายอื่น ๆ Linley Gwennap ประธานและนักวิเคราะห์หลักของ The Linley Group กล่าวว่า

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

ผู้ผลิตชิปและผู้สร้างระบบได้เริ่มให้ความรู้แก่นักพัฒนาซอฟต์แวร์และจัดหาเครื่องมือสำหรับการเขียนโปรแกรมแบบมัลติคอร์ ปีที่ผ่านมาอินเทลและไมโครซอฟท์กล่าวว่าพวกเขาจะลงทุน 20 ล้านเหรียญสหรัฐเพื่อเปิดศูนย์วิจัยสองแห่งในมหาวิทยาลัยของสหรัฐฯที่อุทิศตัวเพื่อแก้ปัญหา การขาดเครื่องมือการเขียนโปรแกรมแบบมัลติคอร์สำหรับนักพัฒนาหลักอาจเป็นความท้าทายที่ยิ่งใหญ่ที่สุดที่อุตสาหกรรมเผชิญในปัจจุบัน Gwennap กล่าวว่า

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

แต่ในช่วงไม่กี่ปีที่ผ่านมา Intel และ Advanced Micro Devices ได้เพิ่มแกนเป็นวิธีที่มีประสิทธิภาพมากขึ้นในการเพิ่มประสิทธิภาพ ชิปประสิทธิภาพการเปลี่ยนแปลงที่โดดเด่นจากการปฏิบัติแบบดั้งเดิมของการเพิ่มความเร็วนาฬิกา อินเทลกำลังสร้างแกนประมวลผล 8 คอร์ในชิพ Nehalem-EX ที่กำลังจะมาถึงนี้และ AMD กำลังออกแบบชิป 12 คอร์สำหรับเซิร์ฟเวอร์ นอกจากนี้ยังเพิ่มความสามารถแบบมัลติเธรดซึ่งช่วยให้แต่ละแกนสามารถทำงานได้หลายบรรทัดในเวลาเดียวกัน

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

มีเครื่องมือสำหรับเขียนโปรแกรมแบบคู่ขนานเช่น Parallel Studio ของ Intel สำหรับ C และ C ++ ผู้ขายรายอื่น ๆ ในพื้นที่ ได้แก่ Codeplay, Polycore Software และ Clik Arts นอกจากนี้ยังมีรูปแบบการเขียนโปรแกรมแบบ C-based ใหม่ที่เรียกว่า OpenCL ซึ่งพัฒนาขึ้นโดย The Khronos Group และได้รับการสนับสนุนโดย Apple, Intel, AMD, Nvidia และอื่น ๆ

แต่เครื่องมือต่างๆที่มีอยู่ยังคงทำงานอยู่ Multicore Expo กล่าวว่า คอมไพเลอร์ซอฟต์แวร์จำเป็นต้องสามารถระบุรหัสที่สามารถ parallelized แล้วทำงานของ parallelizing โดยไม่ต้องแทรกแซงด้วยตนเองจากโปรแกรมเมอร์ Shay Gal - on, ผู้อำนวยการวิศวกรรมซอฟต์แวร์ที่ EEMBC, องค์กรไม่แสวงหาผลกำไรที่พัฒนามาตรฐานสำหรับชิปฝัง

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

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

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

การแชร์แคชหน่วยความจำเดียวหรือบัสข้อมูลระหว่างแกนหลายคอร์สามารถสร้างคอขวดซึ่งหมายถึงแกนพิเศษ ถูกทำลายส่วนใหญ่ "เมื่อถึงเวลาที่คุณได้รับซีพียู 6-8 ตัวพวกเขาใช้เวลาพูดคุยกันตลอดเวลาและไม่ก้าวไปข้างหน้าเพื่อรับงาน" เขากล่าว "ความรับผิดชอบอาจอยู่กับนักพัฒนาซอฟต์แวร์เพื่อลดช่องว่างระหว่าง ฮาร์ดแวร์และซอฟต์แวร์เพื่อเขียนโปรแกรมแบบขนานที่ดีขึ้น ผู้จัดทำเอกสารหลายรายไม่ได้เร่งพัฒนาความก้าวหน้าด้านฮาร์ดแวร์ล่าสุด Gal-on กล่าว พวกเขาควรจะเปิดแผ่นข้อมูลและสถาปัตยกรรมชิปการศึกษาเพื่อทำความเข้าใจว่าโค้ดของพวกเขาสามารถทำงานได้ดีขึ้นอย่างไรเขากล่าวว่า