ตัวอย่างของอัลกอริทึมที่ใช้งานทั่วไปที่ได้รับประโยชน์จากการใช้งาน GPU? [ปิด]


10

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


การต่อสายอักขระ, การเรียงลำดับการนอนหลับ
งาน

คำตอบ:


10

บางสิ่งที่ควรนึกถึง:

ลูกค้า Bitcoin พิเศษถูกเขียนขึ้นเพื่อใช้ GPU เพื่อทำการแฮชเข้ารหัส โดยทั่วไปแล้วไคลเอนต์ GPU จะทำงานได้ดีกว่าไคลเอนต์ SMP CPU มากกว่า 10 เท่าในระบบ 4 คอร์ทั่วไป Bitcoin ขึ้นอยู่กับการคำนวณแฮชเข้ารหัสที่ไม่เกี่ยวข้องจำนวนมากซึ่งสามารถคำนวณแบบขนาน

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

เป็นที่นิยม "ของเล่น" ตัวอย่างที่ใช้โดยผู้เสนอของ GPU ในการคำนวณเป็นปัญหาหลายวัตถุ

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

การคำนวณที่ซับซ้อนที่ขึ้นอยู่กับผลลัพธ์ของการคำนวณก่อนหน้านั้นไม่เหมาะกับ GPU


ไคลเอนต์ BOINC หลายตัวรองรับ GPU SETI @ Home เป็นอีกเรื่องหนึ่ง
Brian Knoblauch

จริง มีหลายโครงการเช่นนี้ แต่ฉันไม่ต้องการทำให้รายการนี้เป็นรายการที่ครอบคลุม - เพียงเพื่อชี้ให้เห็นสิ่งที่พวกเขามีเหมือนกัน
greyfade

8

การแปลงรหัสวิดีโอและเสียงเป็นตัวอย่างที่ดี เป็นการแปลงจากรูปแบบไฟล์หนึ่งเป็นอีกรูปแบบหนึ่ง ตัวอย่างคือ MPEG-2 ถึง H.264

หมายเหตุการแปลงรหัสวิดีโอไม่เกี่ยวข้องกับกราฟิก 3D คุณไม่สามารถเข้ารหัสวิดีโอโดยใช้จุดสุดยอดและ Pixel Shader


OP กำลังขอตัวอย่างที่เกี่ยวข้องกับกราฟิกที่ไม่ใช่
kiamlaluno

6
@kiamlaluno การแปลงรหัสวิดีโอไม่เกี่ยวข้องกับกราฟิกและการแปลงรหัสเสียงส่วนใหญ่ไม่แน่นอน เป็นการแปลงจากรูปแบบไฟล์หนึ่งเป็นอีกรูปแบบหนึ่ง ตัวอย่างคือ MPEG-2 ถึง H.264 ไม่จำเป็นต้องมีการแสดงกราฟิกเพื่อดำเนินการ
โธมัสโอเวนส์

2
@kiamlaluno: การแปลงรหัสวิดีโอไม่เกี่ยวข้องกับกราฟิก 3D คุณไม่สามารถเข้ารหัสวิดีโอโดยใช้จุดสุดยอดและ Pixel Shader
DeadMG

3

การขุดBitcoinsโดยใช้ GPU ได้รับความนิยมอย่างมาก

... ระบบเงินสดอิเล็กทรอนิกส์แบบเพียร์ทูเพียร์ การสร้างและถ่ายโอน Bitcoin นั้นใช้โปรโตคอลการเข้ารหัสโอเพ่นซอร์สและไม่ได้รับการจัดการโดยหน่วยงานส่วนกลาง แต่ละ bitcoin แบ่งย่อยเป็นทศนิยมแปดตำแหน่งสร้างหน่วยเล็กกว่า 100 ล้านเรียกว่า satoshi Bitcoins สามารถโอนผ่านคอมพิวเตอร์หรือสมาร์ทโฟนโดยไม่มีสถาบันการเงินระดับกลาง

การประมวลผลธุรกรรม bitcoin นั้นปลอดภัยโดยเซิร์ฟเวอร์ที่เรียกว่า Bitcoin miners เซิร์ฟเวอร์เหล่านี้สื่อสารผ่านเครือข่ายที่ใช้อินเทอร์เน็ตและยืนยันการทำธุรกรรมโดยการเพิ่มลงในบัญชีแยกประเภทที่มีการอัปเดตและเก็บถาวรเป็นระยะ นอกเหนือจากการเก็บถาวรธุรกรรมการปรับปรุงบัญชีแยกประเภทใหม่แต่ละสร้าง bitcoins เพิ่งสร้างใหม่บาง ...

แอพลิเคชันอื่นที่อยู่ในตลาดการเงินสำหรับการซื้อขายแบบ real-time โดยใช้แบบจำลองเช่นBlack-Scholes

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

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


2

เกมแห่งชีวิตของ Conway เป็นตัวอย่างทางวิชาการที่ดี

... จักรวาลของเกมแห่งชีวิตเป็นกริด orthogonal สองมิติที่ไม่มีที่สิ้นสุดของเซลล์สี่เหลี่ยมซึ่งแต่ละอันอยู่ในสถานะที่เป็นไปได้หนึ่งในสองสถานะทั้งที่เป็นอยู่หรือตาย ทุกเซลล์มีปฏิสัมพันธ์กับแปดเพื่อนบ้านซึ่งเป็นเซลล์ที่อยู่ในแนวนอนแนวตั้งหรือแนวทแยงมุม ในแต่ละขั้นตอนการเปลี่ยนภาพต่อไปนี้จะเกิดขึ้น:

  1. เซลล์ที่มีชีวิตใด ๆ ที่มีเพื่อนบ้านที่มีชีวิตน้อยกว่าสองคนตายราวกับว่าเกิดจากประชากรที่ไม่ได้รับความเห็น
  2. เซลล์ที่มีชีวิตใด ๆ ที่มีสองหรือสามเพื่อนบ้านอาศัยอยู่ไปยังรุ่นต่อไป
  3. เซลล์ที่มีชีวิตใด ๆ ที่มีเพื่อนบ้านที่มีชีวิตมากกว่าสามคนจะตายไปราวกับว่ามีคนมากเกินไป
  4. เซลล์ที่ตายแล้วใด ๆ ที่มีเพื่อนบ้านที่มีชีวิตสามคนจะกลายเป็นเซลล์มีชีวิตราวกับว่าได้รับการสืบพันธุ์

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


1

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

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


-3

บางทีฉันอาจจะคำนวณเฉพาะคณิตศาสตร์ / วิทยาศาสตร์ / วิศวกรรม แต่สิ่งหนึ่งที่อยู่ในใจคืออัลกอริทึม FFT

ฉันเคยเห็นเกณฑ์มาตรฐาน FFT นี้แล้วก่อนหน้านี้ถึงแม้ว่าจะมีอายุไม่กี่ปีก็ตาม แต่ฉันคิดว่ามันทำได้ดีมากสำหรับสิ่งที่เป็น: http://www.sharcnet.ca/~merz/CUDA_benchFFT

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