ทำไมผู้คนถึงใช้ GPU เพื่อการคำนวณที่มีประสิทธิภาพสูงแทนที่จะใช้ชิปพิเศษมากกว่า


105

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

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

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

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

แก้ไข:

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

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


66
เพราะพวกเขามีความเชี่ยวชาญในเรื่องนี้ มันเป็นคณิตศาสตร์ประเภทเดียวกัน และ nVidia ได้สร้างและจำหน่ายแผงวงจร GPU เท่านั้นสำหรับคนที่จะทำสิ่งนี้ในจำนวนที่ขนานกันอย่างหนาแน่น
Heptite

7
โปรดทราบว่าเรามีการเพิ่ม "หน่วย" พิเศษลงในชิป AES ทำในฮาร์ดแวร์ (ฉันคิดว่า) บนซีพียู AVX ถูกนำมาใช้ในฮาร์ดแวร์ด้วย อย่างไรก็ตามคุณจะหยุดที่ไหน Chipmaker ไม่ทราบว่าคุณต้องการอะไรและคนส่วนใหญ่ไม่มีความสามารถ (เทคโนโลยีหรือการเงิน) ในการออกแบบชิปของตัวเองสำหรับงานเฉพาะ กราฟิกการ์ดเป็น - ตามที่กล่าวอื่น ๆ - สถาปัตยกรรมเฉพาะประเภทหนึ่งซึ่งให้ยืมตัวเองดีกับงานบางอย่าง มันไม่ดีสำหรับทุกอย่าง - แต่สำหรับงานเฉพาะบางอย่างและใช้ที่นั่น
DetlevCM

4
การเปรียบเทียบที่แม่นยำยิ่งขึ้นจะแทนที่พัดลมแบบกล่องด้วยการทำฟาร์มแบบกว้าง 100 เมตร
MooseBoys

6
พีซีของฉันมี GPU ที่พร้อมใช้งานแล้วการออกแบบและการผลิตชิปเฉพาะจะทำให้ฉันกลับมาเป็นสองล้าน
PlasmaHH

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

คำตอบ:


109

มันเป็นการรวมกันของคำอธิบายทั้งหมดของคุณ ราคาถูกกว่าและง่ายกว่ามีอยู่แล้วและการออกแบบเปลี่ยนไปจากกราฟิกที่บริสุทธิ์


GPU ที่ทันสมัยสามารถดูได้ในขั้นต้นเป็นสตรีมโปรเซสเซอร์พร้อมฮาร์ดแวร์กราฟิกเพิ่มเติม (และตัวเร่งความเร็วคงที่บางฟังก์ชั่นเช่นสำหรับการเข้ารหัสและถอดรหัสวิดีโอ) การเขียนโปรแกรมGPGPU ในปัจจุบันใช้ API ที่ออกแบบมาเพื่อจุดประสงค์นี้โดยเฉพาะ (OpenCL, Nvidia CUDA, AMD APP)

ในช่วงสิบหรือสองปีที่ผ่านมา GPU ได้มีการพัฒนาจากไปป์ไลน์ฟังก์ชั่นคงที่ (กราฟิกที่สวยมากเท่านั้น) ไปยังไปป์ที่ตั้งโปรแกรมได้ ( shaderให้คุณเขียนคำแนะนำที่กำหนดเอง) ไปยัง API ที่ทันสมัยกว่าเช่น OpenCL ที่ให้การเข้าถึง ไปป์ไลน์กราฟิค

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

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


