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

โปรแกรมย่อยพีชคณิตเชิงเส้นพื้นฐาน - ไลบรารี API มาตรฐานที่มีการดำเนินการเวกเตอร์เวกเตอร์เมทริกซ์เวกเตอร์และเมทริกซ์ - เมทริกซ์

6
คอมไพเลอร์ของ Fortran นั้นดีกว่าจริง ๆ
คำถามนี้เป็นส่วนขยายของการสนทนาสองครั้งที่เกิดขึ้นเมื่อเร็ว ๆ นี้ในการตอบกลับไปยัง " C ++ vs Fortran สำหรับ HPC " และมันเป็นความท้าทายมากกว่าคำถาม ... หนึ่งในข้อโต้แย้งที่ได้ยินบ่อยที่สุดในความโปรดปรานของ Fortran คือคอมไพเลอร์ดีกว่า เนื่องจากคอมไพล์เลอร์ C / Fortran ส่วนใหญ่ใช้แบ็คเอนด์เดียวกันรหัสที่สร้างขึ้นสำหรับโปรแกรมที่เทียบเท่ากันทางความหมายในทั้งสองภาษาจึงควรเหมือนกัน เราอาจโต้แย้งได้ว่า C / Fortran นั้นคอมไพเลอร์เพื่อเพิ่มประสิทธิภาพมากขึ้น / น้อยลง ดังนั้นฉันจึงตัดสินใจลองทดสอบง่ายๆ: ฉันได้รับสำเนาของdaxpy.fและdaxpy.cและรวบรวมพวกเขาด้วย gfortran / gcc ตอนนี้ daxpy.c เป็นเพียงการแปล f2c ของ daxpy.f (โค้ดที่สร้างขึ้นโดยอัตโนมัติน่าเกลียดเหมือน heck) ดังนั้นฉันจึงเอาโค้ดนั้นและทำความสะอาดมันเล็กน้อย (พบ daxpy_c) ซึ่งโดยทั่วไปหมายถึงการเขียนลูปด้านในสุดเป็น for ( i = 0 …
74 fortran  c  blas  benchmarking 

3
อะไรคือความสัมพันธ์ของ BLAS, LAPACK และห้องสมุดพีชคณิตเชิงเส้นอื่น ๆ ?
ฉันได้ดูไลบรารีพีชคณิตเชิงเส้น C ++ สำหรับโครงการที่ฉันกำลังทำอยู่ สิ่งที่ฉันยังไม่เข้าใจคือการเชื่อมต่อของ BLAS และ LAPACK กับห้องสมุดพีชคณิตเชิงเส้นอื่น ๆ เมื่ออ่านบทความนี้ในห้องสมุดพีชคณิตเชิงเส้นฉันพบว่ามันน่าสนใจที่: ห้องสมุดบางแห่งมีความเป็นอิสระจาก BLAS และ LAPACK บางคนต้องการ BLAS และ LAPACK บางตัวมีอินเตอร์เฟสเสริมสำหรับ BLAS และ LAPACK และอย่างที่ฉันเข้าใจคุณสามารถใช้ BLAS และ LAPACK เพื่อแก้ปัญหาพีชคณิตเชิงเส้นโดยตรง ฉันสามารถจินตนาการได้ว่าบางไลบรารีเป็นเพียงอินเตอร์เฟส C ++ ไปยังไลบรารี BLAS และ LAPACK ที่เขียนใน C และ Fortran และอื่น ๆ ได้ใช้งานรูทีนทดแทนของตัวเอง แต่ อะไรคือความหมายของอินเทอร์เฟซเสริมของ BLAS และ LAPACK? คุณทำอะไรหายโดยการไม่เข้าร่วมและห้องสมุดกำลังทำอะไรแทน ห้องสมุดใดมีมากกว่าอินเตอร์เฟสหรือไม่? ตัวอย่างเช่น …

3
ระยะทางแบบยุคลิดใน Octave
ฉันอยากรู้ว่ามีวิธีที่รวดเร็วในการคำนวณระยะทางแบบยุคลิดของเวกเตอร์สองตัวใน Octave หรือไม่ ดูเหมือนว่าไม่มีฟังก์ชั่นพิเศษสำหรับสิ่งนั้นดังนั้นฉันควรใช้สูตรด้วยsqrtหรือไม่

3
การใช้งาน BLAS รับประกันว่าจะให้ผลลัพธ์ที่แน่นอนหรือไม่
ด้วยการใช้งาน BLAS สองแบบที่แตกต่างกันเราคาดหวังได้หรือไม่ว่าพวกเขาทำการคำนวณจุดลอยตัวที่แน่นอนและกลับผลลัพธ์เดียวกัน หรือสามารถเกิดขึ้นได้เช่นหนึ่งคำนวณผลิตภัณฑ์สเกลาร์เป็น และอีกหนึ่งเป็น ( x 1 y 1 + x 2 y 2 ) + ( x 3 y 3 + x 4( ( x1Y1+ x2Y2) + x3Y3) +x4Y4((x1Y1+x2Y2)+x3Y3)+x4Y4 ((x_1y_1 + x_2y_2) + x_3y_3) + x_4y_4 ดังนั้นอาจจะให้ผลที่แตกต่างกันใน IEEE ลอยคำนวณจุด?( x1Y1+ x2Y2) + ( x3Y3+ x4Y4) ,(x1Y1+x2Y2)+(x3Y3+x4Y4), (x_1y_1 + …

3
ทำไมการคูณการคูณเมทริกซ์ - เวกเตอร์ของฉันไม่
ขออภัยสำหรับโพสต์ที่ยาวนาน แต่ฉันต้องการรวมทุกอย่างที่ฉันคิดว่ามีความเกี่ยวข้องในครั้งแรก สิ่งที่ฉันต้องการ ฉันกำลังใช้ Krylov Subspace Method แบบขนานสำหรับเมทริกซ์หนาแน่น GMRES ส่วนใหญ่, QMR และ CG ฉันรู้ (หลังจากทำโปรไฟล์) ว่ารูทีน DGEMV ของฉันน่าสงสาร ดังนั้นฉันจึงตัดสินใจที่จะมีสมาธิกับมันโดยแยกมันออกมา ฉันได้ลองใช้งานด้วยเครื่อง 12 คอร์ แต่ผลลัพธ์ด้านล่างนี้สำหรับแล็ปท็อป Intel i3 แบบ 4 คอร์ แนวโน้มไม่แตกต่างกันมากนัก ฉันKMP_AFFINITY=VERBOSEส่งออกสามารถใช้ได้ที่นี่ ฉันเขียนรหัสเล็ก ๆ : size_N = 15000 A = randomly_generated_dense_matrix(size_N,size_N); %Condition Number is not bad b = randomly_generated_dense_vector(size_N); for it=1:n_times %n_times …

2
PETSc สำหรับ Dense Matrices มีประโยชน์อย่างไร
ทุกที่ที่ฉันเห็น PETSc tutorial / เอกสาร ฯลฯ บอกว่ามันมีประโยชน์สำหรับพีชคณิตเชิงเส้นและมักจะระบุว่าระบบจะได้ประโยชน์ สิ่งที่เกี่ยวกับเมทริกซ์หนาแน่น? ผมกังวลเกี่ยวกับการแก้x = Bสำหรับหนาแน่นA x = bAx=ขAx=bAAA ฉันเขียนโค้ดของตัวเองสำหรับ CG และ QMR ใน Fortran สร้างพื้นฐานคือการฉีกออกจากกันรหัสเทียมและเพิ่มการปฏิบัติหน่ายเป็นไปได้ ( ddot, dnrmและdgemv) ที่มีการปรับตัวเองเล็ก ๆ น้อย ๆ สิ่งนี้จะเปรียบเทียบกับ PETSc ได้อย่างไร ฉันรู้ว่าคำตอบที่ดีที่สุดสำหรับฉันที่จะลองด้วยตัวเอง แต่ด้วยเหตุผลของเวลาและอื่น ๆ นั่นเป็นไปไม่ได้ ความช่วยเหลือใด ๆ ที่ชื่นชมมาก

2
อันตรายจากการคำนวณทางคณิตศาสตร์ที่ซับซ้อนในการคำนวณทางวิทยาศาสตร์
ผลิตภัณฑ์ภายในที่ซับซ้อนได้สองคำนิยามที่แตกต่างกันตัดสินใจโดยการประชุม: ˉ U Tวีหรือยูทีˉวี ใน BLAS ฉันพบกิจวัตร cdotu, zdotu และ cdotc, zdotc สองรูทีนก่อนหน้านี้คำนวณu t v (ผลิตภัณฑ์ด้านในปลอม!) และรูทีนสุดท้ายสองรายการเชื่อมต่อเวกเตอร์แรกในผลิตภัณฑ์ภายใน นอกจากนี้โดยความหมายอย่างใดอย่างหนึ่ง (ผันUหรือV ) ⟨ U , V ⟩ = ¯ ⟨ วี, ยู⟩⟨ u , v ⟩⟨ยู,โวลต์⟩\langle u,v\rangleยู¯Tโวลต์ยู¯Tโวลต์\bar{u}^TvยูTโวลต์¯ยูTโวลต์¯u^T\bar{v}ยูTโวลต์ยูTโวลต์u^Tvยูยูuโวลต์โวลต์v⟨ u , v ⟩ = ⟨ v , u ⟩¯¯¯¯¯¯¯¯¯¯¯⟨ยู,โวลต์⟩=⟨โวลต์,ยู⟩¯\langle u,v\rangle=\overline{\langle v,u\rangle}ด้วยการผัน! ยิ่งไปกว่านั้นตามที่ระบุไว้ในความคิดเห็นการเลือกค่าหลักสำหรับฟังก์ชันที่ซับซ้อนหลายค่าสามารถขึ้นอยู่กับการประชุม คำถามของฉันคือ: ภาวะแทรกซ้อนนี้ทำให้เกิดอันตรายที่แท้จริงสำหรับการใช้เลขคณิตที่ซับซ้อนในการคำนวณทางวิทยาศาสตร์หรือไม่? …

6
มีการใช้งานระดับอ้างอิงของ BLAS ใน C / C ++ หรือไม่
การใช้งาน netlib BLAS เป็นข้อมูลอ้างอิงที่ยอดเยี่ยมโดยส่วนใหญ่จะไม่ได้รับการปรับปรุงและจัดทำเอกสารอย่างดี (เช่นzgemm ) อย่างไรก็ตามมันอยู่ใน Fortran 77 ทำให้ไม่สามารถเข้าถึงผู้ที่มีการศึกษาการเขียนโปรแกรมที่ทันสมัย มีการใช้งานระดับอ้างอิงของ BLAS เช่น netlib ใน C / C ++ หรือไม่
11 blas  education 

2
การใช้งาน BLAS / LAPACK ที่เร็วที่สุดหรือการใช้พีชคณิตเชิงเส้นอื่น ๆ ในระบบ GPU คืออะไร?
ตัวอย่างเช่น nVidia มี CUBLAS ซึ่งสัญญาว่าจะเร่งความเร็ว 7-14x ไร้เดียงสานี่ไม่มีที่ไหนใกล้กับทฤษฏีความเร็วของการ์ด GPU ของ nVidia อะไรคือความท้าทายในการเร่งพีชคณิตเชิงเส้นบน GPU และมีการกำหนดเส้นทางพีชคณิตเชิงเส้นเร็วกว่าที่มีอยู่แล้วหรือไม่

1
PETSc เคยใช้ประโยชน์จากห้องสมุด LAPACK สำหรับคณิตศาสตร์เมทริกซ์กระจัดกระจายหรือไม่?
การรวบรวม PETSc กับไลบรารี BLAS / LAPACK ภายนอกส่งผลกระทบต่อประสิทธิภาพการทำงานของเมทริกซ์แบบเบาบางหรือไม่หรือใช้ไลบรารีเหล่านั้นเพื่อคำนวณเมทริกซ์หนาแน่นเท่านั้น?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.