เหตุใด Mike Pound จึงวัดความสามารถในการคำนวณของคอมพิวเตอร์ของเขาโดยใช้กราฟิกการ์ดไม่ใช่ตัวประมวลผล


17

เมื่อไม่นานมานี้ฉันได้ดูวิดีโอ Computerphile ที่ยอดเยี่ยมซึ่งเป็นรหัสผ่านที่ Mike Pound อวดในซูเปอร์คอมพิวเตอร์ของ บริษัท ของเขาที่มีการ์ดกราฟิก 4 ตัว (Titan X's เป็นที่แน่นอน)

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


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

6
@gnat: ไม่ได้ปิด แน่นอนว่าคำถามในรูปแบบปัจจุบันไม่ได้เกี่ยวกับวิศวกรรมซอฟต์แวร์จริงๆ แต่ฉันคิดว่ามันอาจตีความได้ว่าเป็นคำถามเกี่ยวกับวิศวกรรมของระบบโดยที่ system = "การรวมกันของฮาร์ดแวร์ + ซอฟต์แวร์"
Doc Brown

10
คอมพิวเตอร์ที่มีกราฟิกการ์ด 4 ใบไม่ได้มีจำนวนเท่ากับซูเปอร์คอมพิวเตอร์ (และไม่รวมคลัสเตอร์ 10 Raspberry Pis สำหรับเรื่องนั้น)
Matti Virkkunen

10
นั่นเป็นเพียงการติดตั้งเครื่องคอมพิวเตอร์มีราคาแพงมากไม่ได้ซูเปอร์ ...
Bakuriu

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

คำตอบ:


32

Mike Pound เห็นคุณค่าของความสามารถในการคำนวณของกราฟิกการ์ดสูงกว่าความสามารถในการคำนวณของ CPU

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

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


5
การเพิ่มตัวเลข สมมติว่าคอมพิวเตอร์หลักของคุณคือ AMD Epyc Server, 64 cores, 128 กับ Hyperthreading สมมุติว่า "แกนหลัก" ของกราฟิกการ์ดนั้นเร็วเพียง 10% ONE TitanX ยังคงมี cuda 3072 คอร์ประมาณ 12000 สำหรับการตั้งค่า รับแนวคิดหรือไม่ หากคุณสามารถเรียกใช้ปัญหาจากการ์ดแสดงผลได้จะไม่ "เร็วขึ้น" - เหมือนกับการเปรียบเทียบความเร็วของรถม้ากับรถสูตร 1
TomTom

3
+1 สำหรับ 'ชุดการคำนวณแบบขนานที่น่าอาย' เขียนได้ดีมาก สั้นและตรงประเด็น
Michael Viktor Starberg

11
@TomTom: จริงๆแล้วการเปรียบเทียบที่ฉันต้องการคือการเปรียบเทียบรถสูตร 1 (CPU ของคุณ) กับรถไฟหัวกระสุน แน่นอนว่ารถไฟและรถมีความเร็วใกล้เคียงกัน แต่รถไฟสามารถเคลื่อนที่ 1,000 คนจาก A ไป B ได้เร็วกว่ารถสูตร 1
slebetman

2
@slebetman ประเด็นคือซีพียูโดยทั่วไปจะเร็วกว่ามากในประสิทธิภาพการทำงานแบบ Single-Core (ไม่ประมาณความเร็วเดียวกัน) บางทีเราสามารถประนีประนอมและเปรียบเทียบเครื่องบินเจ็ทเหนือเสียงกับหัวรถจักรไอน้ำ
Darren Ringer

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

5

ลองดูhttps://developer.nvidia.com/cuda-zone (และ google cuda nvidiaสำหรับข้อมูลเพิ่มเติมมากมาย) สถาปัตยกรรม cuda และกราฟิกการ์ดระดับไฮเอนด์ค่อนข้างใช้กันอย่างแพร่หลายสำหรับซูเปอร์คอมพิวเตอร์ตั้งโต๊ะ โดยทั่วไปคุณสามารถรวมกล่องแบบหลาย Tflop ไว้ด้วยราคาต่ำกว่า $ 10K (usd) โดยใช้ส่วนประกอบ whitebox แบบ off-the-shelf

ดังนั้น...

ในฐานะผู้ที่ชื่นชอบการจำลองเชิงตัวเลขฉันฝันที่จะสร้างเดสก์ท็อปสำหรับงานจำลองเท่านั้น

... cuda เป็นเกมที่ดีที่สุดในเมืองสำหรับคุณ อาจลองถามอีกครั้งใน/scicomp//หรือเว็บไซต์ stackexchange อื่นที่เกี่ยวข้องโดยตรงกับสิ่งนี้มากขึ้น

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


และเรากลับไปที่ Ordos ตามปกติ
Michael Viktor Starberg

2
@MichaelViktorStarberg ฉันเป็นคนเดียวที่ไม่เข้าใจการอ้างอิง Ordos หรือไม่
MarnixKlooster ReinstateMonica

ฉันเกรงว่าคุณคือ ... : /
อิสมาเอลมิเกล

4
@MarnixKlooster: ฉันต้องใช้ Google "Ordos" ไม่แน่ใจว่า "เมืองผี" ในประเทศจีนเกี่ยวข้องกับซุปเปอร์คอมพิวเตอร์หรือเทราฟลอป
Robert Harvey

@MarnixKlooster คุณไม่ใช่อย่างแน่นอน
jpmc26

2

ถ้าฉันกำลังสร้างคอมพิวเตอร์ฉันควรสนใจรายการใดมากกว่า

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

คุณควรทราบด้วยว่าประสิทธิภาพของ GPU มีการรายงานบ่อยที่สุดใน FLOP ที่มีความแม่นยำเดียวและลดลงเล็กน้อยสำหรับความแม่นยำสองเท่า หากคุณต้องการความแม่นยำเป็นพิเศษในแบบจำลองของคุณคุณจะได้ความเร็วต่ำกว่าที่โฆษณาไว้

ออกไปแข่งวิศวกรรมซอฟต์แวร์

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

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

ในทางตรงกันข้ามระบบ Single-Instruction / Multiple-Data คล้ายกับห้องขนาดใหญ่ที่เต็มไปด้วยเสมียนที่ถูกล่ามโซ่ไว้ที่โต๊ะทำงานตามคำแนะนำจากตัวควบคุมหลัก "ทุกคนเพิ่มบรรทัดที่ 3 และ 5!" มันถูกใช้ในรูปแบบที่บริสุทธิ์ใน ILLIAC และบางระบบ "mini-super" แต่หายไปในตลาด GPU ปัจจุบันเป็นลูกพี่ลูกน้องที่ใกล้ชิดพวกมันยืดหยุ่นกว่า แต่ใช้ปรัชญาทั่วไปแบบเดียวกัน

หากต้องการสรุปโดยย่อ:

  • สำหรับการทำงานที่กำหนด CPU จะทำงานได้เร็วขึ้นในขณะที่ GPU สามารถทำงานได้หลายอย่างพร้อมกัน ความแตกต่างที่ชัดเจนที่สุดคือ 64- บิตลอย
  • แกน CPU สามารถทำงานกับที่อยู่หน่วยความจำใด ๆ ข้อมูลสำหรับ GPU จะต้องบรรจุในพื้นที่ขนาดเล็ก คุณจะชนะก็ต่อเมื่อคุณทำการคำนวณเพียงพอที่จะชดเชยเวลาการโอน
  • รหัสหนักในเงื่อนไขโดยทั่วไปจะมีความสุขบน CPU
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.