โดยทั่วไปตัวเลือกต่าง ๆ ลงมาที่:

  • ซีพียูที่ใช้งานทั่วไปเหมาะอย่างยิ่งสำหรับการแยกและรหัสต่อเนื่อง
  • GPU "เกม" ปกติ
  • Compute-oriented GPU เช่นNvidia TeslaและRadeon Instinct สิ่ง เหล่านี้มักจะไม่รองรับการแสดงผลกราฟิกเลย GPU จึงเป็นบิตของผู้เรียกชื่อผิด อย่างไรก็ตามพวกเขาใช้แกน GPU ที่คล้ายกันกับ GPU ปกติและรหัส OpenCL / CUDA / APP นั้นพกพาได้โดยตรงไม่มากก็น้อย
  • FPGA ซึ่งใช้รูปแบบการเขียนโปรแกรมที่แตกต่างกันมากและมีแนวโน้มที่จะมีราคาแพงมาก นี่คือสิ่งที่เป็นอุปสรรคสำคัญในการเข้าสู่ที่มีอยู่ นอกจากนี้ยังไม่จำเป็นต้องเร็วกว่า GPU ขึ้นอยู่กับปริมาณงาน
  • ASICs, วงจรที่ออกแบบเอง (ฮาร์ดแวร์) นี่เป็นราคาที่แพงมากและมีมูลค่าเพียงแค่ขนาดที่มาก (เรากำลังพูดถึงหน่วยนับพันอย่างน้อยที่สุด) และที่คุณมั่นใจว่าโปรแกรมจะไม่ต้องเปลี่ยน พวกเขาไม่ค่อยมีความเป็นไปได้ในโลกแห่งความเป็นจริง คุณจะต้องออกแบบและทดสอบทุกสิ่งทุกครั้งที่มีความก้าวหน้าทางเทคโนโลยี - คุณไม่สามารถเปลี่ยนเป็นโปรเซสเซอร์ใหม่อย่างที่คุณสามารถทำได้ด้วย CPU และ GPU

16
ASIC นั้นสมเหตุสมผลเมื่อการคำนวณใช้จ่ายเอง (การขุด crypto)
ratchet freak

4
ที่จริงแล้ว FPGA นั้นมักจะแย่กว่า GPU ปัญหาคือ FPGA นั้นมีความยืดหยุ่นสูง พวกเขาสามารถใช้การดำเนินการต่าง ๆ มากมาย อย่างไรก็ตามการคำนวณโดยทั่วไปเป็นรูปแบบของคณิตศาสตร์และในความเป็นจริงส่วนใหญ่เป็นเพียงสองการดำเนินการ: การเพิ่มและการคูณ (การลบและการหารเป็นตัวแปรของด้านบน) GPU นั้นดีมากในการดำเนินการทั้งสองนั้นมากกว่า FPGA
MSalters

19
คุณต้องอธิบายเพิ่มเติมเกี่ยวกับ FPGA แนวคิดที่ว่ามี "การก้าวขึ้น" เป็นความเข้าใจผิดเล็กน้อย พวกเขาเป็นขั้นตอนข้างมากขึ้น
Yakk

6
ในตัวอย่างล่าสุด Google มี "หน่วยประมวลผล Tensor" ของตนเองสำหรับการเรียนรู้ของเครื่อง ระดับที่กำหนดเองนั้นไม่ชัดเจน แต่อธิบายว่าเป็น ASIC
mbrig

