ทำนายค่ารันไทม์ของพีชคณิตเชิงเส้นหนาแน่น


9

ฉันต้องการทำนาย runtimes สำหรับการดำเนินการพีชคณิตเชิงเส้นหนาแน่นบนสถาปัตยกรรมเฉพาะโดยใช้ไลบรารีเฉพาะ ฉันต้องการเรียนรู้รูปแบบที่ใกล้เคียงกับฟังก์ชั่น

Fop::ขนาดอินพุตรันไทม์

สำหรับการดำเนินการเช่นเมทริกซ์ทวีคูณการเพิ่มองค์ประกอบที่ชาญฉลาดการแก้ปัญหารูปสามเหลี่ยม ฯลฯ

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

คำถาม:

  1. สมมติฐานนี้เป็นจริงหรือไม่? ฟังก์ชั่นรันไทม์มีแนวโน้มที่จะเกือบจะกำหนด?
  2. ฉันสามารถสันนิษฐานได้ว่าฟังก์ชั่นนี้จะเป็นพหุนามในขนาดของอินพุตหรือไม่ (เช่นฉันคาดหวังเมทริกซ์หนาแน่นคูณให้มีลักษณะเหมือนαn×k×m สำหรับ Ank×Bkm และ α ค่าสัมประสิทธิ์สเกลาร์บางค่า)
  3. มีงานก่อนหน้านี้ที่นี่ไหม?
  4. แผนปัจจุบันของฉันคือทำสี่เหลี่ยมกำลังถดถอยอย่างน้อย L1regularizer ข้อเสนอแนะอื่น ๆ ?

แก้ไข: เพื่อความชัดเจนฉันกำลังมองหา runtimes ไม่ใช่ FLOPs หรือตัวชี้วัดประสิทธิภาพทั่วไปอื่น ๆ ฉันยินดีที่จะ จำกัด ตัวเองให้เป็นหนึ่งในสถาปัตยกรรมเฉพาะ

คำตอบ:


10

ฉันเพิ่งได้ทำงานเกี่ยวกับหัวข้อนี้ คุณอาจต้องการที่จะดูที่กระดาษของเรา: http://arxiv.org/abs/1209.2364

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


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

6

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

Googling สำหรับ "ประสิทธิภาพ DGEMM" ตัวอย่างเช่นอัตราผลตอบแทนต่อไปนี้: http://math-atlas.sourceforge.net/timing/3_5_10/index.html

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

ด้วยความพยายามในการเปรียบเทียบในวงกว้างมันอาจจะง่ายกว่าในการจัดเรียงผลลัพธ์และแก้ไขตามที่จำเป็น เป้าหมายของคุณคืออะไร


1
ที่ราบสูง flop / s ในDGEMMแสดงถึงn3ภูมิภาคเนื่องจากเป็นอัตราที่การเติบโตเพิ่มขึ้นตามขนาดของปัญหา ฉันเห็นด้วยว่าการปรับขนาดพอดีควรดีกว่าการพยายามใส่พอดีกับพหุนามเดียว
Jed Brown

การแปลง flops เป็น runtimes นั้นเป็นเรื่องยากในประสบการณ์ของฉัน ฉันสนใจเฉพาะเวลาทำงานในกรณีของฉันเท่านั้น ฉันกำลังทดสอบความเป็นไปได้ของการตั้งเวลาคงที่
MRocklin

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