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

คำถามเกี่ยวกับความเร็วในการเรียกใช้และการใช้หน่วยความจำของอัลกอริทึมโครงสร้างข้อมูลภาษาและไลบรารี

3
การคูณเมทริกซ์ MATLAB (วิธีการคำนวณที่ดีที่สุด)
ฉันต้องทำการแปลงพิกัดระหว่างสองระบบอ้างอิง (แกน) ด้วยเหตุนี้จึงต้องทำการคูณเมทริกซ์สามตัว ( ) เนื่องจากแกนกลางบางอันถูกใช้งาน ฉันคิดเกี่ยวกับวิธีการสองวิธีในการแก้ไขปัญหานี้:3×33×33\times3 วิธีที่ # 1 : ทำการคูณโดยตรงนั่นคือ vf=R1 R2 R3 vivf=R1 R2 R3 viv_f = R_1\ R_2\ R_3\ v_i วิธีที่ # 2 : แบ่งออกเป็นขั้นตอน: v3i=R3 viv3i=R3 viv_{3i} = R_3\ v_i v23=R2 v3iv23=R2 v3iv_{23} = R_2\ v_{3i} vf=R1 v23vf=R1 v23v_f = R_1\ v_{23} ที่อยู่: , R …

10
เป็นไปได้หรือไม่ที่จะปรับแต่งรหัสการรวมเพื่อให้ทำงานได้เร็วขึ้น?
double trap(double func(double), double b, double a, double N) { double j; double s; double h = (b-a)/(N-1.0); //Width of trapezia double func1 = func(a); double func2; for (s=0,j=a;j<b;j+=h){ func2 = func(j+h); s = s + 0.5*(func1+func2)*h; func1 = func2; } return s; } ด้านบนคือรหัส C ++ ของฉันสำหรับการรวมตัวเลข 1D (โดยใช้กฎสี่เหลี่ยมคางหมูแบบขยาย) …

2
วิธีที่เร็วที่สุดในการค้นหา eigenpairs ของเมทริกซ์แบบไม่สมมาตรขนาดเล็กบน GPU ในหน่วยความจำที่ใช้ร่วมกัน
ฉันมีปัญหาที่ฉันต้องการค้นหาค่าบวกทั้งหมด (ในค่า eigenvalue เป็นค่าบวก) eigenpairs ของเมทริกซ์แบบไม่สมมาตรขนาดเล็ก (มักจะเล็กกว่า 60x60) ฉันสามารถหยุดการคำนวณเมื่อค่าลักษณะเฉพาะมีขนาดเล็กกว่าเกณฑ์ที่กำหนด ฉันรู้ว่าค่าลักษณะเฉพาะเป็นของจริง คำแนะนำเกี่ยวกับอัลกอริทึมที่ฉันสามารถใช้เพื่อพยายามบีบประสิทธิภาพที่ดีที่สุดออกมา? ฉันต้องทำการย่อยสลายหลายพันครั้งดังนั้นความเร็วจึงสำคัญ ขอบคุณล่วงหน้า. แก้ไข: ฉันต้องทำสิ่งนี้กับ GPU ในหน่วยความจำที่ใช้ร่วมกัน เมทริกซ์นั้นไม่จำเป็นต้องมีขนาดเท่ากัน ฉันไม่ทราบว่ามีห้องสมุดใดที่ทำสิ่งนี้ในขณะนี้ ข้อเสนอแนะของอัลกอริทึมที่เหมาะสมกับปัญหาจะได้รับการชื่นชม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.