บทสัมภาษณ์: คำมั่นสัญญาของ Intel oneAPI และ Direct Parallel C++
เผยแพร่แล้ว: 2022-03-11Intel ไม่ใช่ชื่อแรกที่นึกถึงเมื่อคุณนึกถึงการพัฒนาซอฟต์แวร์ แม้ว่าจะเป็นหนึ่งในบริษัทเทคโนโลยีที่ทรงอิทธิพลและมีนวัตกรรมมากที่สุดในโลก สี่ทศวรรษที่แล้ว โปรเซสเซอร์ 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 คือการเปิดใช้งานแพลตฟอร์มเดียวสำหรับฮาร์ดแวร์ที่แตกต่างกัน ดังนั้นนักพัฒนาจึงไม่จำเป็นต้องใช้ภาษา เครื่องมือ และไลบรารีที่ต่างกันเมื่อเขียนโค้ดสำหรับ CPU และ GPU เป็นต้น ด้วย oneAPI กล่องเครื่องมือและฐานรหัสจะเหมือนกันสำหรับทั้งคู่
เพื่อทำให้สิ่งนี้เป็นไปได้ Intel ได้พัฒนา Data Parallel C++ (DPC++) ให้เป็นทางเลือกโอเพนซอร์ซแทนภาษาที่เป็นกรรมสิทธิ์ซึ่งปกติแล้วจะใช้ในการเขียนโปรแกรมสำหรับฮาร์ดแวร์เฉพาะ (เช่น GPU หรือ FFPGA) ภาษาการเขียนโปรแกรมใหม่นี้ควรให้ประสิทธิภาพการทำงานและความคุ้นเคยของ C ++ ในขณะที่รวมคอมไพเลอร์เพื่อปรับใช้กับเป้าหมายฮาร์ดแวร์ที่แตกต่างกัน
Data Parallel C++ ยังรวม SYCL ของ Khronos Group เพื่อรองรับการขนานข้อมูลและการเขียนโปรแกรมที่ต่างกัน ปัจจุบัน Intel เสนอการเข้าถึง DevCloud ได้ฟรี ทำให้วิศวกรซอฟต์แวร์สามารถทดลองใช้เครื่องมือและปรับแต่งด้วย oneAPI และ DPC++ ในระบบคลาวด์โดยไม่ต้องยุ่งยากมากนัก
แต่เดี๋ยวก่อน มันจะทำงานบนฮาร์ดแวร์ที่ผลิตโดยผู้ขายรายอื่นหรือไม่? ใบอนุญาตฟรีหรือไม่? ใช่และใช่: 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 นั่นเอง
คอมไพเลอร์ 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 ไม่สามารถสร้างภาษาและเครื่องมือทั้งหมดในโลกได้ ดังนั้นจึงเป็นโครงสร้างพื้นฐานแบบโอเพนซอร์สที่ผู้อื่นสามารถใช้ประโยชน์และต่อยอดได้อย่างง่ายดาย