4
@MSalters หนึ่งในจุดขายหลักของ FPGAs มากกว่า GPU คือประสิทธิภาพ / วัตต์ซึ่งกำลังได้รับความสำคัญมากขึ้นเมื่อดาต้าเซ็นเตอร์เริ่มโจมตีกำแพงไฟ (โดยทั่วไปแล้ว FPGA จะมีประสิทธิภาพมากกว่า สำหรับเรื่องทางคณิตศาสตร์นั้น FPGA นั้นเปรียบได้กับ GPU ในคณิตศาสตร์แบบคงที่และจำนวนเต็ม
wilcroft

32

การเปรียบเทียบที่ฉันชอบ:

  • CPU : A Polymath อัจฉริยะ สามารถทำสิ่งหนึ่งครั้งหรือสองครั้ง แต่สิ่งเหล่านั้นอาจซับซ้อนมาก
  • GPU : คนงานที่มีทักษะต่ำจำนวนมาก แต่ละคนไม่สามารถทำปัญหาใหญ่มาก แต่โดยรวมแล้วคุณสามารถทำสิ่งต่างๆได้มากมาย สำหรับคำถามของคุณใช่มีกราฟิกบางส่วนค่าใช้จ่าย แต่ฉันเชื่อว่ามันเป็นเล็กน้อย
  • ASIC / FPGA : บริษัท คุณสามารถจ้างแรงงานที่มีทักษะต่ำหรืออัจฉริยะสองสามคนหรือการรวมกันของแรงงานที่มีทักษะต่ำและอัจฉริยะ

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

คำถามของคุณโดยตรง: ทำไม GPU ถึง ASIC / FPGA ค่าใช้จ่ายโดยทั่วไป แม้จะมีราคา GPU ที่สูงขึ้นในปัจจุบัน แต่ก็ยังถูกกว่าการใช้ GPU มากกว่าการออกแบบ ASIC เพื่อตอบสนองความต้องการของคุณ ดังที่ @ user912264 ชี้ให้เห็นว่ามีงานเฉพาะที่สามารถเป็นประโยชน์สำหรับ ASICs / FPGAs หากคุณมีงานที่ไม่เหมือนใครและคุณจะได้รับประโยชน์จากสเกลแล้วมันก็คุ้มค่าที่จะออกแบบ ASIC / FPGA ในความเป็นจริงคุณสามารถออกแบบ / ซื้อ / ใบอนุญาตออกแบบ FPGA โดยเฉพาะเพื่อจุดประสงค์นี้ สิ่งนี้ทำเพื่อเพิ่มพลังพิกเซลในทีวีความคมชัดสูง


7
ความคิดเห็นไม่ได้มีไว้สำหรับตอบรับและนี่เป็นคำตอบที่สมเหตุสมผลสำหรับฉัน
Raimund Krämer

1
@BobtheMogicMoose แต่อาจเป็นคำสั่งที่มีขนาดเร็วกว่าเพื่อใช้ FPGA แบบกำหนดเองที่ออกแบบมาสำหรับการวิเคราะห์จีโนมมากกว่าที่จะมีรหัสเทียบเท่าใน GPU เมื่อคุณจ่ายนักวิทยาศาสตร์ให้นั่งรอผลการวิจัย FPGA ที่เร็วกว่านั้นจะจ่ายให้ตัวเองอย่างรวดเร็ว
Doneal24

FPGA กำลังเข้าถึงนักพัฒนาทั่วไปได้มากขึ้นเช่นกัน - Microsoft มีโซลูชัน Cloud AI ที่ใช้ FPGA (Project BrainWave) AWS มีข้อเสนอบางอย่างเช่นกัน ทุกคนสามารถให้เช่า FPGA ที่กำหนดเองสำหรับงานเฉพาะโดยไม่ต้องสร้างเองไม่สามารถทำได้สำหรับกรณีการใช้งานหลายอย่างแม้กระทั่งเมื่อไม่กี่ปีที่ผ่านมา
brichins

ใช่ฉันคิดว่ายังมีชุดอดิเรกของ FPGA ที่เทียบได้กับ arduino raspberry-pi ฉันยังคิดว่าการเขียนโปรแกรม FPGA นั้นมีค่าใช้จ่ายสูงกว่าการพัฒนาสถาปัตยกรรมมากกว่า
BobtheMagicMoose

10

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

ค่าใช้จ่ายด้าน R&D และการเพิ่มประสิทธิภาพที่เป็นไปได้สำหรับชิปเฉพาะนั้นมีแนวโน้มสูงเกินไปที่จะแสดงให้เห็นถึงความเหมาะสม

ที่กล่าวมาแล้วฉันรู้ว่า Nvidia ได้นำเอา GPU บางตัวออกมาโดยเฉพาะเพื่อการคำนวณทั่วไป - พวกเขาไม่มีสัญญาณวิดีโอ - เช่นการขายกล่องพัดลมที่มีกรงเอาออกไปแล้ว


9

แน่นอนคุณสามารถใช้ชิปพิเศษไม่ว่าจะเป็นการประหยัดพลังงานหรือการคำนวณความเร็ว ให้ฉันบอกประวัติของการขุด Bitcoin:

  • Bitcoin เป็นของใหม่พร้อมด้วยซีพียู
  • Bitcoin ค่อนข้างใหม่สมาร์ทโฟนที่มาพร้อมกับ GPU ของพวกเขา
  • Bitcoin ตอนนี้โด่งดังผู้คนซื้อ FPGA
  • ตอนนี้ Bitcoin มีชื่อเสียง (2013) แม้แต่มือใหม่ซื้อ ASIC ("วงจรรวมของแอปพลิเคชันเฉพาะ") เพื่อขุดอย่างมีประสิทธิภาพ
  • บล็อกรางวัลจะลดลง (เป็นระยะ) แม้กระทั่ง ASIC เก่าก็ไม่สามารถทำกำไรได้อีกต่อไป

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

TL; DRแน่นอนคุณสามารถใช้ชิปพิเศษเพิ่มเติมได้


1
"แน่นอนคุณสามารถใช้ชิปพิเศษมากขึ้น" - แต่มีชิปพิเศษสำหรับ bitcoin (SHA-256) แล้วสำหรับ litecoin (scrypt) และนั่นก็ค่อนข้างมาก ไม่มีฮาร์ดแวร์การประมวลผลประสิทธิภาพสูงสำหรับปัญหาอื่น ๆ (นั่นคือด้วยประสิทธิภาพที่สูงกว่า GPU ระดับสูงในปัจจุบัน)
Agent_L

8

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

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

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

ดังนั้นโดยสรุปคำอธิบายแรกที่คุณเสนอนั้นถูกต้องที่สุด:

  • ทางเลือกเช่นนั้นจะแพงเกินไปที่จะพัฒนาเมื่อ GPU มีตัวเลือกที่ดีอยู่แล้ว

GPU ที่มีอยู่แล้วทุกคนพร้อมใช้งานและพร้อมใช้งาน


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

การดำเนินการที่เรียกร้องมากที่สุดที่ฉันคาดหวังจากคอมพิวเตอร์ของฉันคือกราฟิกในทางเทคนิคแต่การคำนวณโครงสร้างจากการเคลื่อนไหวไม่ใช่สิ่งที่คนส่วนใหญ่ (หรือนักออกแบบ GPU) คิดเมื่อพวกเขาได้ยินคำว่า "กราฟิก"
Mark

5

โดยเฉพาะ GPU ไม่ใช่ "แกนประมวลผล" ในแง่ของ "task parallelism" ส่วนใหญ่จะอยู่ในรูปแบบของ "data parallelism" SIMD คือ "คำสั่งเดียวหลาย ๆ ข้อมูล" สิ่งนี้หมายความว่าคุณจะไม่ทำสิ่งนี้:

for parallel i in range(0,1024): c[i] = a[i] * b[i]

นี่หมายความว่าคุณมีตัวชี้คำสั่ง 1024 คำสั่งทั้งหมดที่ดำเนินการแยกงานที่ดำเนินการในอัตราที่ต่างกัน SIMD หรือ "การคำนวณแบบเวกเตอร์" จะทำตามคำแนะนำในอาร์เรย์ทั้งหมดทั้งหมดในครั้งเดียวเช่นนี้:

c = a * b

คำสั่ง "ลูป" อยู่ในคำแนะนำ "*" และ "=" แทนที่จะอยู่นอกคำแนะนำ ข้างต้นจะทำสิ่งนี้กับองค์ประกอบทั้งหมด 1024 รายการในเวลาเดียวกันที่ตัวชี้คำสั่ง SAME สำหรับพวกเขาทั้งหมด มันเหมือนกับการมีรีจิสเตอร์ขนาดใหญ่สามตัวสำหรับ a, b และ c รหัส SIMD มีข้อ จำกัด อย่างมากและใช้งานได้ดีสำหรับปัญหาที่ไม่ "แยก" มากเกินไป

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

int32_x64 c; int32_x64 b; int32_x64 a; c = b * a;

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


5

คำตอบอื่น ๆ ที่นี่ค่อนข้างดี ฉันจะโยนใน 2 เซ็นต์ของฉันเช่นกัน

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

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

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

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

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

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

แก้ไข: ขยายคำตอบของฉันสักหน่อยตอนนี้ฉันออกจากรถบัส

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

องค์ประกอบบางอย่างของการออกแบบ Larrabee ทำให้มันกลายเป็น Xeon Phi / Intel MIC ผลิตภัณฑ์นี้ทำให้มันออกสู่ตลาด มันมุ่งเน้นไปที่การคำนวณแบบขนานทางวิทยาศาสตร์และ HPC อื่น ๆ ทั้งหมด ดูเหมือนความล้มเหลวทางการค้าในขณะนี้ อีกคนที่ฉันพูดด้วยที่ Intel บอกเป็นนัยว่าพวกเขาไม่ใช่ราคา / ประสิทธิภาพที่สามารถแข่งขันกับ GPU ได้

ผู้คนพยายามรวมการสังเคราะห์เชิงตรรกะสำหรับ FPGA เข้ากับคอมไพเลอร์เพื่อให้คุณสามารถสร้างรหัสสำหรับตัวเร่งความเร็ว FPGA ของคุณโดยอัตโนมัติ พวกเขาทำงานได้ไม่ดี

ที่เดียวที่ดูเหมือนจะเป็นดินที่อุดมสมบูรณ์สำหรับตัวเร่งความเร็วหรือทางเลือกอื่นของ GPU คือคลาวด์ การประหยัดจากขนาดที่มีอยู่ใน บริษัท ขนาดใหญ่เหล่านี้เช่น Google, Amazon และ Microsoft ทำให้การลงทุนในรูปแบบการคำนวณทางเลือกคุ้มค่า มีคนพูดถึงหน่วยประมวลผลเทนเซอร์ของ Google แล้ว Microsoft มี FPGA และสิ่งอื่น ๆ ตลอดโครงสร้างพื้นฐาน Bing และ Azure เรื่องเดียวกันกับ Amazon เป็นเรื่องที่สมเหตุสมผลหากขนาดสามารถชดเชยการลงทุนในเวลาเงินและน้ำตาของวิศวกร

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

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

ความสนใจใน GPU เริ่มต้นเมื่อผู้คนเริ่มตระหนักว่าสัญญาที่ให้ไว้โดยโครงการ Intel / HP EPIC นั้นเกินเลยไปมาก (ช่วงปลายยุค 90 ต้นปี 2000) ไม่มีวิธีการทั่วไปในการคอมไพเลอร์ขนาน ดังนั้นแทนที่จะพูดว่า "เราจะหาพลังการประมวลผลได้ที่ไหนเราจะลองใช้ GPU" ฉันคิดว่ามันมากกว่า "เรามีบางอย่างที่ดีในการคำนวณแบบขนานเราสามารถทำให้โปรแกรมนี้เป็นแบบปกติ" ผู้คนจำนวนมากที่เกี่ยวข้องอยู่ในชุมชนการคำนวณทางวิทยาศาสตร์ซึ่งมีรหัส Fortran ที่ขนานกันแล้วพวกเขาสามารถเรียกใช้บนเครื่อง Cray หรือ Tera (Tera MTA มีหัวข้อฮาร์ดแวร์ 128 รายการ) บางทีอาจมีการเคลื่อนไหวจากทั้งสองทิศทาง แต่ฉันได้ยินเพียงกล่าวถึงต้นกำเนิดของ GPGPU จากทิศทางนี้


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

ขออภัยฉันคิดว่าฉันทำให้ชัดเจนจากบริบท ตัวเร่งความเร็วเป็นเพียงคำศัพท์ในร่มสำหรับการ์ดตัวประมวลผลร่วมหรือการ์ดโหลด จุดลอยตัวเดิมอยู่ในตัวประมวลผลร่วมและไม่ใช่ซีพียูหลักและจะถือว่าเป็นตัวเร่งความเร็ว GPUs, DSPs, Xeon Phi, FPGAs เมื่อพวกเขาอยู่บนการ์ด PCIe หรือสิ่งที่คล้ายกันสิ่งที่ฉันกล่าวถึงในสมการเชิงอนุพันธ์แบบอะนาล็อกมีอุปกรณ์ที่ช่วยในการจำลองเสมือน นี่คือตัวอย่างทั้งหมดของเครื่องเร่งความเร็ว
NerdPirate

4

ป้อนคำอธิบายรูปภาพที่นี่

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

ทำไม GPUs

ในช่วงกลางยุค 90 3DFX ตระหนักว่างานการเรนเดอร์ 3D นั้นมีความเฉพาะเจาะจงมากดังนั้น ASIC ที่กำหนดเองจะทำงานได้ดีกว่า CPU มาก พวกเขาสร้างตัวประมวลผลร่วมของคอมพิวเตอร์ที่ลดภาระงานการเรนเดอร์ 3D จาก CPU ไปยังตัวประมวลผลร่วมนี้ซึ่งพวกเขาขนานนามว่า "GPU" การแข่งขันและความต้องการของตลาดผลักดันให้เกิดนวัตกรรมในพื้นที่นี้จนถึงจุดที่ GPU ทำการคำนวณได้เร็วกว่าของซีพียูดังนั้นคำถามจึงเกิดขึ้น "ทำไมฉันไม่ใช้ GPU เพื่อบีบตัวเลขของฉันแทนที่จะเป็นซีพียู" ผู้ผลิต GPU เห็นความต้องการและวิธีหาเงินได้มากขึ้นดังนั้นพวกเขาจึงเริ่มปรับเปลี่ยนแพลตฟอร์มเพื่อให้นักพัฒนาซอฟต์แวร์สามารถใช้งานฮาร์ดแวร์ได้ แต่ฮาร์ดแวร์ฮาร์ดแวร์นั้นมีจุดประสงค์เฉพาะที่มีอยู่และยังคงมีข้อ จำกัด ในสิ่งที่คุณสามารถขอให้ GPU ทำ ฉันจะไม่เจาะจงว่าทำไมที่นี่

แล้วทำไมไม่มีซิลิกอนเฉพาะเจาะจงมากกว่านี้? ทำไมต้องกราฟิก

สองเหตุผล: 1) ราคา GPU มีตลาดที่ดีและสามารถพิสูจน์ได้ แต่ถึงอย่างนั้นมันก็มีความเสี่ยงสูง ไม่มีใครรู้จริง ๆ ว่า 3DFX สามารถทำกำไรได้หรือไม่ (จริง ๆ แล้วพวกเขาทำไม่ได้และเสียชีวิต) แม้ตอนนี้ด้วยขนาดของตลาด GPU มีคู่แข่งเพียง 3 รายเท่านั้น 2) CPUs ตอบสนองความต้องการ "ซิลิคอนแบบกำหนดเอง" ที่มีส่วนขยายคำสั่ง ลองนึกถึง MMX - นี่เป็นความพยายามของ Intel ในการเร่งกราฟิกในซีพียูเนื่องจาก 3DFX กำลังเร่งความเร็ว ตั้งแต่นั้นมาชุดคำสั่ง x86 ได้เติบโตขึ้นอย่างมากด้วยส่วนขยายที่กำหนดเองทั้งหมด ส่วนขยายเหล่านี้มีเหตุผลหลายอย่างในเวลานั้น (เช่น MMX) แต่ตอนนี้ส่วนใหญ่จะมีน้ำหนักเพียงเล็กน้อยในโปรเซสเซอร์ อย่างไรก็ตามคุณไม่สามารถลบซอฟต์แวร์เหล่านั้นออกเพราะจะทำให้ซอฟต์แวร์ที่มีอยู่เสียหาย มัน' s จริงๆแล้วหนึ่งในจุดขายสำหรับ ARM - ARM เป็นชุดคำสั่งที่แยกออกมา มีส่วนขยายการเรียนการสอนไม่มากนัก แต่สิ่งนี้ทำให้ซิลิคอนมีขนาดเล็กลงและราคาถูกลงเพื่อผลิต

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

