คำถามติดแท็ก gpgpu

24
เรียงลำดับที่เร็วที่สุดของอาร์เรย์ความยาวคงที่ 6 int
ตอบคำถาม Stack Overflow (อันนี้ ) ฉันพบปัญหาย่อยที่น่าสนใจ วิธีที่เร็วที่สุดในการจัดเรียงอาร์เรย์ของ 6 จำนวนเต็มคืออะไร? เนื่องจากคำถามอยู่ในระดับต่ำมาก: เราไม่สามารถสมมติว่ามีไลบรารี (และการโทรเองมีค่าใช้จ่าย) เพียงธรรมดา C เพื่อหลีกเลี่ยงการล้างท่อส่งคำสั่ง (ที่มีค่าใช้จ่ายสูงมาก ) เราควรจะลดกิ่งกระโดดและการควบคุมการไหลอื่น ๆ ทุกชนิด (เช่นที่ซ่อนอยู่หลังจุดลำดับใน&&หรือ||) ห้องมีข้อ จำกัด และการลดการลงทะเบียนและการใช้หน่วยความจำก็เป็นปัญหา คำถามนี้เป็นคำถามประเภทกอล์ฟที่เป้าหมายไม่ได้ลดความยาวของแหล่งที่มา แต่ลดระยะเวลาดำเนินการลง ผมเรียกรหัสมัน Zening 'ที่ใช้ในชื่อของหนังสือเล่มนี้เซนของการเพิ่มประสิทธิภาพรหัสโดยไมเคิล Abrashและต่อมา ทำไมมันถึงน่าสนใจมีหลายเลเยอร์: ตัวอย่างนั้นง่ายและเข้าใจง่ายและวัดผลไม่เกี่ยวข้องกับทักษะ C มากนัก มันแสดงผลของการเลือกอัลกอริทึมที่ดีสำหรับปัญหา แต่ยังมีผลกระทบของคอมไพเลอร์และฮาร์ดแวร์พื้นฐาน นี่คือการดำเนินการอ้างอิงของฉัน (ไร้เดียงสาไม่เหมาะ) และชุดทดสอบของฉัน #include <stdio.h> static __inline__ int sort6(int * d){ char j, i, …

2
CUDA บล็อก / warps / threads แผนที่บนแกน CUDA ได้อย่างไร
ฉันใช้ CUDA มาหลายสัปดาห์แล้ว แต่ฉันมีข้อสงสัยเกี่ยวกับการจัดสรรบล็อก / warps / thread ฉันกำลังศึกษาสถาปัตยกรรมจากมุมมองการสอน (โครงการมหาวิทยาลัย) ดังนั้นการเข้าถึงประสิทธิภาพสูงสุดจึงไม่ใช่สิ่งที่ฉันกังวล ก่อนอื่นฉันอยากจะเข้าใจถ้าฉันได้รับข้อมูลตรงนี้: โปรแกรมเมอร์เขียนเคอร์เนลและจัดระเบียบการดำเนินการในกริดของบล็อกเธรด แต่ละบล็อกถูกกำหนดให้กับ Streaming Multiprocessor (SM) เมื่อกำหนดแล้วจะไม่สามารถโยกย้ายไปยัง SM อื่นได้ SM แต่ละตัวแยกบล็อกของตัวเองออกเป็น Warps (ปัจจุบันมีขนาดสูงสุด 32 เธรด) เธรดทั้งหมดในวิปริตดำเนินการพร้อมกันกับทรัพยากรของ SM การดำเนินการจริงของเธรดนั้นดำเนินการโดย CUDA Cores ที่อยู่ใน SM ไม่มีการแมปเฉพาะระหว่างเธรดและแกน ถ้าวาร์ปประกอบด้วยเธรด 20 เธรด แต่ในปัจจุบันมีเพียง 16 คอร์ที่ใช้ได้วิปริตจะไม่ทำงาน ในทางกลับกันหากบล็อกมี 48 เธรดบล็อกจะถูกแยกออกเป็น 2 วาร์ปและจะดำเนินการควบคู่กันโดยมีหน่วยความจำเพียงพอ หากเธรดเริ่มทำงานบนคอร์นั้นจะถูกหยุดทำงานเพื่อเข้าถึงหน่วยความจำหรือสำหรับการดำเนินการจุดลอยตัวที่ยาวนาน พวกเขาถูกต้องหรือไม่ ตอนนี้ฉันมี GeForce 560 …

14
การใช้ GPU กับ c # [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันพยายามดึงพลังการประมวลผลออกจากกริดมากขึ้น ฉันใช้ cpus / cores ทั้งหมดเป็นไปได้ไหมที่จะใช้ GPU กับ C # มีใครรู้จักห้องสมุดหรือมีโค้ดตัวอย่างบ้างไหม
136 c#  gpu  gpgpu 

10
NVIDIA vs AMD: ประสิทธิภาพ GPGPU
ฉันต้องการรับฟังความคิดเห็นจากผู้ที่มีประสบการณ์ในการเขียนโค้ดสำหรับทั้งคู่ ตัวฉันเองมีประสบการณ์กับ NVIDIA เท่านั้น ดูเหมือนว่า NVIDIA CUDA จะได้รับความนิยมมากกว่าคู่แข่ง (เพียงแค่นับแท็กคำถามในฟอรัมนี้ 'cuda' มีประสิทธิภาพดีกว่า 'opencl' 3: 1 และ 'nvidia' มีประสิทธิภาพสูงกว่า 'ati' 15: 1 และไม่มีแท็กสำหรับ 'ati-stream' เลย) ในทางกลับกันตาม Wikipedia การ์ด ATI / AMD ควรมีศักยภาพมากกว่านี้มากโดยเฉพาะต่อดอลลาร์ การ์ด NVIDIA ที่เร็วที่สุดในตลาด ณ วันนี้ GeForce 580 ($ 500) ได้รับการจัดอันดับที่ 1.6 single-precision TFlops AMD Radeon 6970 สามารถซื้อได้ในราคา $ 370 และได้รับการจัดอันดับที่ …
105 cuda  opencl  gpgpu  nvidia  ati 

8
แนวทางที่ดีที่สุดสำหรับ GPGPU / CUDA / OpenCL ใน Java?
การประมวลผลทั่วไปบนหน่วยประมวลผลกราฟิก ( GPGPU ) เป็นแนวคิดที่น่าสนใจมากในการควบคุมพลังของ GPU สำหรับการประมวลผลทุกประเภท ฉันชอบใช้ GPGPU สำหรับการประมวลผลภาพอนุภาคและการดำเนินการทางเรขาคณิตที่รวดเร็ว ตอนนี้ดูเหมือนว่าผู้แข่งขันทั้งสองในพื้นที่นี้คือ CUDA และ OpenCL ฉันต้องการทราบ: OpenCL ยังใช้งานได้จาก Java บน Windows / Mac หรือไม่ ไลบรารีมีวิธีใดบ้างในการเชื่อมต่อกับ OpenCL / CUDA การใช้ JNA เป็นตัวเลือกโดยตรงหรือไม่? ฉันลืมอะไรไปหรือเปล่า? ชื่นชมประสบการณ์ / ตัวอย่าง / เรื่องราวสงครามในโลกแห่งความเป็นจริง
94 java  cuda  gpgpu  opencl 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.