บทสัมภาษณ์: คำมั่นสัญญาของ Intel oneAPI และ Direct Parallel C++

เผยแพร่แล้ว: 2022-03-11

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

วิศวกรซอฟต์แวร์ใช้แพลตฟอร์มฮาร์ดแวร์ของ Intel มาเป็นเวลาหลายสิบปี โดยปกติแล้วจะไม่ได้พิจารณาซอฟต์แวร์และเฟิร์มแวร์เบื้องหลังด้วยซ้ำ หากพวกเขาต้องการประสิทธิภาพการจำลองเสมือนมากขึ้น พวกเขาเลือกใช้ผลิตภัณฑ์ multicore, hyperthreaded Core i7 หรือ Xeon สำหรับการแก้ไขฐานข้อมูลในเครื่อง พวกเขาสามารถหา Intel SSD ได้ แต่ตอนนี้ Intel ต้องการให้นักพัฒนาเริ่มใช้ซอฟต์แวร์ของตนมากขึ้นด้วย

Intel oneAPI คืออะไร?

ป้อน oneAPI ซึ่ง Intel ขนานนามว่าเป็นโมเดลการเขียนโปรแกรมแบบรวมศูนย์เดียวที่มีจุดมุ่งหมายเพื่อทำให้การพัฒนาง่ายขึ้นในสถาปัตยกรรมฮาร์ดแวร์ต่างๆ: CPU, GPU, FPGA, ตัวเร่ง AI และอื่นๆ ทั้งหมดมีคุณสมบัติที่แตกต่างกันมากและเก่งในการดำเนินการประเภทต่างๆ

Intel OneAPI คืออะไร?

ขณะนี้ Intel มุ่งมั่นที่จะใช้กลยุทธ์ "เน้นซอฟต์แวร์เป็นหลัก" และคาดหวังให้นักพัฒนารับทราบ แนวคิดที่ยิ่งใหญ่เบื้องหลัง oneAPI คือการเปิดใช้งานแพลตฟอร์มเดียวสำหรับฮาร์ดแวร์ที่แตกต่างกัน ดังนั้นนักพัฒนาจึงไม่จำเป็นต้องใช้ภาษา เครื่องมือ และไลบรารีที่ต่างกันเมื่อเขียนโค้ดสำหรับ CPU และ GPU เป็นต้น ด้วย oneAPI กล่องเครื่องมือและฐานรหัสจะเหมือนกันสำหรับทั้งคู่

เพื่อทำให้สิ่งนี้เป็นไปได้ Intel ได้พัฒนา Data Parallel C++ (DPC++) ให้เป็นทางเลือกโอเพนซอร์ซแทนภาษาที่เป็นกรรมสิทธิ์ซึ่งปกติแล้วจะใช้ในการเขียนโปรแกรมสำหรับฮาร์ดแวร์เฉพาะ (เช่น GPU หรือ FFPGA) ภาษาการเขียนโปรแกรมใหม่นี้ควรให้ประสิทธิภาพการทำงานและความคุ้นเคยของ C ++ ในขณะที่รวมคอมไพเลอร์เพื่อปรับใช้กับเป้าหมายฮาร์ดแวร์ที่แตกต่างกัน

Data Parallel C++ ยังรวม SYCL ของ Khronos Group เพื่อรองรับการขนานข้อมูลและการเขียนโปรแกรมที่ต่างกัน ปัจจุบัน Intel เสนอการเข้าถึง DevCloud ได้ฟรี ทำให้วิศวกรซอฟต์แวร์สามารถทดลองใช้เครื่องมือและปรับแต่งด้วย oneAPI และ DPC++ ในระบบคลาวด์โดยไม่ต้องยุ่งยากมากนัก

oneAPI สำหรับการพัฒนาข้ามสถาปัตยกรรม