มีเทคโนโลยีที่เรียกว่าเกทอาร์เอฟพีจีซึ่งเป็นระบบเกทเรย์ที่สามารถตั้งโปรแกรมได้ซึ่งนับตั้งแต่ยุคแรก ๆ ของการคำนวณ มันเป็นไมโครชิปที่คุณสามารถออกแบบ "ในสนาม" โดยใช้ซอฟต์แวร์ มันเป็นเทคโนโลยีที่เจ๋งมาก แต่โครงสร้างทั้งหมดที่จำเป็นในการทำให้ชิปที่ตั้งโปรแกรมได้นั้นใช้ซิลิคอนจำนวนมากและทำให้ชิปทำงานด้วยความเร็วสัญญาณนาฬิกาที่ต่ำกว่ามาก FPGA นั้นเร็วกว่าของ CPU หากคุณมีซิลิคอนเพียงพอบนชิปและสามารถทำภารกิจให้ขนานได้อย่างมีประสิทธิภาพ แต่พวกมันถูก จำกัด ด้วยตรรกะที่คุณสามารถใส่ได้ ทั้งหมดยกเว้น FPGA ที่แพงที่สุดนั้นช้ากว่า GPU สำหรับการขุด bitcoin ในช่วงแรก cryptocurrencies อื่น ๆ ได้ใช้อัลกอริทึมเฉพาะที่ไม่สามารถขนานดังนั้น FPGA และ ASIC '

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

