ฉันมากใหม่ในการเขียนโปรแกรม GPGPU ดังนั้นโปรดยกโทษให้ฉันถ้าคำถามไม่เหมาะสมโดยเฉพาะอย่างยิ่ง จากสิ่งที่ฉันเข้าใจการเขียนโปรแกรม GPU เป็นงานวิศวกรรมที่ซับซ้อนมากเมื่อเทียบกับการเขียนโปรแกรม CPU ปกติ สิ่งหนึ่งที่จะต้องระมัดระวังอย่างมากเกี่ยวกับปัญหาความแตกต่างการปูกระเบื้องการจัดสรรหน่วยความจำที่ตรึงไว้และการคำนวณอุปกรณ์สื่อสาร / อุปกรณ์โฮสต์ซ้อนทับกัน
หลังจากทำวิจัยเล็กน้อยฉันพบห้องสมุดแรงผลักดันซึ่งดูเหมือนว่าพยายามเลียนแบบ C ++ STL มันค่อนข้างดี อย่างไรก็ตามจากประสบการณ์ที่ จำกัด มากของฉันและการได้เห็นการจัดการไมโครที่จำเป็นทั้งหมดเพื่อให้ได้ประสิทธิภาพที่ดีฉันค่อนข้างสงสัยเกี่ยวกับประสิทธิภาพ แรงขับสามารถจัดการกับส่วนการเขียนโปรแกรมที่ซับซ้อนทั้งหมดได้อย่างมีประสิทธิภาพภายในหรือไม่? ห้องสมุดที่รู้จักกันดีบางแห่งเช่น PETSc ดูเหมือนจะใช้แพ็คเกจนี้ซึ่งทำให้ฉันเชื่อว่ามันควรจะเป็นอย่างใด
ฉันสงสัยว่าคนที่มีประสบการณ์เกี่ยวกับ CUDA และแรงผลักดันอาจพูดคำหนึ่งหรือสองเกี่ยวกับประสิทธิภาพของแพ็คเกจเมื่อเทียบกับการเขียนโปรแกรม CUDA ระดับต่ำ ฉันสามารถใช้แรงขับได้เมื่อใดและฉันควรเปลี่ยนกลับเป็น CUDA เมื่อใด