แต่เดี๋ยวก่อน มันจะทำงานบนฮาร์ดแวร์ที่ผลิตโดยผู้ขายรายอื่นหรือไม่? ใบอนุญาตฟรีหรือไม่? ใช่และใช่: oneAPI ได้รับการออกแบบมาให้ไม่เชื่อเรื่องฮาร์ดแวร์และเป็นโอเพนซอร์ส และจะไม่เปลี่ยนแปลง

เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ oneAPI เราได้พูดคุยถึงการกำเนิดและอนาคตกับ Sanjiv M. Shah รองประธานกลุ่มสถาปัตยกรรม กราฟิกและซอฟต์แวร์ของ Intel และผู้จัดการทั่วไปฝ่ายเทคนิค องค์กร และคลาวด์คอมพิวติ้งที่ Intel

Sanjiv: ในแง่ของสิ่งที่อยู่ใน oneAPI ฉันคิดว่ามันเป็นสี่ส่วน หนึ่งคือภาษาและไลบรารีมาตรฐาน อันที่สองคือชุดเครื่องมือการเรียนรู้เชิงลึก อันที่สามคือเลเยอร์นามธรรมของฮาร์ดแวร์และเลเยอร์ไดรเวอร์ซอฟต์แวร์ที่สามารถสรุปตัวเร่งความเร็วต่างๆ ได้ และส่วนที่สี่คือชุดของไลบรารีที่เน้นโดเมน เช่น Matlab เป็นต้น สิ่งเหล่านี้คือสี่ประเภทของสิ่งต่าง ๆ ใน oneAPI แต่เราสามารถเจาะลึกและพูดคุยเกี่ยวกับองค์ประกอบทั้งเก้าของ oneAPI องค์ประกอบทั้งเก้านั้นโดยพื้นฐานแล้วเป็นภาษาใหม่ที่เราแนะนำซึ่งเรียกว่า Data Parallel C++ และไลบรารีมาตรฐานของมัน

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

ถาม: เกี่ยวกับอัลกอริทึมและการใช้งาน ทำงานอย่างไร

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

ถาม: มันทำงานอย่างไรในระดับฮาร์ดแวร์?

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

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

ถาม: คุณบอกว่าเวอร์ชันที่คุณมีตอนนี้ถูกกำหนดให้เป็น 0.5 และข้อมูลจำเพาะฉบับเต็มน่าจะพร้อมใช้ภายในสิ้นปี 2020

ความคิดริเริ่ม oneAPI ของเรามีสองส่วน หนึ่งคือส่วนอุตสาหกรรม และอีกส่วนหนึ่งคือผลิตภัณฑ์ของ Intel ข้อมูลจำเพาะของอุตสาหกรรมอยู่ที่ 0.5 และประมาณกลางปี ​​เราต้องการให้เป็น 1.0 ในขณะเดียวกัน Intel กำลังสร้างชุดผลิตภัณฑ์ และผลิตภัณฑ์ต่างๆ ที่ Intel กำลังสร้างนั้นอยู่ในรุ่นเบต้าและใช้ข้อกำหนด 0.5 ภายในสิ้นปีนี้ เราต้องการผลิตภัณฑ์ 1.0

ผลิตภัณฑ์ของ Intel มีมากกว่าองค์ประกอบทั้งเก้าของ oneAPI เพราะนอกเหนือจากองค์ประกอบการเขียนโปรแกรมพื้นฐานที่เราจัดเตรียมไว้ เรายังต้องการมอบสิ่งที่โปรแกรมเมอร์ต้องการจริงๆ เช่น ดีบักเกอร์ ตัววิเคราะห์ และเครื่องมือที่เข้ากันได้ เพื่อที่พวกเขาจะได้ย้ายจากภาษาที่มีอยู่ไปยัง Data ภาษา C++ แบบขนาน

ถาม: นักพัฒนาจะเปลี่ยนแปลงได้ยากเพียงใด สภาพแวดล้อมที่กว้างขึ้นคล้ายกับสิ่งที่พวกเขาใช้มาหลายปีหรือไม่?