FPGA จะถูกแทนที่ด้วย CPU และ GPU หรือไม่

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


1
ส่วนขยายเหล่านี้มีเหตุผลหลายอย่างในเวลานั้น (เช่น MMX) แต่ตอนนี้ส่วนใหญ่มีน้ำหนักถึงขีด จำกัด ในตัวประมวลผลแล้ว การเรนเดอร์ 3D นั้นห่างไกลจากกรณีใช้งานเพียงอย่างเดียวสำหรับ SIMD "น้ำหนัก" ส่วนใหญ่ของ MMX เป็นหน่วยดำเนินการและสามารถแบ่งปันกับเวกเตอร์ที่กว้างกว่าเช่น SSE2, AVX2 และ AVX512 สิ่งเหล่านี้ใช้สำหรับการเข้ารหัสวิดีโอคุณภาพสูงบน CPU และงานอื่น ๆ อีกมากมายรวมถึงการคำนวณประสิทธิภาพสูง แต่ยังมีการใช้งานไลบรารีของ memchr, strlen และอื่น ๆ อีกมากมาย เช่นการกรองอาร์เรย์มากกว่า 1 องค์ประกอบในแต่ละครั้ง
Peter Cordes

3

แน่นอนว่ามีบอร์ดเฉพาะสำหรับการประมวลผลความเร็วสูงเช่น Xilinx มีรายชื่อบอร์ด PCI-e 178 รายการที่ใช้ FPGAs และประมาณหนึ่งในสามของบอร์ดเหล่านี้คือ คณะกรรมการหน่วยความจำ DDR นอกจากนี้ยังมีแผงวงจร DSP ประสิทธิภาพสูง ( ตัวอย่าง ) สำหรับงานการคำนวณประสิทธิภาพสูง