ใช่ มันคล้ายกันมาก ให้ฉันอธิบาย Data Parallel C++ สักหน่อย เพราะนั่นเป็นส่วนสำคัญของสิ่งที่เรากำลังทำ DPC++ เป็นสามสิ่ง มันสร้างจากภาษา C ++ มาตรฐานสากล ISO มีกลุ่มที่เรียกว่า Khronos ที่กำหนดมาตรฐานที่เรียกว่า SYCL และ SYCL ถูกวางทับบน C++ เราใช้ SYCL แล้วเพิ่มส่วนขยายที่ด้านบนของ SYCL วิธีที่เรากำลังสร้าง Data Parallel C++ นั้นเป็นเพียง C++ ที่มีส่วนขยายอยู่ ซึ่งก็คือ SYCL นั่นเอง

คอมไพเลอร์ oneAPI DPC++ และรันไทม์

คอมไพเลอร์ C++ ใดๆ สามารถคอมไพล์ได้ ข้อดีของ DPC++ ก็คือคอมไพเลอร์ทุกเครื่องคอมไพล์ได้ แค่คอมไพเลอร์ที่มีความรู้ก็สามารถใช้ประโยชน์จากสิ่งที่อยู่ในภาษานั้นและสร้างโค้ดเร่งความเร็วได้ วิธีที่เราดำเนินการภาษานี้ เรากำลังดำเนินการอย่างเปิดเผย ดังนั้นการสนทนาทั้งหมดของเราเกี่ยวกับ Data Parallel C++ จึงเกิดขึ้นกับคณะกรรมการ SYCL การใช้งานเป็นโอเพ่นซอร์ส ส่วนขยายทั้งหมดได้รับการเผยแพร่แล้ว และเรากำลังดำเนินการอย่างระมัดระวังเพื่อให้แน่ใจว่าเรามีแนวทางที่ดีในมาตรฐาน SYCL ในอนาคต เมื่อมองลงไปยังอีก 5-10 ปีข้างหน้า แนวทางสู่ ISO C++ ก็เช่นกัน

ถาม: เกี่ยวกับคอมไพเลอร์และการย้ายไปยัง DPC++ เส้นโค้งการเรียนรู้ไม่น่าจะมีปัญหาอะไรมากใช่ไหม

ใช่ มันขึ้นอยู่กับว่าคุณเริ่มต้นจากที่ไหน สำหรับโปรแกรมเมอร์ C++ เส้นโค้งการเรียนรู้จะมีขนาดเล็กมาก สำหรับโปรแกรมเมอร์ C คุณจะต้องก้าวข้ามอุปสรรคของการเรียนรู้ C++ แต่นั่นคือทั้งหมด เป็น C++ ที่คุ้นเคยมาก สำหรับโปรแกรมเมอร์ที่เคยใช้ภาษาอย่าง OpenCL ควรจะคล้ายกันมาก

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

ถาม: C++ นั้นมีประสิทธิภาพและค่อนข้างง่าย แต่เราทุกคนรู้ว่ามันเริ่มเก่าแล้ว การพัฒนาช้า มีผู้มีส่วนได้ส่วนเสียจำนวนมากเกินไป ดังนั้นพวกเขาจึงทำให้ทุกอย่างช้าลง เห็นได้ชัดว่าจะไม่เป็นกรณีนี้กับ DPC++ คุณจะมีการทำซ้ำและอัปเดตที่เร็วกว่ามากไหม

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

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

ถาม: คำถามหนึ่งที่เพื่อนร่วมงานของฉันบางคนถาม (คุณอาจเข้าใจว่าพวกเขาค่อนข้างกังวลเกี่ยวกับการเปิดกว้างกับทุกสิ่งที่มาจากบริษัทใหญ่ๆ ): DPC++ จะยังคงเปิดให้ผู้ใช้และผู้จำหน่ายทั้งหมดอยู่เสมอหรือไม่

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

Codeplay ซึ่งเป็นบริษัทนอกสหราชอาณาจักรได้ประกาศใช้ DPC++ ของ Nvidia และเราขอสนับสนุนให้ผู้จำหน่ายฮาร์ดแวร์และผู้จำหน่ายซอฟต์แวร์ทุกรายทำพอร์ตของตน เราอยู่ในจุดที่ไม่เหมือนใครในอุตสาหกรรมที่ตัวเร่งความเร็วกลายเป็นเรื่องปกติสำหรับผู้ขายหลายราย เมื่อสิ่งนั้นเกิดขึ้นในประวัติศาสตร์ เมื่อมีผู้ให้บริการเพียงรายเดียว ภาษาของพวกเขาก็ครอบงำ อุตสาหกรรมซอฟต์แวร์ต้องการโซลูชันมาตรฐานและผู้ให้บริการหลายราย

สิ่งที่เราพยายามจะทำที่นี่คือสิ่งที่เราทำเมื่อประมาณสองทศวรรษครึ่งที่ผ่านมาด้วย OpenMP ซึ่งมีภาษาคู่ขนานหลายภาษา แต่ไม่มีภาษาเดียวที่โดดเด่นจริงๆ เรานำสิ่งเหล่านี้ทั้งหมดมารวมกันเป็นมาตรฐานซึ่งตอนนี้ 25 ปีต่อมาเป็นวิธี การ เขียนโปรแกรมสำหรับ HPC

ถาม: ถูกต้องหรือไม่ที่จะบอกว่า DPC++ จะได้เห็นวิวัฒนาการมากมายในอีกไม่กี่ปีข้างหน้า แล้วเทนเซอร์ล่ะ ฮาร์ดแวร์ตัวใหม่ที่ออกมาล่ะ?

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

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

ถาม: นักพัฒนาสามารถควบคุมโค้ดที่สร้างขึ้นสำหรับฮาร์ดแวร์ได้มากเพียงใด พวกเขาสามารถควบคุมการจัดการหน่วยความจำระหว่างระบบกับตัวเร่งความเร็วต่างๆ ได้มากน้อยเพียงใด?

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

ถาม: จุดที่น่าสนใจคือการแจกจ่าย oneAPI สำหรับ Python—Intel ที่แสดงรายการเฉพาะ NumPy, SciPy, SciKit Learn ฉันอยากรู้เกี่ยวกับประสิทธิภาพที่เพิ่มขึ้นและประโยชน์ด้านประสิทธิภาพการทำงานที่สามารถปลดล็อกได้ผ่าน oneAPI คุณมีตัวชี้วัดใด ๆ เกี่ยวกับสิ่งนั้นหรือไม่?

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

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

ถาม: เรากำลังพูดถึงฮาร์ดแวร์ประเภทใด นักพัฒนาสามารถปลดล็อกศักยภาพนี้บนเวิร์กสเตชันทั่วไปได้หรือไม่ หรือจำเป็นต้องมีสิ่งที่ทรงพลังกว่านี้อีกเล็กน้อย

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

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

หากคุณดูกราฟิกแบบบูรณาการของเรา พวกมันก็มีประสิทธิภาพมากเช่นกัน ฉันแน่ใจว่าคุณเคยเห็น Ice Lake Gen 11 ที่กราฟิกในตัวนั้นดีกว่ารุ่นก่อนอย่างเห็นได้ชัด คุณสามารถดูที่มาของประโยชน์ได้ แม้กระทั่งบนแล็ปท็อป

ถาม: ความพร้อมใช้งานของ DevCloud เป็นอย่างไร ถ้าจำไม่ผิด ตอนนี้ใช้ฟรีสำหรับทุกคน แต่จะคงอยู่อย่างนั้นหลังจากทองปีหน้า?

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

ถาม: คุณจะไม่ว่าอะไรหากเราขอให้นักพัฒนาสองสามพันคนลองทำดู

โอ้ไม่อย่างแน่นอน เราอยากจะให้มันเกิดขึ้น!

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

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