ฉันเดาว่าความนิยมของบอร์ด GPU เกิดจากเป้าหมายของพวกเขาในกลุ่มลูกค้าที่กว้างขึ้น คุณไม่ต้องลงทุนกับฮาร์ดแวร์พิเศษเพื่อเล่นกับ Nvidia CUDA ดังนั้นเมื่อถึงเวลาที่คุณมีงานที่ต้องใช้ฮาร์ดแวร์พิเศษ Nvidia GPUs จะมีข้อได้เปรียบในการแข่งขันที่คุณรู้วิธีเขียนโปรแกรมเหล่านี้


2

ฉันคิดว่าคำตอบสำหรับคำถามของคุณขึ้นอยู่กับวิธีการคำนวณประสิทธิภาพสูง

โดยทั่วไปการคำนวณประสิทธิภาพสูงสัมพันธ์กับเวลาในการคำนวณ ในกรณีที่ผมชอบที่จะแบ่งปันลิงก์ของคลัสเตอร์ประมวลผลประสิทธิภาพสูง

ลิงค์ระบุเหตุผลของการใช้ GPU การใช้กราฟิกการ์ด (หรือมากกว่า GPU ของพวกเขา) ในการคำนวณสำหรับการคำนวณแบบกริดนั้นประหยัดกว่าการใช้ซีพียูอย่างมากมายแม้ว่าจะแม่นยำน้อยกว่าก็ตาม


2
high-end GPGPUs มีการส่งผ่านข้อมูลที่ดีสำหรับ 64 บิตdoubleความแม่นยำไม่ได้เป็นเพียงคนเดียวที่มีความแม่นยำ float32 (GPU บางตัวข้ามการเล่นบน HW สำหรับdouble) ผู้ค้ารายใหญ่สนับสนุนการคำนวณทางคณิตศาสตร์ของ IEEE FP (ฉันคิดว่าแม้มี denormals) ดังนั้นจึงไม่มีการสูญเสียความแม่นยำเว้นแต่ว่าคุณต้องการแลกเปลี่ยนความแม่นยำสำหรับประสิทธิภาพเช่นกับ FP ความแม่นยำครึ่ง 16 บิตซึ่งมีปริมาณงานที่ดียิ่งขึ้นบนฮาร์ดแวร์บางตัว (และแน่นอนว่าครึ่งหนึ่งของแบนด์วิดท์หน่วยความจำ) โค้ดประสิทธิภาพสูงบน CPUs มักใช้ 32- บิตfloatเช่นกันเพื่อให้ได้องค์ประกอบสองเท่าต่อ SIMD เวกเตอร์และแบนด์วิดท์หน่วยความจำครึ่งหนึ่ง
Peter Cordes

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